Wdróż swój pierwszy program na Solanie

Zbuduj, wdroż i przetestuj swój pierwszy program na blockchainie Solana z użyciem frameworka Anchor. Ten przewodnik pomoże Ci lepiej poznać Solana Playground i przygotuje do korzystania z adresów pochodnych programu (PDA) oraz wywołań międzyprogramowych (CPI).

Utwórz projekt Anchor

  1. Otwórz Solana Playground w swojej przeglądarce internetowej
  2. W lewym panelu kliknij + Utwórz nowy projekt
  3. Wpisz Nazwa projektu
  4. Wybierz Anchor (Rust) jako framework
  5. Kliknij Utwórz

Nowy projektNowy projekt

Plik źródłowy src/lib.rs zostanie otwarty. Zawiera jedną strukturę o nazwie Initialize, która wykonuje następujące czynności:

  • Odbiera wymagany parametr data: u64
  • Tworzy nowe konto
  • Zapisuje wartość data: u64 na nowym koncie
  • Dodaje wiadomość do logów programu w transakcji
lib.rs
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 logs
Ok(())
}
}
#[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
}

Budowanie i wdrażanie programu

  1. Skompiluj kod programu
Terminal
$
build

Twój program ID, zdefiniowany w declare_id!(), zostanie teraz zaktualizowany.

  1. Dodaj SOL do swojego portfela (opcjonalnie)

Wdrożenie programu wymaga posiadania SOL na koncie programu w łańcuchu. W razie potrzeby dodaj SOL do swojego portfela przed przejściem do kroku 3.

  1. Wdróż program w sieci
Terminal
$
deploy

Po wdrożeniu bajtkod programu jest przechowywany na koncie programu jako wykonywalny kod.

Uwaga: Jeśli wolisz, możesz użyć przycisków Build i Deploy w panelu po lewej stronie, jak pokazano na poniższym zrzucie ekranu.

Budowanie i wdrażanieBudowanie i wdrażanie

Przetestuj program

  1. Otwórz plik testowy o nazwie tests/anchor.test.ts. Ten plik pokazuje, jak wywołać strukturę initialize programu z poziomu klienta.
anchor.test.ts
// No imports needed: web3, anchor, pg and more are globally available
describe("Test", () => {
it("initialize", async () => {
// Generate keypair for the new account
const newAccountKp = new web3.Keypair();
// Send transaction
const 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 transaction
await pg.connection.confirmTransaction(txHash);
// Fetch the created account
const 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));
});
});
  1. Uruchom plik testowy
Terminal
$
test
  1. Zapisz hash transakcji (TxHash) zawarty w wyniku

(W powyższym przykładzie hash transakcji to 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc.)

Uwaga: Jeśli wolisz, możesz użyć przycisku Test w panelu po lewej stronie.

Uruchom testUruchom test

  1. Uruchom solana confirm -v [TxHash], aby zobaczyć logi transakcji
Terminal
$
solana confirm -v 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
  1. Zobacz szczegóły transakcji

Otwórz SolanaFM lub Solana Explorer i wyszukaj hash transakcji.

Solana Explorer: Ustaw klaster sieci na devnet, aby był zgodny z tym używanym w Solana Playground.

Zamknij program

Zamknij program, aby odzyskać SOL przydzielone do programu on-chain. Aby to zrobić, uruchom solana program close [ProgramID], używając adresu programu zapisanego w makrze declare_id!().

Terminal
$
solana program close 2VvQ11q8xrn5tkPNyeraRsPaATdiPx8weLAD8aD4dn2r

Programy mogą być zamykane lub aktualizowane tylko przez konto z uprawnieniami do aktualizacji. Twój portfel Playground automatycznie staje się uprawnionym do aktualizacji każdego programu podczas wdrażania. Jeśli uprawnienia do aktualizacji zostaną cofnięte, program stanie się niezmienny.

Gratulacje! Zbudowałeś(-aś) i wdrożyłeś(-aś) swój pierwszy program Solana przy użyciu Anchor.

Kolejne kroki

Teraz, gdy wdrożyłeś swój pierwszy program, możesz zacząć poznawać adresy pochodne programów oraz wywołania międzyprogramowe.

Is this page helpful?

Spis treści

Edytuj stronę

Zarządzane przez

© 2026 Solana Foundation.
Wszelkie prawa zastrzeżone.
Bądź na bieżąco