Web3:n ja DApp-sovellusten kehityksen perusteet · Oppitunti

Älysopimusten kääntäminen

Opitte käyttämään Solidity-kääntäjää Remixissä virheiden tarkistamiseen sekä sopimusten tavukoodin ja ABIn tuottamiseen.

Oppitunti 2/312 vaihetta

Älysopimusten kääntäminen on ilmainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 3 oppituntia.

Miksi älysopimukset käännetään?

Soliditylla kirjoitetut älysopimukset ovat ihmisille luettavaa koodia. Lohkoketjut eivät kuitenkaan ymmärrä Soliditya suoraan! Ne tarvitsevat koneystävällisen esitysmuodon.

Tässä kohtaa kääntäminen tulee mukaan. Se muuntaa Solidity-koodin "tavukoodiksi", jonka Ethereum Virtual Machine (EVM) voi suorittaa. Lisäksi se tuottaa vuorovaikutusta varten Application Binary Interfacen (ABI).

Mitä tavukoodi on?

Bytecode on matalan tason, koneellisesti luettava koodi, jollaiseksi älysopimukset käännetään. Sitä voi ajatella Ethereum Virtual Machinen (EVM) suoritettavana ohjelmana.

Kun otat sopimuksen käyttöön, viet sen tavukoodin lohkoketjuun. EVM käsittelee tätä tavukoodia, kun joku käyttää sopimustasi.

ABI:n esittely

Application Binary Interface (ABI) on JSON-taulukko, joka kuvaa älysopimuksesi funktiot, niiden syöteparametrit ja tulostetyypit.

Se toimii suunnitelmana ja kertoo muille ohjelmille, kuten DApp-käyttöliittymälle, miten ne voivat "kommunikoida" käyttöön otetun sopimuksesi kanssa. Ilman ABI:a käyttöliittymä ei tietäisi, miten tiettyä funktiota kutsutaan tai miten sen tietoja tulkitaan.

Remixin Compile-välilehti

Remix IDE:ssä on erillinen "Solidity Compiler" -välilehti, jonka tunnuksena on yleensä kääntäjän kuvake vasemman reunan sivupalkissa. Tässä välilehdessä hallitaan kaikkia käännösasetuksia ja -toimintoja.

Kun avaat välilehden, Remix yrittää automaattisesti tunnistaa aktiivisen Solidity-tiedostosi ja kääntää sen, joten saat nopeasti palautetta.

Kääntäjän version määrittäminen

Ensimmäinen tärkeä vaihe on oikean Solidity-kääntäjän version valitseminen. Sopimuksessa määritetään tämä yleensä rivillä pragma solidity ^0.8.0;.

Remix ehdottaa usein sopivaa versiota. On erittäin tärkeää, että Remixissä valitsemasi kääntäjän versio vastaa sopimustiedoston pragma-direktiiviä tai on sen kanssa yhteensopiva. Ristiriidat voivat aiheuttaa virheitä!

EVM-versio ja optimointi

Voit valita myös EVM-version. Se liittyy eri Ethereum-haarukoissa käytettävissä oleviin ominaisuuksiin ja opkoodeihin. Useimmille uusille sopimuksille uusin vakaa versio sopii hyvin.

Enable optimization on toinen asetus. Kun se otetaan käyttöön, kääntäjä pyrkii pienentämään sopimuksen tavukoodin kokoa ja kaasukustannuksia. Tämä on yleensä hyödyllistä, mutta se voi joskus vaikeuttaa virheenkorjausta.

Yksinkertaisen sopimuksen kääntäminen

Avaa Remixin "Solidity Compiler" -välilehti. Varmista, että tiedostosi on valittuna ja kääntäjän versio vastaa pragma-määritystäsi. Napsauta sitten painiketta "Compile [contract_name].sol".

Jos käännös onnistuu, kääntäjän kuvakkeen viereen ilmestyy vihreä valintamerkki! Muussa tapauksessa Remix näyttää konsolissa virheitä tai varoituksia.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStorage {
    uint public myNumber;

    function setNumber(uint _newNumber) public {
        myNumber = _newNumber;
    }

    function getNumber() public view returns (uint) {
        return myNumber;
    }
}

Tuloksen tarkasteleminen: tavukoodi

Kun käännös on onnistunut, vieritä kääntäjän välilehteä alaspäin. Löydät sieltä "Bytecode"-osion. Tämä pitkä heksadesimaalimerkkijono on sopimuksesi käännetty koodi.

Tämä tavukoodi viedään lohkoketjuun. Se on tiivis ja tehokas EVM:n käsiteltäväksi, mutta ihmisen on vaikea lukea sitä.

Tuloksen tarkasteleminen: ABI

Tavukoodin alapuolella näet myös "ABI"-osion. Napsauta sitä kopioidaksesi ABI:n. Se on JSON-taulukko, joka sisältää sopimuksesi kaikki julkiset ja ulkoiset funktiot, tapahtumat ja tilamuuttujat.

Tämä JSON on välttämätön ulkoisille sovelluksille, kuten verkossa toimivalle DAppille, jotta ne tietävät täsmälleen, miten sopimuksesi kanssa toimitaan lohkoketjussa.

Yleisiä käännösvirheitä

Älkää huolehtiko, vaikka sopimuksenne ei kääntyisi ensimmäisellä yrityksellä! Remix näyttää hyödyllisiä virheilmoituksia konsolissa ja suoraan koodieditorissa.

  • Syntaksivirheet: Puuttuvia puolipisteitä tai yhteensopimattomia sulkeita.
  • Versioristiriita: pragma ei vastaa valittua kääntäjää.
  • Määrittelemättömät muuttujat/funktiot: Nimessä on kirjoitusvirhe tai sitä ei ole määritelty.

Lukekaa virheilmoitukset huolellisesti. Ne osoittavat usein suoraan rivinumeron ja selittävät ongelman.

Pikatarkistus

Olette oppineet kääntämisestä, tavukoodista ja ABI:sta. Mikä seuraavista on älysopimuksen ABI:n ensisijainen tarkoitus?

Kertaus ja seuraavat vaiheet

Hienoa työtä! Olette oppineet, että Solidity-koodin kääntäminen muuttaa sen tavukoodiksi (EVM:ää varten) ja luo ABI:n (ulkoista käyttöä varten).

Tutustuitte myös Remix IDE:n kääntäjään, opitte ymmärtämään kääntäjän asetuksia ja näitte, mistä luotu tavukoodi ja ABI löytyvät.

Seuraavaksi sovellatte oppimaanne ottamalla käännetyt älysopimuksenne käyttöön simuloidussa lohkoketjuympäristössä!

Aloita maksutta

Opi Web3:n ja DApp-sovellusten kehityksen perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
29
Oppitunnit
105

Usein kysytyt kysymykset

Onko oppitunti ”Älysopimusten kääntäminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Älysopimusten kääntäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 3 oppituntia.

Mitä opin oppitunnilla ”Älysopimusten kääntäminen”?

Opitte käyttämään Solidity-kääntäjää Remixissä virheiden tarkistamiseen sekä sopimusten tavukoodin ja ABIn tuottamiseen. Harjoittelet Web3:n ja DApp-sovellusten kehityksen perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Web3:n ja DApp-sovellusten kehityksen perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.

Kuinka kauan ”Älysopimusten kääntäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunnilla?

Kyllä. Jokainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Remix IDE:n yleiskatsaus
  2. Älysopimusten kääntäminen
  3. Käyttöönotto ja vuorovaikutus
← Takaisin: Web3:n ja DApp-sovellusten kehityksen perusteet