Solana-dokumentaatioOhjelmien kehittäminen

Ohjelmien käyttöönotto

Tämä osio käy läpi perusvaiheiden prosessin Solana-ohjelman käyttöönotosta Solana CLI:n avulla.

CLI-komentojen viiteluettelo

TehtäväKomento
Rakenna ohjelmacargo build-sbf
Julkaise uusi ohjelmasolana program deploy <path_to_program.so>
Päivitä olemassa oleva ohjelmasolana program deploy <path_to_program.so> (sama kuin julkaisu)
Näytä ohjelman tiedotsolana program show <program-id>
Siirrä ohjelman valtuutussolana program set-upgrade-authority <program-id> --new-upgrade-authority <path_to_keypair>
Tee ohjelmasta muuttumatonsolana program set-upgrade-authority <program-id> --final
Sulje ohjelmasolana program close <program-id> --bypass-warning
Tarkista lompakon saldosolana balance
Pyydä airdrop (devnet/localhost)solana airdrop 2

Keskeiset käsitteet

Ennen kuin syvennymme aiheeseen, selvennetään joitakin termejä:

  • Program ID: Ohjelmasi osoite lohkoketjussa. Käyttäjät ovat vuorovaikutuksessa ohjelmasi kanssa viittaamalla Program ID:hen.
  • Program Account: Lohkoketjussa oleva tili, joka tallentaa ohjelmasi metatiedot. Program accountin osoite on Program ID. Program account tallentaa myös ProgramData Accountin osoitteen.
  • ProgramData Account: Lohkoketjussa oleva tili, joka tallentaa ohjelmasi käyttöönotetun suoritettavan koodin.
  • Program Authority: Tili, jolla on oikeus päivittää tai sulkea ohjelma. Oletusarvoisesti tämä on CLI-lompakkosi.

Edellytykset

Lompakon määrittäminen

Asennuksen jälkeen luo paikallinen keypair-lompakko. Tämän lompakon osoite asetetaan oletusarvoiseksi program authorityksi ohjelmia käyttöönotettaessa:

Terminal
$
solana-keygen new

Tämä luo keypair-avaimen oletuksena sijaintiin ~/.config/solana/id.json.

Klusterin määrittäminen

Valitse, mille Solana-klusterille haluat julkaista. Käytä solana config get -komentoa tarkistaaksesi nykyisen konfiguraatiosi:

Terminal
$
solana config get

Vaihda klusterien välillä tarpeen mukaan:

Terminal
$
solana config set --url mainnet-beta
$
solana config set --url devnet
$
solana config set --url localhost
$
solana config set --url testnet
$
solana config set --url "https://your-rpc-url.com"

Lompakon rahoittaminen

Tarvitset SOL-tokeneita ohjelmien käyttöönottoa varten. Tarvittava määrä riippuu ohjelmasi koosta.

Devnetissä tai localhostissa rahoita lompakkosi käyttämällä solana airdrop -komentoa:

Terminal
$
solana airdrop 2

Tarkista lompakkosi saldo:

Terminal
$
solana balance

Perustoiminnot

Ohjelman rakentaminen

Rakentaaksesi ohjelman käytä cargo build-sbf -komentoa:

Terminal
$
cargo build-sbf

Esimerkkiohjelma

Tässä on minimaalinen Solana-ohjelma, joka tulostaa "Hello, Solana!" ohjelman lokeihin.

src/lib.rs
use solana_program::{
account_info::AccountInfo, entrypoint, entrypoint::ProgramResult, msg, pubkey::Pubkey,
};
entrypoint!(process_instruction);
pub fn process_instruction(
_program_id: &Pubkey,
_accounts: &[AccountInfo],
_instruction_data: &[u8],
) -> ProgramResult {
msg!("Hello, Solana!");
Ok(())
}

Käännöksen tulos

Rakenna ohjelmasi käyttämällä cargo build-sbf -komentoa:

Terminal
$
cargo build-sbf

