Ohjelman käyttöönotto

Yhteenveto

Loader-v3:n kautta käyttöönotetut ohjelmat voidaan päivittää, kun päivitysoikeus on asetettu. Oikeuden peruuttaminen tekee ohjelmasta muuttumattoman. Kattaa 9-vaiheisen päivitysmekanismin, kaikki 9 loader-v3-käskyä, käännöksen varmentamisen ja 5 lataajatyyppiä.

Ohjelmien käyttöönotto

Ohjelmien päivittäminen

Ohjelman päivittämiseksi tilin on pidettävä hallussaan päivitysoikeutta (tyypillisesti tili, joka alun perin otti ohjelman käyttöön). Käyttöönoton tai päivityksen aikana uusi tavukoodi ladataan väliaikaiselle puskuritilille ja kirjoitetaan sitten program data -tilille. Päivitysoikeuden asettaminen arvoon None tekee ohjelmasta muuttumattoman ja estää pysyvästi kaikki tulevat päivitykset.

Päivitysmekanismi

Kun UpgradeableLoaderInstruction::Upgrade käsitellään, ajonaikaympäristö:

  1. Varmistaa, että program account on kirjoitettavissa ja loader-v3:n omistama.
  2. Varmistaa, että buffer account sisältää Buffer-tilan oikealla oikeudella.
  3. Varmistaa, että programdata account -tilin upgrade_authority_address täsmää eikä ole None.
  4. Varmistaa, että ohjelmaa ei ole jo otettu käyttöön nykyisessä slotissa (clock.slot != slot).
  5. Lataa ja varmistaa uudet ELF-tavut puskurista.
  6. Kopioi uuden tavukoodin puskurista programdata account -tilille ja nollaa jäljelle jäävät tavut.
  7. Rahoittaa programdata account -tilin vuokravapauteen.
  8. Tyhjentää puskuritilin (asettaa lamportit arvoon 0) ja katkaisee sen datan.
  9. Uusi versio tulee voimaan seuraavassa slotissa (deployment_slot + 1).

Itse Program-tili (sen tila ja programdata_address-osoitin) ei muutu päivityksen aikana. Vain ProgramData-tilin tavukoodi ja slot-metatiedot päivitetään.

Loader-v3-käskyviite

Loader-v3 (BPF Loader Upgradeable) on nykyinen oletuslataaja ohjelmien käyttöönotolle Solanassa.

KäskyKuvaus
InitializeBufferAsettaa puskuritilin tilan arvoon Buffer määritetyllä valtuutuksella. Epäonnistuu, jos jo alustettu.
WriteKirjoittaa tavuja määritettyyn kohtaan puskuritilillä. Valtuutuksen on allekirjoitettava.
DeployWithMaxDataLenLuo uuden ohjelman: johtaa ProgramData-osoitteen, luo ProgramData-tilin CPI:n kautta System Programiin, vahvistaa ja ottaa käyttöön ELF:n puskurista, asettaa program account -tilin tilan ja merkitsee sen suoritettavaksi.
UpgradeKorvaa olemassa olevan ohjelman ProgramData-tilin tavukoodin puskurista.
SetAuthorityMuuttaa Buffer- tai ProgramData-tilin valtuutusta. Asettaminen arvoon None ProgramDatassa tekee ohjelmasta muuttumattoman. Puskurin valtuutusta ei voi asettaa arvoon None.
SetAuthorityCheckedKuten SetAuthority, mutta vaatii myös uuden valtuutuksen allekirjoittamaan transaktion.
CloseSulkee puskuri-, alustamattoman tai ProgramData-tilin siirtämällä sen lamportit vastaanottajalle. ProgramDatan sulkeminen kirjoittaa myös Closed-hautakiven ohjelman välimuistiin. Ei voi sulkea ohjelmaa, joka otettiin käyttöön nykyisellä slotilla.
ExtendProgramCheckedLaajentaa ProgramData-tilin varausta lisätavuilla rahoittaen ylimääräisen rent-maksun maksajalta.
MigrateSiirtää loader-v3-ohjelman loader-v4:ään siirtämällä program account -tilin omistajuuden ja kopioimalla tavukoodin. Vaatii migraatiovaltuutuksen tai ohjelman päivitysvaltuutuksen allekirjoituksen. Loader-v4 ei ole vielä julkaistu mainnetissä.

Ohjelmien varmentaminen

Solana tukee varmenettavia käännöksiä, joiden avulla käyttäjät voivat varmistaa, että ohjelman lohkoketjussa oleva tavukoodi vastaa sen julkista lähdekoodia. Anchor-kehys tarjoaa sisäänrakennetun tuen varmenettaville käännöksille.

Tarkistaaksesi käyttöönotetun ohjelman varmentamistilan, etsi sen ohjelmatunnus Solana Explorerista tai käytä Ellipsis Labsin Solana Verifiable Build CLI -työkalua varmentaaksesi lohkoketjussa olevat ohjelmat itsenäisesti.

Latausohjelmat

LatausohjelmaOsoitePäivitettävissäKuvaus
Native LoaderNativeLoader1111111111111111111111111111111Vain validaattoriohjelmiston päivityksen kauttaOmistaa sisäänrakennetut ohjelmat (System, Vote, Stake) ja muut latausohjelmat
BPF Loader (v1)BPFLoader1111111111111111111111111111111111Ei (lataimen hallinta poistettu käytöstä)Vanhat ohjelmat
BPF Loader (v2)BPFLoader2111111111111111111111111111111111Ei (lataimen hallinta poistettu käytöstä)Vanhat ohjelmat
BPF Loader UpgradeableBPFLoaderUpgradeab1e11111111111111111111111Kyllä, jos päivitysoikeus on asetettuOmistaa kaikki äskettäin käyttöönotetut ohjelmat
Loader-v4LoaderV411111111111111111111111111111111111Kyllä, jos oikeus on asetettuEi vielä julkaistu mainnetissä

Is this page helpful?

Sisällysluettelo

Muokkaa sivua

Hallinnoi

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