Å bygge en smart kontrakt: Det er enklere enn du tror

Hvem som helst kan bygge en smart kontrakt

Smarte kontrakter vil gjøre det lettere for deg å gjøre forretninger i den nye desentraliserte økonomien. De fleste smarte kontrakter er laget på DApp (Decentralized Application) -plattformer som Ethereum, Lisk eller Cardano, og store teknologiselskaper som IBM starter egne bedrifter som bygger dem. Dette er fornuftig, ettersom det er mange selskaper som heller vil stole på at en teknologigigant som IBM bygger et produkt for dem enn å takle en ny teknologi selv.

Smart kontraktutvikling kan bli en markedsførbar ferdighet for utviklere som vet hvordan de skal bygge dem. En overraskende del av smarte kontrakter er at de ikke er vanskelige å bygge. DApp-plattformene og de omkringliggende verktøyene gjør det mulig å lage dem og enkelt bygge din egen blockchain-teknologi.

Javascript-utviklere bør ikke skremmes av blockchain. Med litt mer forståelse blir blockchain som de fleste andre rammer du normalt vil implementere.

Planlegger en smart kontrakt

Når du først oppretter en smart kontrakt, bør du bestemme hva du vil at den skal tilrettelegge.

For dette eksemplet, la oss fokusere på billetter til arrangementer. Billettsalg har store problemer med scalpers som kjøper massevis av billetter og med folk som bruker falske billetter. Blockchain-teknologi utmerker seg på mange ting; to av dem legger til rette for transaksjoner og holder styr på informasjonen.

På grunn av dette kan en enkel linje med kode i kontrakten dekke prisene på videresalg av billetter. Dette forhindrer scalpers fra å kjøpe en haug med billetter, fordi det nå ville være ulønnsomt å selge dem. Ved hjelp av smarte kontrakter kan du også generere unike tokeniserte billetter som er eierspesifikke og ikke kan forfalskes. Hvis du er noen som liker å delta på konserter, festivaler og sportsbegivenheter, kan du se appellen.

DApp-plattformalternativer

Den neste tingen å velge er hvilken DApp-plattform du vil bygge kontrakten på.

Ethereum er den største og mest etablerte plattformen. Den har også den mest aktive brukerbasen, og i enhver form for utvikling er et aktivt fellesskap for å svare på spørsmålene dine nøkkelen til å fullføre produktet. En ulempe er imidlertid at den bruker sitt eget språk, Soliditet, til å skrive kontrakter.

Et annet alternativ, Lisk, er en DApp-plattform basert i Javascript, slik at du ikke får noen ny syntaks kastet mot deg. Den har også sin egen DApp-butikk (tenk Google Play eller iTunes Store) hvor du kan publisere appen din når du er ferdig.

Du kan også prøve Cardano som ble bygget av en grunnlegger av Ethereum og har et stort, imponerende team. Produktet deres er fortsatt nytt, men hvis de oppfyller sitt løfte om å skille kontraktsinformasjon fra transaksjonsdata, kan det være det rette valget fremover.

For nå, la oss gå over Ethereum eller Lisk som den valgte plattformen.

Som Javascript-utvikler kan Lisk virke som den logiske avgjørelsen fordi du allerede har erfaring med språket.

Ikke tell ut Ethereum. Utviklingssamfunnet er så robust at du kan kompensere for enhver misforståelse av soliditet med overflødig informasjon tilgjengelig. Ethereum inkluderer også Truffle-rammeverket, opprettet av Consensys, som enkelt lar deg integrere og teste din smarte kontraktsapplikasjon.

ethereum smarte kontraktsrammer

Bygg en smart kontrakt

Soliditet høres mer skremmende ut enn den faktisk er. Det første du kan legge merke til om språket er den slående likheten med en JavaScript-klasse. Det er imidlertid noen subtile forskjeller, som kravet til semikolon og bruken av hashing-funksjoner. De hashing-funksjoner brukes til å lage unike nøkler og kartlegge dem til andre variabler. I vårt eksempel vil vi bruke dem til å lage unike billetter og kartlegge dem til kontoene som kjøper dem.

Når du bygger din første Ethereum-kontrakt, anbefaler vi at du bruker utviklingsmiljøet på remix.solidity.org. Det gir deg et interaktivt miljø for å distribuere kontrakten din og samhandle med den fra forskjellige Ethereum-kontoer. En rullegardinmeny lar deg bytte konto og bruke kontraktsfunksjonssamtaler ved å trykke på de tilsvarende knappene.