Tämä luo kaksi tärkeää tiedostoa hakemistoon target/deploy/:

  1. hello_world-keypair.json: Keypair-tiedosto, jonka julkista avainta käytetään ohjelman tunnuksena (Program ID)
  2. hello_world.so: Käännetty ohjelman suoritettava tiedosto

Esimerkkiohjelma

Tässä on minimaalinen Solana-ohjelma, joka tulostaa "Hello, Solana!" ohjelman lokeihin.

Käännöksen tulos

Rakenna ohjelmasi käyttämällä cargo build-sbf -komentoa:

Terminal
$
cargo build-sbf

Tämä luo kaksi tärkeää tiedostoa hakemistoon target/deploy/:

  1. hello_world-keypair.json: Keypair-tiedosto, jonka julkista avainta käytetään ohjelman tunnuksena (Program ID)
  2. hello_world.so: Käännetty ohjelman suoritettava tiedosto
lib.rs
Cargo.toml
use solana_program::{
account_info::AccountInfo, entrypoint, entrypoint::ProgramResult, msg, pubkey::Pubkey,
};
entrypoint!(process_instruction);
pub fn process_instruction(
_program_id: &Pubkey,
_accounts: &[AccountInfo],
_instruction_data: &[u8],
) -> ProgramResult {
msg!("Hello, Solana!");
Ok(())
}

Tarkista ohjelman koko ja kustannukset

Ohjelman käyttöönotto vaatii SOL-tokeneita, jotka allokoidaan ohjelmatilille ohjelman koon perusteella. Suuremmat ohjelmat maksavat enemmän SOL-tokeneita käyttöönotossa.

Tarkista ohjelmasi koko:

Terminal
$
wc -c < ./target/deploy/hello_world.so

Laske tarvittava SOL-määrä tälle koolle (tavuina):

Terminal
$
solana rent 18504

Tarvitset hieman enemmän SOL-tokeneita kuin näytetty kattaaksesi käyttöönoton transaktiomaksut.

Ota ohjelma käyttöön

Käytä solana program deploy -komentoa julkaistaksesi ohjelmasi:

Terminal
$
solana program deploy ./target/deploy/hello_world.so

Näytetty Program Id on ohjelmasi pysyvä osoite verkossa.

Jos haluat ottaa ohjelman käyttöön tietyllä Program ID:llä (automaattisesti luodun sijaan), käytä:

Terminal
$
solana program deploy ./target/deploy/hello_world.so --program-id ./custom-keypair.json

Voit luoda uusia keypair-avaimia käyttämällä solana-keygen -komentoa:

Terminal
$
solana-keygen new -o ./custom-keypair.json

Päivitä ohjelma

Päivitä ohjelmasi käyttämällä samaa solana program deploy -komentoa:

  1. Tee muutoksia ohjelmakoodiisi
  2. Käännä ohjelmasi uudelleen: cargo build-sbf
  3. Ota päivitys käyttöön:
Terminal
$
solana program deploy ./target/deploy/hello_world.so

Jos päivitetty ohjelmasi vaatii enemmän tilaa (tavuja) kuin on tällä hetkellä varattu, käyttöönotto laajentaa automaattisesti program account -tiliä. Näin tapahtuu, kun uusi ohjelmasi on suurempi kuin edellinen versio. Program account tarvitsee lisää tavuja uuden ohjelman tallentamiseen. CLI laskee tarvittavan SOL-määrän ja vähentää sen automaattisesti lompakostasi.

Voit myös manuaalisesti laajentaa ohjelmaa varataksesi lisää tavuja:

Terminal
$
solana program extend 7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE 1000

Ohjelman hallinta

Kun ohjelmasi on otettu käyttöön, on olemassa useita yleisiä komentoja program account -tilin hallintaan.

Tarkastele ohjelman metatietoja

Tarkistaaksesi ohjelmasi metatiedot, käytä solana program show -komentoa:

Terminal
$
solana program show 7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE

Esimerkki tulostuksesta:

