Solana 개발의 기반을 이루는 일곱 가지 개념이 있습니다. 계정과 프로그램부터 시작하여, 명령어가 트랜잭션이 되는 과정을 따라가 보세요. PDA, CPI, 그리고 수수료는 이 실행 모델 위에 구축됩니다.
계정
Solana는 32바이트 주소를 키로 사용하는 키-값 저장소인 계정에 모든 상태를 저장합니다. 각 계정에는 lamport, 데이터, 소유자, 실행 가능 여부, rent_epoch의 다섯 가지 필드가 있습니다.
프로그램
sBPF로 컴파일된 Solana의 스마트 컨트랙트입니다. 프로그램은 상태를 갖지 않으며, 모든 변경 가능한 상태는 명령어를 통해 전달되는 별도의 데이터 계정에 저장됩니다.
명령어
프로그램 ID, 계정 목록, 불투명한 데이터 바이트를 포함하여 하나의 프로그램 실행을 요청합니다. 여러 명령어를 조합하여 단일 트랜잭션을 구성할 수 있습니다.
트랜잭션
Solana의 원자적 실행 단위입니다. 서명과 메시지(계정 주소, 최근 블록해시, 컴파일된 명령어)를 포함합니다. 최대 1232바이트이며, v1 형식은 최대 4096바이트입니다.
수수료
서명당 기본 수수료 5,000 lamport에 요청된 컴퓨팅 유닛 기반의 선택적 우선순위 수수료가 추가됩니다. 트랜잭션당 최대 컴퓨팅 유닛은 140만 개입니다.
Program Derived Addresses (PDAs)
프로그램 ID와 시드로부터 결정론적으로 도출되는 주소입니다. PDA를 대신하여 서명할 수 있는 것은 소유 프로그램뿐이며, invoke_signed를 통해 서명합니다.
Cross-Program Invocations (CPIs)
하나의 프로그램이 invoke 또는 invoke_signed를 통해 다른 프로그램을 호출하는 방식입니다. 서명자(signer) 및 쓰기 가능(writable) 권한은 피호출 프로그램(callee)으로 확장됩니다. 최대 인스트럭션 스택 깊이는 최상위 호출과 CPI를 포함해 5입니다(SIMD-0268 적용 시 9).
추가 주제
자산
Solana의 대체 가능 및 대체 불가능 디지털 자산 (SPL Token, Token-2022).
클러스터 및 엔드포인트
Mainnet, Devnet, Testnet: JSON-RPC 요청을 처리하는 validator 그룹.
| 클러스터 | 공개 RPC 엔드포인트 | 용도 |
|---|---|---|
| Mainnet | https://api.mainnet.solana.com | 프로덕션 |
| Devnet | https://api.devnet.solana.com | 개발자 실험 |
| Testnet | https://api.testnet.solana.com | validator 테스트 |
Is this page helpful?