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 |
---|---|
Ohjelman rakentaminen | cargo build-sbf |
Uuden ohjelman käyttöönotto | solana program deploy <path_to_program.so> |
Olemassa olevan ohjelman päivitys | solana program deploy <path_to_program.so> (sama kuin käyttöönotto) |
Ohjelman tietojen näyttäminen | solana program show <program-id> |
Ohjelman käyttöoikeuden siirto | solana program set-upgrade-authority <program-id> --new-upgrade-authority <path_to_keypair> |
Ohjelman muuttaminen muuttumattomaksi | solana program set-upgrade-authority <program-id> --final |
Ohjelman sulkeminen | solana program close <program-id> --bypass-warning |
Lompakon saldon tarkistaminen | solana balance |
Airdropin pyytäminen (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:
$solana-keygen new
Tämä luo keypair-tiedoston oletusarvoisesti sijaintiin
~/.config/solana/id.json
.
Klusterin määrittäminen
Valitse, mihin Solana-klusteriin haluat tehdä käyttöönoton. Käytä komentoa
solana config get
tarkistaaksesi nykyisen määrityksesi:
$solana config get
Vaihda klusterien välillä tarpeen mukaan:
$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.
Devnet- tai localhost-ympäristössä voit rahoittaa lompakkosi käyttämällä
komentoa solana airdrop
:
$solana airdrop 2
Tarkista lompakkosi saldo:
$solana balance
Perustoiminnot
Ohjelman rakentaminen
Rakentaaksesi ohjelman käytä komentoa cargo build-sbf
:
$cargo build-sbf
Esimerkkiohjelma
Tässä on minimaalinen Solana-ohjelma, joka tulostaa "Hello, Solana!" ohjelman lokeihin.
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:
$cargo build-sbf
Tämä luo kaksi tärkeää tiedostoa hakemistoon target/deploy/
:
hello_world-keypair.json
: Keypair-tiedosto, jonka julkista avainta käytetään ohjelmatunnuksenasi (Program ID)hello_world.so
: Käännetty ohjelmatiedosto
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:
$wc -c < ./target/deploy/hello_world.so
Laske tarvittava SOL-määrä tälle koolle (tavuina):
$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 ottaaksesi ohjelmasi käyttöön:
$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ä:
$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:
$solana-keygen new -o ./custom-keypair.json
Päivitä ohjelma
Päivitä ohjelmasi käyttämällä samaa solana program deploy
komentoa:
- Tee muutoksia ohjelmakoodiisi
- Rakenna ohjelmasi uudelleen:
cargo build-sbf
- Ota päivitys käyttöön:
$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:
$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:
$solana program show 7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE
Esimerkki tulostuksesta:
$ solana program show 7283x8k8fyBcfaFLyPsxbd2VV1AMmZFP7FNoyTXVKJw7Program Id: 7283x8k8fyBcfaFLyPsxbd2VV1AMmZFP7FNoyTXVKJw7Owner: BPFLoaderUpgradeab1e11111111111111111111111ProgramData Address: Gqn7YQVCP8NtYV1qkEqR4Udhj8EJ3fkikvS7HskCNQ7cAuthority: 5kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1Last Deployed In Slot: 6573Data Length: 18504 (0x4848) bytesBalance: 0.12999192 SOL
Ohjelman authorityn siirtäminen
Siirtääksesi ohjelman authorityn toiselle tilille, käytä
solana program set-upgrade-authority
komentoa:
$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
lipulla poistaaksesi
ohjelman authorityn:
$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 ohjelmatilille allokoidun SOLin,
käytä solana program close
komentoa:
$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:
$solana program show --programs
Esimerkki tulostuksesta:
Program Id | Slot | Authority | Balance-------------------------------------------------|------------|------------------------------------------------|-------------7NxQjW8H8hVcqBKgXbVDWqGQCovHbqDW9p1SJJwUyTpE | 249885434 | 5kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1 | 0.129991923KSGCk4m5hqJkTjPHBXUCPcqMwJnK3VmkqEsFUKKGJPK | 249883212 | 5kh6HxYZiAebF8HWLsUWod2EaQQ6iWHpHYCz8UcmFbM1 | 0.28654328
Käyttöönotetun ohjelman lataaminen
Käyttöönotetun ohjelman lataamiseen käytä solana program dump
komentoa:
$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ä:
$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 mikro-lamporteissa (0.000001 SOL) laskentayksikköä kohden. Tarkista Helius Priority Fee API nykyiset hinnat. Prioriteettimaksu on lisämaksu, joka maksetaan nykyiselle johtajalle transaktiosi priorisoimiseksi.--max-sign-attempts
: Kuinka monta kertaa yritetään uudelleen uudella blockhashilla, jos transaktiot vanhenevat. (Oletus: 5)--use-rpc
: Lähetä transaktiot määritettyyn RPC:hen. Tämä lippu vaatii stake-weighted RPC-yhteyden palveluntarjoajilta kuten Triton tai Helius.
Is this page helpful?