$ solana program show 7283x8k8fyBcfaFLyPsxbd2VV1AMmZFP7FNoyTXVKJw7
Program Id: 7283x8k8fyBcfaFLyPsxbd2VV1AMmZFP7FNoyTXVKJw7
Owner: BPFLoaderUpgradeab1e11111111111111111111111
ProgramData Address: Gqn7YQVCP8NtYV1qkEqR4Udhj8EJ3fkikvS7HskCNQ7c
Authority: 5kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1
Last Deployed In Slot: 6573
Data Length: 18504 (0x4848) bytes
Balance: 0.12999192 SOL

Ohjelman authorityn siirtäminen

Siirtääksesi ohjelman valtuutuksen toiselle tilille, käytä solana program set-upgrade-authority -komentoa:

Terminal
$
solana program set-upgrade-authority 7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE --new-upgrade-authority ./new-authority-keypair.json

Kun olet siirtänyt ohjelman authorityn, et voi enää päivittää ohjelmaa, ellei sinulla ole pääsyä uuteen authority-keypairiin.

Ohjelman tekeminen muuttumattomaksi

Tehdäksesi ohjelmastasi muuttumattoman, käytä solana program set-upgrade-authority -komentoa --final -lipun kanssa poistaaksesi ohjelman valtuutuksen:

Terminal
$
solana program set-upgrade-authority 7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE --final

Kun ohjelma on tehty muuttumattomaksi, sitä ei voi koskaan päivittää tai sulkea.

Ohjelman sulkeminen

Sulkeaksesi ohjelmasi ja saadaksesi takaisin ohjelman tilille varatun SOL:n, käytä solana program close -komentoa:

Terminal
$
solana program close 7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE --bypass-warning

Kun ohjelma on suljettu, Program ID:tä ei voi käyttää uudelleen. Et voi ottaa käyttöön uutta ohjelmaa samaan osoitteeseen.

Apukomennot

Kaikkien ohjelmien listaaminen

Näytä kaikki ohjelmat, joissa nykyinen lompakkosi on authority:

Terminal
$
solana program show --programs

Esimerkki tulostuksesta:

Program Id | Slot | Authority | Balance
-------------------------------------------------|------------|------------------------------------------------|-------------
7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE | 249885434 | 5kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1 | 0.12999192
3KSGCk4m5hqJkTjPHBXUCPcqMwJnK3VmkqEsFUKKGJPK | 249883212 | 5kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1 | 0.28654328

Käyttöönotetun ohjelman lataaminen

Ladataksesi käyttöönotetun ohjelman, käytä solana program dump -komentoa:

Terminal
$
solana program dump 7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE ./downloaded_program.so

Edistyneet vaihtoehdot

Käyttöönottolippuja

Kun Solana-verkko on ruuhkainen, käytä näitä lippuja auttamaan ohjelman käyttöönotossa.

Esimerkki käytöstä:

Terminal
$
solana program deploy ./target/deploy/hello_world.so \
--with-compute-unit-price 10000 \
--max-sign-attempts 10 \
--use-rpc

Vaihtoehtojen selitykset:

  • --with-compute-unit-price: Aseta prioriteettimaksu mikrolamporteissa (0,000001 SOL) laskentayksikköä kohden. Tarkista Helius Priority Fee API nykyisten hintojen osalta. Prioriteettimaksu on lisämaksu, joka maksetaan nykyiselle johtajalle tapahtumasi priorisoimiseksi.
  • --max-sign-attempts: Uudelleenyritysten määrä uudella lohkohajautusarvolla, jos tapahtumat vanhenevat. (Oletus: 5)
  • --use-rpc: Lähetä tapahtumat määritetylle RPC:lle. Tämä lippu vaatii stake-weighted RPC-yhteyden palveluntarjoajilta kuten Triton tai Helius.

Is this page helpful?

Hallinnoi

© 2026 Solana Foundation.
Kaikki oikeudet pidätetään.
Yhdistä