Epävirallinen opas Qubic Smart Contracts -sopimusten kirjoittamiseen
Tämä epävirallinen opas tarjoaa yleiskatsauksen Qubic Smart Contracts -sopimusten kehittämiseen ja esittelee yksityiskohtaisesti keskeiset toiminnot, muistin jakamisen ja testausmenettelyt, joilla varmistetaan vankka ja tehokas käyttöönotto.
Qsilver - 27. kesäkuuta 2024.
Johdanto
Tervetuloa Qubicin älysopimusten (SC) kirjoittamisen epäviralliseen oppaaseen. Tämän oppaan tarkoituksena on tarjota selkeä ja tiivis yleiskatsaus siitä, miten älysopimuksia kehitetään ja toteutetaan Qubic-ekosysteemissä QPI:n ydindokumentaation pohjalta.
Yleiskatsaus Qubicin älysopimuksiin
Tällä hetkellä ensisijainen dokumentaatio SC-sopimusten kirjoittamiseen on GitHubissa oleva QPI-tiedosto. QPI on lyhenne sanoista Qubic Programming Interface (Qubic-ohjelmointirajapinta), joka on analoginen API:n (Application Programming Interface) kanssa, mutta Qubicille ominainen.
QPI-tiedosto sisältää:
- Kielletyt merkit: Ei kerto- tai jako-operaattoreita, ei preprocessor-direktiivejä.
- Ydinkoodin rakenne:
- 5000 riviä koodia: Määrittelee kaikki muuttujan kokotyypit yksittäisistä biteistä miljoonia elementtejä sisältäviin matriiseihin.
- 1000 riviä koodia: Hallitsee erilaisia jonoja ja niihin liittyviä tietotyyppejä tehokasta tietojenkäsittelyä varten.
- Viimeiset muutama sata riviä: Mahdollistaa pääsyn Qubic-verkon tilaan.
QPI:n keskeiset toiminnot
Seuraavassa on joitakin QPI:n keskeisiä toimintoja:
id arbitrator() const;
id computor(uint16 computorIndex) const; // [0..675]
uint8 day() const; // [1..31]
uint8 dayOfWeek() const; // [0..6]
uint16 epoch() const; // [0..9'999]
bit getEntity() const; // Returns “true” if the entity has been found, “false” otherwise
uint8 hour() const; // [0..23]
sint64 invocationReward() const;
id invocator() const; // Returns the id of the user/contract that triggered this contract; returns NULL_ID if none
template <typename T> id K12(const T& data) const;
uint16 millisecond() const; // [0..999]
uint8 minute() const; // [0..59]
uint8 month() const; // [1..12]
id nextId(const id& currentId) const;
sint64 numberOfPossessedShares() const;
id originator() const; // Returns the id of the user who triggered the entire chain of invocations; returns NULL_ID if none
uint8 second() const; // [0..59]
bit signatureValidity() const;
uint32 tick() const; // [0..999'999'999]
uint8 year() const; // [0..99] (0 = 2000, 1 = 2001, …, 99 = 2099)
Mitä tämä tarkoittaa?
Qubicin älysopimukset ovat Turingin täydellisiä, mikä tarkoittaa, että voit toteuttaa käytännössä minkä tahansa laskennallisen logiikan. Tietyt rajoitukset kuitenkin varmistavat, että SC:t toimivat erittäin lokeroidussa ja turvallisessa ympäristössä.
Muistin jakaminen
SC:t käyttävät staattista muistinjakomallia, jossa kaikki muisti on varattava etukäteen. Tämä rakenne on ratkaisevan tärkeä, jotta tietorakenteita voidaan hallita tehokkaasti 1 Gt:n RAM-muistirajoituksen puitteissa. Vaikka tämä raja on tarkoitus kaksinkertaistaa tulevaisuudessa, se on edelleen kiinteä varaus, mikä edellyttää muistin käytön huolellista suunnittelua.
Kirjaston käyttö
Tällä hetkellä SC:ssä ei voi käyttää ulkoisia kirjastoja, vaan kaikki tarvittava koodi on sisällytettävä suoraan lähdekoodiin. Ajan mittaan, kun yhä useammat SC:t sisältävät erilaisia kirjastoja, ne voivat tulla saataville yleiseen käyttöön muissa SC:issä.
Transaktiot ja RCF-verkkosanomat
Kullakin SC:llä on yksilöllinen osoite, joka on johdettu julkisesta avaimesta, ja sopimuksen tunnus on alimmat 64 bittiä. SC-yksiköitä kutsutaan tähän osoitteeseen lähetettävillä transaktioilla, joissa inputData
määrittelee operaation. Lisäksi SC:n tilaa voidaan kysyä RCF-verkkosanomilla.
Esimerkki: Airdrop SC
Airdrop SC voisi käydä läpi tietokokonaisuuden ja jakaa QU:n tai poletteja kuhunkin osoitteeseen yhdellä tikillä SC-tapahtumaa kohti. Kun nykyinen rajoitus on 1024 transaktiota tikissä, tämä voisi johtaa jopa 500 miljoonaan siirtoon tikissä. Todellinen suoritusteho riippuu SC:n monimutkaisuudesta.
SC:n testaaminen
- Kehitä SC:si: Kirjoita ja debuggaa älykkään sopimuksen koodi.
- Päivitä qubic-cli: Varmista, että SC-tapahtumat ja RCF-toiminnot on integroitu.
- Luo testiverkon ydinpäivitys: Integroi SC:si testiverkkoympäristöön.
- Suorita testit: Käytä qubic-cli:tä testnet-solmun kyselyyn ja SC:n suorituskyvyn validointiin.
- Stressitestaus: Suorita kuormitustestit ja automaattiset testit vakauden varmistamiseksi.
- Lähetä hyväksyttäväksi: Kun virheenkorjaus on valmis, lähetä SC:n hyväksyntää varten ja siirry sitten IPO:hon.
Seuraamalla näitä vaiheita voit varmistaa, että älykkäät sopimuksesi ovat vankkoja, tehokkaita ja valmiita käyttöönotettavaksi Qubic-verkossa. Hyvää koodausta!
Lue Qsilvern "Epävirallinen" sarja
- Qubic Crypto Yksityiskohdat
- Epävirallinen Qubic-väliaikainen valkoinen kirja
- Ei Virallinen Opas Qubic-palvelujen Integraatioon
- Ei Virallinen Opas Qubic Smart Contractien Kirjoittamiseen
Saat viimeisimmät päivitykset liittymällä Valis Discordiin, seuraamalla meitä X:ssä ja lisäämällä blogimme kirjanmerkkeihin.
← Edellinen
Seuraava →
Tällä sivulla
- Epävirallinen opas Qubic Smart Contracts -sopimusten kirjoittamiseen
- Johdanto
- Yleiskatsaus Qubicin älysopimuksiin
- QPI:n keskeiset toiminnot
- Mitä tämä tarkoittaa?
- Muistin jakaminen
- Kirjaston käyttö
- Transaktiot ja RCF-verkkosanomat
- Esimerkki: Airdrop SC
- SC:n testaaminen
- Lue Qsilvern "Epävirallinen" sarja
Aiheeseen liittyvät julkaisut