빠른 접근
다른 구현의 기본 카운터 예제를 확인해 보세요。GitHub
Native Rust 구현
GitHub
Pinocchio 구현
Guide
로컬 개발
단계별 가이드
프로그램을 빌드하고 MagicBlock의 Delegation ProgramDELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh 을 사용해 delegation hooks를 추가하여 업그레이드하세요。
프로그램 작성 및 delegation instructions 추가
평소와 같이 Solana 프로그램을 작성하세요。
CPI hooks를 추가해 상태 계정을 Ephemeral Rollup 세션을 통해 delegate, commit, undelegate 할 수 있게 하세요。
이 공용 검증자들은 개발용으로 지원됩니다. 위임 명령에 해당 ER 검증자를 반드시 추가하세요.
메인넷- 아시아 (as.magicblock.app):
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - EU (eu.magicblock.app):
MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e - 미국 (us.magicblock.app):
MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd - TEE (mainnet-tee.magicblock.app):
MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
- 아시아 (devnet-as.magicblock.app):
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - EU (devnet-eu.magicblock.app):
MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e - 미국 (devnet-us.magicblock.app):
MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd - TEE (devnet-tee.magicblock.app):
FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA
- 로컬 ER (localhost:7799):
mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
Solana CLI를 사용해 프로그램을 Solana에 직접 배포하세요。
SVM RPC 사양을 준수하는 트랜잭션을 수정 없이 온체인과 오프체인에서 전송하세요。
Counter 예제
다음 소프트웨어 패키지가 필요할 수 있으며, 다른 버전도 호환될 수 있습니다.코드 스니펫
- 1. Write Program
- 2. Delegate
- 3. Commit
- 4. Undelegate
이 프로그램은 두 가지 주요 instruction을 구현합니다。아래는 프로그램의 핵심 구조입니다。⬆️ Back to Top
InitializeCounter: 카운터를 초기화하고 0으로 설정 (Base Layer에서 호출)IncreaseCounter: 초기화된 카운터를 X만큼 증가 (Base Layer 또는 ER에서 호출)
Delegate: 카운터를 Base Layer에서 ER로 위임 (Base Layer에서 호출)CommitAndUndelegate: 카운터를 ER에서 Base Layer로 동기화하도록 예약하고 ER에서 위임 해제 (ER에서 호출)Commit: 카운터를 ER에서 Base Layer로 동기화하도록 예약 (ER에서 호출)Undelegate: Base Layer에서 카운터를 위임 해제 (validator CPI를 통해 Base Layer에서 호출)
The undelegation callback discriminator
[196, 28, 41, 206, 48, 37, 51, 167]
and its instruction processor must be specified in your program. This
instruction triggered by Delegation Program reverts account ownership on the
Base Layer after calling undelegation on ER.With [#ephemeral] Anchor macro from MagicBlock’s Ephemeral Rollup SDK, the undelegation callback discriminator and processor are injected into your program.“Undelegate” instruction은 정확한 discriminator를 가져야 합니다. 이것은
사용자가 직접 호출하지 않으며, Base Layer의 validator가 ER에서 계정을
undelegate 한 뒤 CPI callback으로 프로그램을 호출합니다.
고급 코드 스니펫
- Resize PDA
- On-Curve Delegation
위임된 PDA를 리사이즈할 때:⬆️ Back to Top
- PDA는 새로운 계정 크기에서도 rent-exempt 상태를 유지할 만큼 충분한 lamports를 가지고 있어야 합니다。
- 추가 lamports가 필요하다면, 차액을 제공하기 위해 payer account도 위임되어 있어야 합니다。
- PDA는 프로그램이 소유하고 있어야 하며, 트랜잭션에는 lamports 전송에 필요한 signer가 포함되어야 합니다。
system_instruction::allocate를 사용합니다。
Solana 익스플로러
Solana에서의 트랜잭션과 계정 정보를 확인해 보세요.Solana 익스플로러
공식 Solana 익스플로러
Solscan
Solana 블록체인 살펴보기
Solana RPC 제공업체
기존 RPC 제공업체를 통해 트랜잭션과 요청을 전송하세요.Solana
Free Public Nodes
Helius
Free Shared Nodes
Triton
Dedicated High-Performance Nodes
Solana 검증자 대시보드
Solana 검증자 인프라의 실시간 업데이트를 확인하세요.Solana Beach
Get Validator Insights
Validators App
Discover Validator Metrics
서버 상태
Solana와 MagicBlock의 서버 상태를 확인해 보세요.Solana Status
Subscribe to Solana Server Updates
MagicBlock Status
Subscribe to MagicBlock Server Status

