10-minutters Ethereum Orientering

Hensikten med denne veiledningen er å få deg fordypet i Web3 så raskt som mulig, slik at du har den konteksten og grunnleggende forståelsen som trengs for å begynne å lære og begynne å utvikle.

Hvorfor Blockchain?

Hvis du ikke har brukt dette området, er det kanskje ikke klart hva et “desentralisert Internett” tilbyr en utvikler. Tenk på en offentlig blockchain som Ethereum som definerer en klar “tilstand” – og sannhetskilde – for alle som deltar i den, tilgjengelig for alle som er tilkoblet Internett, et system som bruker styrken til open source-protokollen og redundansen av peer-to-peer-nettverk for å være pålitelig og sikker. I stedet for å kreve at alle apputviklere oppretter og opprettholder hele tilstanden til appen sin på private servere, kan mye lagres på og hentes fra den offentlige blockchain. En vanlig, klarert, sikker backend.

Årsaken til at dette er mulig er på grunn av de unike egenskapene til en blockchain-database. Det er skrivebeskyttet: der en typisk database kan legge til og fjerne poster, eksisterer blockchain-data for alltid og kan ikke fjernes. Nettverket av noder vedlikeholder denne databasen som en “distribuert hovedbok” og har strenge protokoller rundt hvem som har tillatelse til å skrive på et gitt tidspunkt. En av de interessante aspektene ved teknologien er hvordan skrivetillatelser fordeles på noder som kanskje ikke krever spesiell tillatelse for å bli med. Hvis du spunnet opp din egen offentlige Ethereum-node, ville du ha skrivetilgang til hele nettverket: forutsatt at du fullførte “beviset på arbeidet” som kreves for å gi deg privilegiet å skrive en node før noen annen node gjorde. 

Et godt og typisk eksempel på blockchain-teknologi i aksjon er enkel å sende og motta kryptovaluta. Den offentlige hovedboken tillater en utvikler å implementere betalingsportaler uten banker, kontoer eller andre mellommenn. 

En utvikler kan lage sitt eget Ethereum-token uten å måtte opprette den infrastrukturen som er nødvendig for brukerne å handle med dem. En online spillplattform kan symbolisere varer i spillet, og brukere kan kjøpe disse tokens og handle dem utenfor plattformen og eie dem separat fra selve spillplattformen. Utover handelsartikler for bruk i spillet, har digitale samleobjekter enormt fremtidig potensial. Etter hvert som e-sport vokser i popularitet, kan det hende du har et digitalt symbolisert ekvivalent av en “hjemmelaget ball”.

Når hver bruker har sitt eget offentlige / private nøkkelpar, blir brukerautentisering mye enklere, ettersom apper bare trenger å verifisere at en bruker kan signere transaksjoner med sin private nøkkel..

Smarte kontrakter kan brukes til å skape programmerbare penger. Vurder en grunnleggende bruk av en programmerbar smart kontrakt for å løse situasjonen der to eiere av en leilighet ønsker å dele leiebetalinger på leietaker 50/50. Normalt vil enten leietakeren måtte betale hver eier separat, eller betale en eier eller en agent, og eieren eller agenten vil utbetale pengene. Selv om denne situasjonen ikke er spesielt problematisk, bør du vurdere den implisitte tilliten som kreves av en person for å gi den andre sin andel. Kontraster dette med en enkel smart kontrakt som programmatisk deler opp innkommende midler og sender dem til adressen til hver eier. Leietakeren trenger bare å sende leien sin til den adressen, og hver eier vil motta sin del umiddelbart. På grunn av sikkerheten og uforanderligheten til en blockchain som Ethereum, kan hver eier være trygg på at den smarte kontrakten vil fungere som ønsket, og kan revidere koden.. 

Når vi har den digitale tilliten ryggraden fra blockchain, kan vi også bruke fordelene med programmering på viktige sosiale problemer. Vi kan tilby banktjenester i noen få kodelinjer. Vi kan bekrefte identiteten med noen få klikk. Alt med en protokoll som kan kjøres på nesten hvilken som helst datamaskin hvor som helst i verden.

