Stellen Sie Ihr erstes Solana-Programm bereit

Erstellen, stellen Sie bereit und testen Sie Ihr erstes Programm auf der Solana Blockchain mit dem Anchor-Framework. Diese Anleitung hilft Ihnen, sich mit dem Solana Playground vertraut zu machen und bereitet Sie auf die Verwendung von Program Derived Address (PDA) und Cross Program Invocation (CPI) vor.

Anchor-Projekt erstellen

  1. Öffnen Sie den Solana Playground in Ihrem Webbrowser
  2. Klicken Sie im linken Bereich auf + Create a new project
  3. Geben Sie einen Projektnamen ein
  4. Wählen Sie Anchor (Rust) als Framework
  5. Klicken Sie auf Create

Neues ProjektNeues Projekt

Die src/lib.rs Quelldatei wird geöffnet. Sie enthält eine Struktur namens Initialize, die Folgendes tut:

  • Empfängt einen erforderlichen Parameter namens data: u64
  • Erstellt ein neues Konto
  • Speichert den Wert von data: u64 im neuen Konto
  • Fügt eine Nachricht zu den Programm-Logs der Transaktion hinzu
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
}

Programm erstellen und bereitstellen

  1. Kompiliere den Programmcode
Terminal
$
build

Ihre Programm-ID, definiert in declare_id!(), wird nun aktualisiert.

  1. SOL zu deinem Wallet hinzufügen (Optional)

Die Bereitstellung eines Programms erfordert SOL im On-Chain-Konto des Programms. Falls nötig, füge SOL zu deinem Wallet hinzu, bevor du mit Schritt 3 fortfährst.

  1. Stelle das Programm im Netzwerk bereit
Terminal
$
deploy

Bei der Bereitstellung wird der Bytecode des Programms in einem ausführbaren program account gespeichert.

Hinweis: Falls bevorzugt, kannst du auch die Schaltflächen Build und Deploy im linken Seitenbereich verwenden, wie im Screenshot unten gezeigt.

Build und DeployBuild und Deploy

Programm testen

  1. Öffnen Sie die Testdatei namens tests/anchor.test.ts. Diese Datei zeigt, wie die initialize Struktur des Programms vom Client aufgerufen wird.
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. Führe die Testdatei aus
Terminal
$
test
  1. Speichern Sie den Transaktions-Hash (TxHash), der in der Ausgabe enthalten ist

(Im obigen Beispiel ist der Transaktions-Hash 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc.)

Hinweis: Falls bevorzugt, können Sie die Test Schaltfläche im linken Seitenbereich verwenden.

Test ausführenTest ausführen

  1. Führen Sie solana confirm -v [TxHash] aus, um die Transaktionslogs anzuzeigen
Terminal
$
solana confirm -v 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
  1. Transaktionsdetails anzeigen

Öffne entweder SolanaFM oder Solana Explorer und suche nach dem Transaktions-Hash.

Solana Explorer: Setzen Sie den Netzwerk-Cluster auf devnet, um mit dem von Solana Playground übereinzustimmen.

Programm schließen

Schließen Sie das Programm, um die dem On-Chain-Programm zugewiesenen SOL zurückzugewinnen. Führen Sie dazu solana program close [ProgramID] aus, unter Verwendung der Programmadresse, die im declare_id!() Makro gespeichert ist.

Terminal
$
solana program close 2VvQ11q8xrn5tkPNyeraRsPaATdiPx8weLAD8aD4dn2r

Programme können nur von einem Konto mit Upgrade-Authority geschlossen oder aktualisiert werden. Deine Playground-Wallet wird automatisch zur Upgrade-Authority für jedes Programm, wenn es bereitgestellt wird. Wenn die Upgrade-Authority widerrufen wird, wird das Programm unveränderlich.

Herzlichen Glückwunsch! Du hast dein erstes Solana-Programm mit Anchor erstellt und bereitgestellt.

Nächste Schritte

Nachdem du dein erstes Programm bereitgestellt hast, bist du bereit, programmabgeleitete Adressen und programmübergreifende Aufrufe zu erkunden.

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten

Verwaltet von

© 2026 Solana Foundation.
Alle Rechte vorbehalten.
Verbinden Sie sich