블록체인

    [Solana - Native vs Anchor] #3. Account 생성하기

    목차 Account 생성하기 프로그램 구조 Native 프로그래밍 Anchor 프로그래밍 Account 생성하기 이전 포스팅인 [Solana - Native vs Anchor] Account 생성하기에서 Account 하나를 생성하기 위해 Client에서 System Program으로 곧바로 생성을 요청했습니다. 이번 글 "Account 생성하기"에서는 Client가 Server Program으로 Account 생성을 요청하고, Server Program에서 System Program의 create_account Instruction을 호출해 Account를 생성하는 과정을 살펴보겠습니다. 이런 방법은 Solana에서 CPI(Cross-Program Invocation)라고 불립니다. CPI는 하나의 P..

    [Solana - Native vs Anchor] #2. Account 확인하기

    목차 Account 확인하기 프로그램 구조 Native 프로그래밍 Anchor 프로그래밍 Account 확인하기 Account 확인하기 에서는 우리의 Program이 소유하는 Account를 하나 생성하고, Account가 생성됐는지 확인해보겠습니다. Account가 생성된 것인지 아닌지에 대해 확인하기 위해, Client에서 생성할 Account와 이미 생성한 Account 두 개의 키쌍을 Instruction으로 보낼 것입니다. 이 "생성한" Account 하나는 Client에서 미리 SystemProgram에 생성을 요청하고, 다른 하나의 Account는 생성을 요청하지 않는 키쌍입니다. Server Program은 이 두 개의 Account에 대해 몇 가지 확인하는 작업을 갖고 있습니다. 두 Ac..

    [Solana - Native vs Anchor] #1. Hello Solana

    목차 Hello Solana 프로그램 구조 Native 프로그래밍 Anchor 프로그래밍 Hello Solana [Solana - Native vs Anchor] 시리즈에서는 솔라나 프로그래밍을 하는 두 가지 방법에 대해 알아봅니다. 하나는 솔라나에서 지원하는 Rust Crate인 solana-program을 이용한 Native 프로그래밍 방식이고, 다른 하나는 솔라나 프로그래밍을 좀 더 편하게 해주는 Anchor 프레임워크를 이용한 방식입니다. 이 글은 Hello Solana 예제를 다루는 [Solana - Native vs Anchor] 시리즈의 첫 번째 글입니다. 향후 포스팅되는 다른 글들에서는 다양한 예제를 코드와 로직에 집중해 살펴보겠지만, 이 글에서는 프로그램을 빌드하고 솔라나 로컬넷에 배포하..

    [Solana 이해하기] Program

    Program Solana blockchain에 Program들을 작성하고 배포할 수 있습니다. Program(다른 프로토콜들에서 smart contract로 알려진)들은 DeFi, NFTs부터 소셜 미디어와 게임까지 모든 것을 실행하는 on-chain 활동을 위한 기반 역할을 수행합니다. Program은 사용자나 다른 Program으로 부터 받은 instructions을 처리합니다. 모든 Program들은 상태를 보존하지 않습니다. 즉, Program들이 사용하는 모든 데이터는 instructions을 거쳐 분리된 accounts로 보내집니다. Program 그 자체는 executable 체크된 Account에 저장됩니다. 모든 Program은 BPF Loader에 의해 소유되고 Solana Runti..

    [Solana 이해하기] Account

    Account Solana에서 Account는 상태를 저장하기 위해 사용되며, block을 만드는 필수적인 요소입니다. Account는 데이터를 저장하기 위해 사용됩니다. 각 Account는 유일한 address를 갖고 있습니다. Account는 10MB의 최대 크기를 가집니다. PDA Account는 10KB의 최대 크기를 가집니다. PDA Account는 program을 대표하여 서명하기 위해 사용될 수 있습니다. Account 크기는 생성 시점에 고정된다. 하지만 realloc을 사용해서 조정될 수 있습니다. Account 데이터 저장은 rent라는 비용이 발생합니다. 기본적으로 Account 의 소유자(Owner)는 시스템 프로그램입니다. Account Model 3가지 종류의 Account Da..