Ettersom rommet er nytt og utvikler seg, er det store muligheter for utviklere å bygge nye typer verktøy, apper og systemer, og å komme med nye brukstilfeller for denne teknologien.

En løsning på jakt etter et problem?

Et vanlig refreng i kritikk av blockchain-teknologi er at det er en løsning på jakt etter et problem. Det kan hevdes at digital valuta var den første blockchain-killer-appen, og Distribuert Finans, eller DeFi, utvikler seg til å bli den neste, den fulle omfanget av hvordan denne teknologien kan brukes er for tiden ukjent og er en av de viktigste grunnene til at devs i rommet synes det er spennende å være en del av. I over et tiår hadde laserteknologi ingen tilsynelatende bruk, før forskere, eksperimenter og gründere var i stand til å bruke den på måter som var helt uventede. Mens det samme argumentet kan brukes for hvilken som helst ny teknologi, er den enorme utbredelsen av digital valuta og de over 350 milliarder dollar som for øyeblikket finnes på distribuerte, ikke-administrerte, desentraliserte blokkjeder ganske bemerkelsesverdig.. 

Grunnleggende distribuert appstruktur 

En distribuert app er generelt sett en som kobles til en blockchain et sted i bunken, og sannsynligvis på en eller annen måte som er grunnleggende for driften. Distribuerte apper er en blanding av de vanlige front- og backend-systemene du finner i en webapp, men vil bruke et bibliotek som web3.js for å koble til Ethereum-nettverket. Noen distribuerte apper er fullstendig distribuert: lever fullstendig på distribuerte nettverk.

På brukerens slutt, MetaMask er et populært plugin som administrerer brukernes Ethereum-lommebok. MetaMask gir et grensesnitt for en bruker til å signere transaksjoner og bevise sin “identitet”.

En gitt distribuert app kan koble til Ethereum blockchain og også til brukerne MetaMask lommebok (eller en annen lommebok) for autentisering. 

Grensesnitt med Ethereum 

Vanligvis trenger du å operere en node for å samhandle med Ethereum. En node er en grunnleggende del av en blockchain-struktur, den node som kobles til andre jevnaldrende for å danne den desentraliserte strukturen. Protokollen er konge på det offentlige nettet: det er ingen sentral server, ingen autoritet og ingen grenser for hvem som kan betjene en node. Det er bare en felles protokoll for alle noder som deltar.

Mange apputviklere foretrekker å ikke kjøre sin egen Ethereum-node, så tjenester som Infura eksisterer for å gi en gateway og API for Ethereum som utviklere kan bruke i stedet.

Smarte kontrakter

Mens Bitcoin-nettverket er en av de mest kjente blokkjedene, har Ethereum et funksjonssett som er mer spennende for utviklere, da det inkluderer en Turing-komplett virtuell maskin som kan kjøre små programmer kalt smarte kontrakter. Som et resultat har Ethereum det sterkeste og mest aktive utviklermiljøet blant noen av blockchain-økosystemene. 

Smarte kontrakter kjøres på noder og bruker transaksjoner for input og output. Smarte kontrakter ligger på adresser i blockchain, på samme måte som en brukers kontoadresse gjør. For å samhandle med en smart kontrakt, trenger du bare sende en transaksjon til den sammen med inndata. 

Gass

Å kjøre en smart kontrakt krever gass, en liten kostnad som kompenserer nodeoperatører for tjenesten for å utføre den smarte kontrakten, samtidig som forekomsten av spam reduseres (ved å gjøre spamming dyrt) og forhindrer dårlig kodede smarte kontrakter i å løpe uendelig og falle ned i nettverket.

Mainnet, testnett, andre nettverk

