İlk Solana Programınızı Dağıtın
Anchor framework kullanarak ilk programınızı Solana Blockchain'e oluşturun, dağıtın ve test edin. Bu rehber, Solana Playground'u daha iyi tanımanıza ve program derived address (PDA) ve cross program invocation (CPI) kullanmaya hazırlanmanıza yardımcı olacak.
Anchor Projesi Oluşturma
- Web tarayıcınızda Solana Playground adresini açın
- Sol panelde + Create a new project (Yeni proje oluştur) seçeneğine tıklayın
- Bir Project name (Proje adı) girin
- Framework olarak Anchor (Rust) seçin
- Create (Oluştur) düğmesine tıklayın
Yeni Proje
src/lib.rs
kaynak dosyası açılacaktır. Bu dosya, Initialize
adlı bir yapı
içerir ve şunları yapar:
data: u64
adlı gerekli bir parametre alır- Yeni bir hesap oluşturur
data: u64
değerini yeni hesaba kaydeder- İşlemin program günlüklerine bir mesaj ekler
use anchor_lang::prelude::*;// This is your program's public key and it will update// automatically when you build the project.declare_id!("11111111111111111111111111111111");#[program]mod hello_anchor {use super::*;pub fn initialize(ctx: Context<Initialize>, data: u64) -> Result<()> {ctx.accounts.new_account.data = data;msg!("Changed data to: {}!", data); // Message will show up in the tx logsOk(())}}#[derive(Accounts)]pub struct Initialize<'info> {// We must specify the space in order to initialize an account.// First 8 bytes are default account discriminator,// next 8 bytes come from NewAccount.data being type u64.// (u64 = 64 bits unsigned integer = 8 bytes)#[account(init,payer = signer,space = 8 + 8)]pub new_account: Account<'info, NewAccount>,#[account(mut)]pub signer: Signer<'info>,pub system_program: Program<'info, System>,}#[account]pub struct NewAccount {data: u64}
Programı derleme ve dağıtma
- Program kodunu derleyin
$build
declare_id!()
içinde tanımlanan program
kimliğiniz şimdi
güncellenecektir.
- Cüzdanınıza SOL ekleyin (İsteğe bağlı)
Bir programı dağıtmak, programın zincir üzerindeki hesabında SOL gerektirir. Gerekirse, 3. adıma geçmeden önce cüzdanınıza SOL ekleyin.
- Programı ağa dağıtın
$deploy
Dağıtıldığında, programın bayt kodu çalıştırılabilir bir program hesabında saklanır.
Not: Tercih ederseniz, aşağıdaki ekran görüntüsünde gösterildiği gibi sol panel üzerindeki Build ve Deploy düğmelerini kullanabilirsiniz.
Derleme ve Dağıtma
Programı test etme
tests/anchor.test.ts
adlı test dosyasını açın. Bu dosya, programıninitialize
yapısının istemciden nasıl çağrılacağını gösterir.
// No imports needed: web3, anchor, pg and more are globally availabledescribe("Test", () => {it("initialize", async () => {// Generate keypair for the new accountconst newAccountKp = new web3.Keypair();// Send transactionconst data = new BN(42);const txHash = await pg.program.methods.initialize(data).accounts({newAccount: newAccountKp.publicKey,signer: pg.wallet.publicKey,systemProgram: web3.SystemProgram.programId}).signers([newAccountKp]).rpc();console.log(`Use 'solana confirm -v ${txHash}' to see the logs`);// Confirm transactionawait pg.connection.confirmTransaction(txHash);// Fetch the created accountconst newAccount = await pg.program.account.newAccount.fetch(newAccountKp.publicKey);console.log("On-chain data is:", newAccount.data.toString());// Check whether the data on-chain is equal to local 'data'assert(data.eq(newAccount.data));});});
- Test dosyasını çalıştırın
$test
- Çıktıda yer alan işlem hash'ini (
TxHash
) kaydedin
(Yukarıdaki örnekte, işlem hash'i
3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
şeklindedir.)
Not: Tercih ederseniz, sol panel üzerindeki Test
düğmesini
kullanabilirsiniz.
Test Çalıştır
- İşlem kayıtlarını görüntülemek için
solana confirm -v [TxHash]
komutunu çalıştırın
$solana confirm -v 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
- İşlem detaylarını görüntüleyin
SolanaFM veya Solana Explorer sayfalarından birini açın ve işlem hash'ini aratın.
Solana Explorer: Ağ kümesini Solana Playground ile eşleşecek şekilde
devnet
olarak ayarlayın.
Programı kapatma
Zincir üzerindeki programa tahsis edilen SOL'u geri almak için programı kapatın.
Bunu yapmak için, declare_id!()
makrosunda saklanan program adresini
kullanarak solana program close [ProgramID]
komutunu çalıştırın.
$solana program close 2VvQ11q8xrn5tkPNyeraRsPaATdiPx8weLAD8aD4dn2r
Programlar yalnızca yükseltme yetkisine sahip bir hesap tarafından kapatılabilir veya güncellenebilir. Playground cüzdanınız, her program dağıtıldığında otomatik olarak o program için yükseltme yetkilisi olur. Yükseltme yetkisi iptal edilirse, program değiştirilemez hale gelir.
Tebrikler! Anchor kullanarak ilk Solana programınızı oluşturdunuz ve dağıttınız.
Sonraki adımlar
İlk programınızı dağıttıktan sonra, artık program-türetilmiş adresler ve programlar arası çağrı konularını keşfetmeye hazırsınız.
Is this page helpful?