Rangeringer
Ti verktøy for blokkjedeutvikling: listen fra 2023

Viktige punkterSolidity forblir det dominerende smartkontraktspråket på grunn av Ethereum-økosystemet…
Vis mer
- Solidity forblir det dominerende smartkontraktspråket på grunn av Ethereum-økosystemet og omfattende utviklerressurser.
- Testnett er avgjørende for utviklere for å teste sikkerhet og skalerbarhet samtidig som de sparer på gassavgifter.
- Blockchain som en tjeneste fra selskaper som Amazon og Microsoft tilbyr rimelig, skybasert infrastruktur.
Utviklingsverktøy kan spare tid når man bygger blokkjedeapplikasjoner. Denne listen fra 2023 omfatter ti språk, programmer og typer infrastruktur. Vedlikeholdsstatusen varierer: noen prosjekter var allerede avsluttet eller under avvikling.
1. Solidity
Solidity er et utbredt språk for smartkontrakter på Ethereum og andre EVM-kompatible nettverk. Det ble utviklet i Ethereum-økosystemet, men er ikke det eneste språket for blokkjedeprogrammering.
Populariteten henger sammen med et stort økosystem av biblioteker og verktøy. Solidity passer til mange Ethereum-kompatible applikasjoner, men oppfant ikke begrepet smartkontrakt.