En mainnet i blockchain-språk snakker om det primære aktive nettverket for en gitt protokoll. I tilfelle Ethereum er mainnet der virkelig verdi utveksles, og regnes som kilden til sannheten. Men enhver gruppe noder kan danne sitt eget nettverk. Testnett betjener utviklermiljøet ved å tilby mye mindre nettverk der Eth og gass er gratis, slik at utviklere kan teste sine prosjekter og kode uten risiko. Ethereum-testnettene heter Ropsten, Kovan, Rinkeby og Görli.

Ethereum-nettverk brukes også til bedriftsapplikasjoner: skreddersydde nettverk som opererer på en tillatt basis (kontra tillatelsesfri mainnet og testnett) for å lette transaksjoner og andre operasjoner blant en liten gruppe organisasjoner (for eksempel). Disse nettverkene har langt færre noder og tjener vanligvis et bestemt formål. Store banker kan for eksempel bruke en blockchain for interbankoppgjør.

Utvikling i Ethereum

Utviklingen i Ethereum skjer vanligvis først på lokale, hjemmespunne blokkjeder. Utviklere kan bruke noe som geth, kommandolinjeprogramvare som lar deg opprette Ethereum-nettverk. Men dette er som å programmere på et lavt nivå språk: gjør ting enklere, Truffle-suiten tjener mange utviklerbehov. Ganache, en del av suiten, gjør det mye enklere for devs å fyre opp et lokalt blockchain-nettverk for å teste appene sine, og tilbyr en “one click blockchain” for utviklingsformål, sammen med kommandolinjeverktøy. Drizzle hjelper med front-end utvikling, og Truffle selv er et rammeverk for å gjøre smart kontraktutvikling og distribusjon enklere.

Samhandling med selve blokkjeden krever bruk av et API (for eksempel web3.js) og tilgang til en node; i stedet for å betjene sine egne noder, vil mange utviklere bruke en tjeneste som Infura som et Ethereum API.

Smarte kontraktsspråk

For tiden er det mest populære språket å kode smarte kontrakter på Tørrhet. Dette javascript-lignende språket er ganske enkelt å plukke opp for nye utviklere, spesielt de som har nettkodingserfaring. Remix er en online IDE som lar utviklere eksperimentere med å lage smarte kontrakter. Det er mange viktige detaljer å lære for smarte kontraktprogrammerere, ettersom smarte kontrakter på nettet fungerer på reell verdi, og er uforanderlige når de er distribuert (selv om det er programmeringsmetoder som hjelper med dette).

Full Stack

Som med all moderne webutvikling er det mange alternativer for komponenter å bruke på forskjellige nivåer i bunken. Du kan få mer informasjon i den alltid oppdaterte blockchain-stacken.

En enkel prosjektstabel

Her er et typisk sett med utviklingsverktøy du kan bruke i et enkelt prosjekt:

NPM 

Node-pakkebehandling, en del av node.js

Truffle Framework

En rekke verktøy som gjør utviklingen enklere

Ganache

Fra Truffle-rammeverket, brukt til å lansere en privat blockchain på din egen maskin

MetaMask

Et blockchain brukergrensesnitt og inngangsport til Ethereum; det er en nettleserplugg og mobilapp som appen din kan koble til, slik at brukerne kan signere transaksjoner og utføre andre oppgaver.

Tørrhet

Et populært programmeringsspråk for smarte kontrakter

HTML / CSS / JS

For frontend

Web3.js

Et Ethereum API-bibliotek som lar deg koble til og samhandle med Ethereum-nettverket

Infura

En Ethereum API-tjeneste som gir utviklere tilgang til Ethereum-nettverket uten å måtte kjøre sin egen node

Hvis du er klar til å komme i gang, vil vår 3-trinns guide gå mer detaljert i gang for å komme i gang raskt på blockchain med en tur gjennom.

    Onboarding for utviklere: Trinn 1Trinn 1 for utviklerens ombordstigning

    Onboarding for utviklere: Trinn 1

    Onboarding for utviklere: Trinn 2Trinn 2 for utviklerens ombordstigning

    Onboarding for utviklere: Trinn 2

    Onboarding for utviklere: Trinn 3Trinn 3 ombordutvikler

    Onboarding for utviklere: Trinn 3

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me