피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Stateless Program 구조와 Account 분리를 통한 병렬 처리 최적화
Solana's Account Model Explained By Someone Who Got Confused By It First
AI 요약
Context
기존 Web2의 Table 기반 모델이나 Ethereum의 Code-Data 결합 구조는 상태 변경 시 병목 현상을 유발함. Solana는 모든 네트워크 객체를 Account로 단일화하여 데이터 관리 방식을 근본적으로 재정의함.
Technical Solution
- Program과 Data Account를 완전히 분리한 Stateless 아키텍처 설계
- Program Account는 실행 가능한 코드만 보유하고 State는 별도 Account에 저장하는 구조 채택
- Transaction 호출 시 필요한 모든 Account를 명시적으로 전달하는 메커니즘 구현
- Validator가 접근할 State를 사전에 파악하여 서로 다른 Account를 수정하는 트랜잭션을 Parallel Execution으로 처리
- RAM 기반 상태 저장을 위해 최소 Lamports 보유 시에만 Account를 생성하는 Rent-exempt 모델 적용
실천 포인트
- On-chain 저장 공간 설계 시 바이트 단위의 비용 최적화 전략 수립 - Stateless 로직 설계를 통한 시스템 확장성 및 병렬 처리 가능성 검토 - 상태 변경 대상(Account)을 명시적으로 선언하는 인터페이스 설계 적용