Grundlæggende udvikling af Web3- og DApp-programmer · Lektion

Kompilering af smart contracts

Lær at bruge Solidity-compileren i Remix til at kontrollere for fejl og generere bytecode og ABI til Deres contracts.

Lektion 2 af 312 trin

Kompilering af smart contracts er en gratis Grundlæggende udvikling af Web3- og DApp-programmer-lektion på CoddyKit. Dette er lektion 2 af 3. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende udvikling af Web3- og DApp-programmer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 3 lektioner i alt.

Hvorfor kompilere smartkontrakter?

Smartkontrakter, der er skrevet i Solidity, består af menneskeligt læsbar kode. Men blockchain-netværk forstår ikke Solidity direkte! De har brug for et maskinvenligt format.

Det er her, kompilering kommer ind i billedet. Den oversætter din Solidity-kode til »bytekode«, som Ethereum Virtual Machine (EVM) kan udføre. Den genererer også en Application Binary Interface (ABI), som bruges til interaktion.

Hvad er bytekode?

Bytekode er den lavniveaukode, der kan læses af maskinen, og som smarte kontrakter kompileres til. Tænk på det som det eksekverbare program til Ethereum Virtual Machine (EVM).

Når du implementerer en kontrakt, implementerer du faktisk dens bytekode på blockchainen. Det er denne bytekode, EVM behandler, når nogen interagerer med din kontrakt.

Introduktion til ABI

Application Binary Interface (ABI) er et JSON-array, der beskriver din smarte kontrakts funktioner, deres inputparametre og deres outputtyper.

Det fungerer som en skabelon, der fortæller andre programmer, f.eks. en DApp-frontend, hvordan de skal "tale" med din implementerede kontrakt. Uden ABI'en ville en frontend ikke vide, hvordan den skulle kalde en bestemt funktion eller forstå dens data.

Remix' kompileringsfane

Remix IDE har en dedikeret fane til "Solidity Compiler", som ofte vises som et kompileringsikon i venstre sidepanel. Her administrerer du alle dine kompileringsindstillinger og -handlinger.

Når du åbner denne fane, forsøger Remix automatisk at finde og kompilere din aktive Solidity-fil, så du hurtigt får feedback.

Indstilling af kompileringsversionen

Det første vigtige trin er at vælge den korrekte Solidity-kompileringsversion. Din kontrakt angiver normalt dette med en pragma solidity ^0.8.0;-linje.

Remix foreslår ofte en version. Det er vigtigt, at den kompileringsversion, du vælger i Remix, stemmer overens med eller er kompatibel med pragma-direktivet i din kontraktfil. Uoverensstemmelser kan forårsage fejl!

EVM-version og optimering

Du kan også vælge EVM-versionen. Det hænger sammen med de specifikke funktioner og opcodes, der er tilgængelige i forskellige Ethereum-hard forks. For de fleste nye kontrakter er den seneste stabile version fin.

Enable optimization er en anden indstilling. Når den er aktiveret, forsøger kompileren at reducere bytekodens størrelse og din kontrakts gasomkostninger. Det er generelt en god idé, men det kan nogle gange gøre fejlfinding sværere.

Kompilering af en simpel kontrakt

Åbn fanen "Solidity Compiler" i Remix. Sørg for, at din fil er valgt, og at kompileringsversionen stemmer overens med din pragma. Klik derefter på knappen "Compile [contract_name].sol".

Hvis det lykkes, vises et grønt flueben ved siden af kompileringsikonet! Hvis ikke, viser Remix fejl eller advarsler i konsollen.

// 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;
    }
}

Undersøg outputtet: Bytekode

Rul ned i kompileringsfanen efter en vellykket kompilering. Her finder du sektionen "Bytecode". Denne lange streng af hexadecimale tegn er din kontrakts kompilerede kode.

Denne bytekode bliver implementeret på blockchainen. Den er kompakt og effektiv for EVM at behandle, men ikke let for mennesker at læse.

Undersøg outputtet: ABI

Under bytekoden kan du også se sektionen "ABI". Klik for at kopiere den. Det er et JSON-array, der beskriver alle offentlige og eksterne funktioner, hændelser og tilstandsvariabler i din kontrakt.

Dette JSON er afgørende for, at eksterne applikationer, f.eks. en web-DApp, kan vide præcis, hvordan de skal interagere med din kontrakt på blockchainen.

Almindelige kompileringsfejl

Du skal ikke være bekymret, hvis din kontrakt ikke kompilerer i første forsøg! Remix viser nyttige fejlmeddelelser i konsollen og direkte i din kodeeditor.

  • Syntaksfejl: Manglende semikoloner eller parenteser, der ikke passer sammen.
  • Versionsuoverensstemmelse: pragma stemmer ikke overens med den valgte kompiler.
  • Udefinerede variabler/funktioner: En stavefejl i et navn, eller navnet er ikke erklæret.

Læs fejlmeddelelserne omhyggeligt. De peger ofte direkte på linjenummeret og forklarer problemet.

Hurtigt tjek

Du har lært om kompilering, bytekode og ABI. Hvad er det primære formål med en smarts kontrakts ABI?

Opsummering og næste trin

Godt klaret! Du har lært, at kompilering af Solidity-kode omdanner den til bytekode (til EVM) og genererer en ABI (til ekstern interaktion).

Du har også udforsket Remix IDE's kompiler, forstået kompileringsindstillingerne og set, hvor du finder den genererede bytekode og ABI.

Nu skal du omsætte denne viden til praksis ved at implementere dine kompilerede smarte kontrakter i et simuleret blockchainmiljø!

Gratis at komme i gang

Lær Grundlæggende udvikling af Web3- og DApp-programmer med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
29
Lektioner
105

Ofte stillede spørgsmål

Er lektionen “Kompilering af smart contracts” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende udvikling af Web3- og DApp-programmer, inklusive “Kompilering af smart contracts”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Kompilering af smart contracts”?

Lær at bruge Solidity-compileren i Remix til at kontrollere for fejl og generere bytecode og ABI til Deres contracts. Du øver dig i Grundlæggende udvikling af Web3- og DApp-programmer med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende udvikling af Web3- og DApp-programmer?

Der kræves ingen tidligere erfaring. Grundlæggende udvikling af Web3- og DApp-programmer på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 3.

Hvor lang tid tager lektionen “Kompilering af smart contracts”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende udvikling af Web3- og DApp-programmer-lektion?

Ja. Alle Grundlæggende udvikling af Web3- og DApp-programmer-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oversigt over Remix IDE
  2. Kompilering af smart contracts
  3. Deployment og interaktion
← Tilbage til Grundlæggende udvikling af Web3- og DApp-programmer