Hva du skal passe på

Det unike med Solidity er bruken av adressering. Alle Ethereum-kontoer har unike adresser, og disse adressene representerer partene som er enige om en kontrakt.

I vårt eksempel på billettkontrakt, vil den som oppretter arrangementet ha sin kontoadresse knyttet til den. Når noen kjøper en ny billett, overføres midler direkte til arrangementseieren og tar ut mellommannen. Kjøperen ringer, og midlene tas ut av kontoen, identifiseres av adressen og overføres til eieren.

Soliditet har også en unik måte å knytte midler til en smart kontraktsanrop. Hver funksjonssamtale kommer med en melding. Denne meldingen kan inneholde unik informasjon fra avsenderen, inkludert kontoadressen, samt en eterverdi de vil sende til kontraktseieren.

Det er også verdt å merke seg at i Solidity er ikke alle kontraktsanrop gratis. For å endre informasjon i kontrakten, f.eks. kjøpe eller bruke en billett, nettverket av maskiner som bekrefter utførelsen av kontrakten koster “gass”. Bensin er i utgangspunktet en avgift for å dra nytte av datakraften i nettverket.

Andre samtaler som bare spør etter kontrakten for informasjon, f.eks. å slå opp prisen på en billett eller få antall gjenværende billetter, er gratis. Dette er fordi ingen informasjon om kontrakten oppdateres; det er ingen risiko i disse aktivitetene.

Kobler til JavaScript

Den mest utfordrende delen av å jobbe i Solidity er å integrere kontrakten din med Javascript. Dette gjøres alt ved hjelp av Truffel framework.

Det første trinnet i å integrere kontrakten er å distribuere den og migrere den til testnettverket. Truffle tilbyr sin egen RPC, et eget Ethereum testnettverk, kalt Ganache. Denne prosessen gir deg en JSON-versjon av kontrakten du kan ringe ved hjelp av adressene til testnettverket ditt gjennom Javascript-applikasjonen.

Hvis du leter etter mer informasjon om denne prosessen, gjør Truffle en god jobb med å skissere den i dokumentene og eksemplene på deres nettsted.

Trøffelkasser

En annen vanskelig ting å overvinne når du oppretter en smart kontrakt, er hvordan du skal konseptualisere den. Tenker du på blockchain som en webutvikler, kan du se på den som erstatning for databasen. I stedet for en sentral kilde for all informasjonen din, er det en kjede av kontrakter og transaksjoner å følge som fører til informasjonen.

Fordi en blockchain er som en database, er det naturlige å koble kontrakten til serveren din. Å lage et API-lag for kontrakten gjør det enkelt å få tilgang til informasjon fra klientsiden av applikasjonen som å gjøre en AJAX-forespørsel. Det er en god ting eksempelboks på trøffelnettstedet for å få dette oppsettet.

Mens blockchain ligner på en database, er den ikke helt identisk. Den har en helt unik protokoll som involverer transaksjoner, hashing og blokkering. Dette kan være den vanskeligste delen av Ethereum-utviklingen. I billetteksemplet ditt må du strukturere en kontraktsanrop for å kjøpe en billett annerledes enn anropet om å bruke en billett. Ethereum Virtual Machine er kresen om disse samtalene.

Dette er et annet område der det store utviklingssamfunnet Ethereum er nyttig. Det er en god sjanse for at spørsmål du har allerede har blitt besvart på Ethereum Stack Exchange, og hvis ikke, er andre utviklere mer enn villige til å hjelpe deg gjennom kontrakten..

Konklusjon

Denne artikkelen var ikke ment for å lære deg hvordan du skal begynne å skrive Solidity. I stedet var det for å gi deg en gjennomgang av hva en smart kontrakt er, og hvordan du kan implementere den i en Javascript-applikasjon. Å bygge videre på blockchain er mulig for alle som kjenner nettutvikling.

Teknologien bak blockchain kan være vanskelig å forstå, men som ethvert annet rammeverk eller utviklerverktøy trenger du ikke nødvendigvis å vite hvordan den ble bygget for å kunne bruke den. Ikke la blockchains mystiske aura hindre deg i å bygge noe flott.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map