Kilde – Soliditylang.org
Det finnes omfattende dokumentasjon, eksempler og biblioteker for Solidity. Kildekoden kompileres til kode som Ethereum Virtual Machine (EVM) kan kjøre. Den lenkede dokumentasjonsversjonen 0.8.21 tilhører artikkelens opprinnelige tidspunkt.
2. MetaMask
For å bruke desentraliserte applikasjoner benytter en utvikler ofte en lommebok. MetaMask tilbyr blant annet en nettleserutvidelse og en mobilapp for å administrere kontoer, koble til applikasjoner og signere transaksjoner.
Den kan koble til nettverk og testnett som støttes. Et nettverksbytte flytter ikke automatisk eiendeler mellom blokkjeder; dette krever egne funksjoner eller tjenester. Lommeboken er ikke selv et blokkjedenettverk og garanterer ikke applikasjonens sikkerhet eller likviditet.
3. Truffle
Truffle var et velkjent utviklingsmiljø for Ethereums smartkontrakter, ikke bare ERC-20-tokener. Det tilbød kompilering, utrulling av kontrakter, sammenkobling av biblioteker og automatiserte tester med blant annet Mocha og Chai.
Den 21. september 2023 kunngjorde Consensys avviklingen av Truffle og Ganache og offentlig arkivering av kodearkivene fra 20. desember 2023. Brukerne ble blant annet henvist til Hardhat og Foundry. Truffle er derfor et historisk verktøy i denne listen, ikke et uunnværlig og aktivt vedlikeholdt utgangspunkt for nye prosjekter.
4. Testnett for blokkjeder
Testnett hjelper med å prøve kontrakter og applikasjoner før utrulling på hovednettet. De kan avdekke problemer med funksjon og integrasjon, men beviser ikke automatisk sikkerhet, stabilitet eller skalerbarhet.
Offentlige testnett er forskjellige fra lokale utviklingsnettverk. Ganache var en lokal utviklingsblokkjede i Truffle-økosystemet, ikke et offentlig Ethereum-testnett. Avslutningen av vedlikeholdet er beskrevet ovenfor.
Et lokalt miljø gir kontroll og raske forsøk. Et offentlig testnett hjelper med å prøve samspill i et delt miljø, men belastning og økonomiske forhold kan avvike fra hovednettets. Testtokener brukes til forsøk uten virkelige eiendeler fra hovednettet; bruk av et testnett senker ikke i seg selv produksjonsapplikasjonens gasavgifter.
5. Blokkjede som tjeneste (BaaS)
Med BaaS håndterer en leverandør deler av blokkjedeinfrastrukturen, for eksempel noder eller nettverk. Det kan forenkle etablering og drift, men kostnader og funksjoner avhenger av tjenesten og kundens behov.
Kunden har fortsatt ansvar for blant annet applikasjonslogikk, tilgangsrettigheter, konfigurasjon og tester. En administrert skytjeneste fjerner ikke automatisk alle oppgaver innen vedlikehold og sikkerhet.
Integrasjon med eksisterende systemer avhenger av tilgjengelige grensesnitt og tekniske krav. Amazon (AMZN ) tilbyr AWS Managed Blockchain; AWS Amplify er derimot verktøy for nett- og mobilapplikasjoner som kan integreres med andre tjenester. Microsoft (MSFT ) hadde Azure Blockchain Service, men akkurat denne tjenesten ble avviklet 10. september 2021. Det betyr ikke at alle Azure-tjenester opphørte. Navnene må skilles når artikkelens historiske eksempler vurderes.
6. Geth
Geth er Ethereums eksekveringsklient, implementert i Go. Den håndterer blant annet transaksjoner, EVM-kjøring, tilstand og programmeringsgrensesnitt. Utviklere kan bruke den til å rulle ut kontrakter og lese informasjon fra nettverket.
Etter Ethereums overgang til proof of stake i 2022 trenger en full node også en konsensusklient. Geth bygger ikke automatisk broer mellom ERC-20-nettverk: ERC-20 er en tokenstandard, ikke et eget nettverk. Det utvinnes ikke lenger blokker ved mining på Ethereums hovednett, og kontrakter trenger ikke være skrevet i Go.
7. Mist
Mist var en frittstående nettleser for desentraliserte applikasjoner med lommebokfunksjon og tilkobling til en Ethereum-node. Den var forskjellig fra en nettleserutvidelse og fantes historisk for Linux, macOS og Windows. En full node krevde betydelig lagringsplass.
Den 27. mars 2019 kunngjorde utviklerne at Mist og Ethereum Wallet ikke lenger ville bli støttet. Kodearkivet er arkivert. Mist var derfor ikke en aktuell anbefaling selv i 2023, og tidligere offisiell status beviser ikke sikkerhet. Det omtales her som en del av økosystemets historie.
8. Remix IDE
Remix IDE er et utviklingsmiljø for blant annet Solidity, tilgjengelig i nettleseren og som skrivebordsapplikasjon. Det støtter skriving, kompilering, analyse, testing og utrulling av smartkontrakter. Man kan starte med lokal simulering og deretter bruke et testnett eller hovednett via en kompatibel forbindelse. Verktøyet erstatter ikke en grundig sikkerhetsvurdering.
9. Ethlint
Ethlint, tidligere Solium, kontrollerer stilregler og enkelte sikkerhetsproblemer i Solidity-kode og kan rette noen problemer automatisk. Dokumentasjonen sier at den gamle solium-pakken ikke oppdateres etter desember 2019, og henviser brukerne til ethlint.
En linter finner ikke alle feil og erstatter ikke tester eller revisjon. Et brudd på en stilregel får ikke nødvendigvis applikasjonen til å krasje; formatering og funksjonsfeil er forskjellige ting. Kompatibilitet med Solidity-versjonen som brukes, må også kontrolleres.
10. Solc
Solc er Solidity-kompilatoren. Den lager blant annet bytekode og en ABI-beskrivelse fra kildekoden. Applikasjoner bruker ABI for å kommunisere med kontrakten.
Den opprinnelige kompilatoren er implementert i C++, mens solc-js gir tilgang til den samme kompilatoren fra JavaScript. Det betyr ikke at solc kompilerer kontrakter skrevet i C++ eller JavaScript: inngangsspråket er Solidity. Innstillingene må passe kontrakten og målnettverket.
Valg av verktøy for blokkjedeutvikling
De ti punktene dekker ulike utviklingsfaser. Vurder funksjoner, vedlikeholdsstatus og kompatibilitet før valget. Verktøyene kan lette arbeidet, men korrekte kontrakter krever også undersøkelser, tester og sikkerhetsgjennomgang.











