Wanneer developers aan de slag gaan met het ontwerpen van blockchaintoepassingen op het platform van Ethereum, dan kunnen zij daarbij worden ondersteund door verschillende hulpmiddelen. Voor het schrijven van smart contract-code en de ontwikkeling van decentrale applicaties (dApps) op de Ethereum blockchain is het belangrijk dat je kunt beschikken over de juiste tools. Wanneer de applicaties eenmaal zijn ontworpen, dan moet de code door en door worden geanalyseerd op fouten, grondig worden getest en vervolgens worden uitgevoerd, om er zeker van te zijn dat de blockchaintoepassingen precies zo functioneren als dat de bedoeling was. Voor het testen van smart contracts kun je gebruikmaken van publieke of private testomgevingen. Er zijn online tools beschikbaar voor de volgende onderdelen:
- IDE’s (Integrated Development Environments)
- Code editing
- Ethereum clients en browsers
- Tools voor het analyseren van smart contract-code
- Testen van smart contracts
- Smart Contract Analytics
IDE’s (Integrated Development Environments)
Remix IDE
Dit is een open-source op de browser gebaseerde compiler. Met deze tool kunnen developers Solidity-contracten schrijven vanuit de browser zelf. Dit hulpmiddel heeft een eigen “code analyzer” waardoor ontwikkelaars in staat worden gesteld, om consistent betere smart contractcode te creëren. Daarnaast ondersteunt Remix IDE de testfase, de foutopsporing en de uitvoering van in Solidity geschreven digitale contracten. Deze geavanceerde functies zijn beschikbaar als afzonderlijke plugins die op ieder gewenst moment, apart kunnen worden toegevoegd. Hierbij kan gebruik worden gemaakt van de zogenaamde PluginManager in de console, waarbinnen gebruikers de verschillende plugins die moeten worden geactiveerd kunnen bekijken. Binnen Remix IDE kunnen de plugins uitvoerig worden getest en is de benodigde documentatie voorhanden.
EthFiddle
EthFiddle is ook een Integrated Development Environment, die developers helpt bij het ontwikkelen van blockchaintoepassingen. Met behulp van deze tool kunnen gebruikers online Ethereum smart contracts ontwerpen. Eén van de bijzondere functies van EthFiddle is de mogelijkheid om beveiligingsaudits uit te voeren binnen de testomgeving.
Truffle IDE
Ook Truffle IDE biedt de mogelijkheid om testen uit te voeren met smart contract-code, die kan worden uitgevoerd in de Ethereum Virtual Machine (EVM). Met deze tool kunnen developers decentrale applicaties ontwerpen, initialiseren, compileren, uitvoeren, verplaatsen en testen met Mocha en Chai. Mocha is een JavaScript test framework voor Node.js programma’s dat door browsers wordt ondersteund. Chai is een eenvoudig te gebruiken programmeertaal die speciaal is ontworpen voor integratie met C++.
IntelliJ IDEA
Deze tool geeft relevante suggesties voor het creëren van de smart contract-code, analyses en herstructurering van hulpmiddelen. Hierdoor kan de productiviteit worden verhoogd en kunnen bepaalde terugkomende taken bij de ontwikkeling van smart contracts worden geautomatiseerd. Deze Java IDE tool biedt ook ondersteuning voor andere programmeertalen zoals JavaScript, SQL, JPQL en HTML.
Code editing
Voor het ontwikkelen van Solidity smart contracts op de Ethereum blockchain worden vaak de volgende code editing tools gebruikt:
Ethereum clients en browsers
Deze tools geven developers toegang tot decentrale applicaties op het internet of op andere gedistribueerde grootboeken. Daarnaast kunnen er met deze tools transacties worden verzonden, cryptocurrency’s worden opgeslagen en kan er worden geëxperimenteerd met de verschillende functionaliteiten van smart contracts.
Geth
Go Ethereum is een van de drie originele implementaties van het Ethereum protocol, samen met C++ en Python. Deze implementatie is geschreven in de programmeertaal GO en is beschikbaar als een opzichzelfstaande client: Geth. Deze client kan in principe op ieder besturingssysteem worden geïnstalleerd, zoals Windows, Linux en Mac. Hiermee kunnen developers onder andere Ether “mijnen”, smart contracts schrijven en deze vervolgens uitvoeren op de Ethereum Virtual Machine (EVM).
MetaMask
Dit is zonder enige twijfel de meest gebruikte online client voor toepassingen op de Ethereum blockchain. Met MetaMask krijgen developers direct vanuit de browser toegang tot het Ethereumnetwerk en de decentrale applicaties. MetaMask verbindt gebruikers niet alleen met het hoofdnetwerk van Ethereum maar ook met testnetwerken zoals bijvoorbeeld Ropsten en het TestRPC local network. Deze client is alleen te gebruiken met de Google Chrome browser. Wanneer MetaMask eenmaal is geïnstalleerd kunnen gebruikers een crypto-wallet aanmaken. Schakelen tussen het hoofdnetwerk en een testnetwerk is met deze client zeer eenvoudig.
Parity
Parity is een wallet en een Ethereum browser ineen en kan onder andere worden gebruikt voor het uitvoeren van transacties met Ether.
Mist Browser
Mist is een Ethereum browser voor decentrale applicaties en kan worden gebruikt voor het uitvoeren van testen op een Local Ethereum testnetwerk. Tevens kan mist ook worden gebruikt voor het creëren van crypto-wallets, het opslaan, verzenden en ontvangen van Ether en de uitvoering van smart contracts.
Tools voor het analyseren van smart contract-code
De volgende tools bieden ondersteuning bij het creëren van veilige code bij de ontwikkeling van decentrale applicaties:
Ethlint (voormalig Solium)
Ethlint controleert de code onder andere op stijl- en veiligheidsproblemen en waarschuwt hiervoor via de editor. Vervolgens kunnen de fouten met deze tool worden geanalyseerd en worden verholpen.
Open-Zeppelin
Deze tool kan naast Truffle worden gebruikt bij het ontwerpen van veilige dApps en blockchainprotocollen in Solidity.
Testen van smart contracts
Voordat decentrale applicaties op echte blockchainnetwerken worden uitgevoerd, moeten ze heel goed worden getest. Dat gebeurt op zogenaamde testnetwerken. Deze testblockchains zijn als het ware kopieën van bestaande blockchainplatformen. Op deze testnetwerken kan uitgebreid met de gedistribueerde toepassingen worden geëxperimenteerd tijdens de ontwikkelingsfase. Er zijn verschillende testnetwerken die je kunt gebruiken om de applicaties te testen. Naast publiek toegankelijke testnetten, zijn er ook private testomgevingen.
- Ropsten
- Rinkeby
- Kovan
- Kaleido
- Pantheon Private Network
- Ganache
- Cliquebait
- Local Raiden
- Local Ethereum Network
- Ethereum on Azure
- Ethereum on Google Cloud
Smart contract Analytics
Deze tools ondersteunen developers bij de interactie met hun decentrale applicaties. Ze geven inzicht in de prestaties en problemen van dApps en maken helder hoe de prestaties en gebruiksvriendelijkheid ervan kunnen worden verbeterd.
DAppBoard
Deze open-source tool geeft inzicht in het aantal actieve gebruikers van de ondersteunde decentrale applicaties, maar geeft bijvoorbeeld ook transactie-informatie. Ieder protocol of dApp heeft weer een andere gebruikstoepassing. DAppBoard bouwt aan een dashboard voor blockchainprotocollen en levert daarbij de juiste metrische gegevens voor iedere specifieke categorie, zoals smart contracts, dApps of cryptocurrency-tokens.
Trixta
Ook Trixta is een tool voor het analyseren van smart contract-code en kan worden gebruikt voor het onderzoeken van prestaties en het opsporen van fouten. Hierbij kunnen gebruikers hun smart contracts koppelen aan Trixta, door middel van hun Ethereum Contract ID. Deze tool ondersteunt analyses van smart contract-code op verschillende blockchainnetwerken en is zeer gebruiksvriendelijk.
Meer weten?
Bronnen:
Ethereum.org: Developer Recources
The ultimate guide to Ethereum developer tools, Thomas Moran
Hands-On Smart Contract Development with Solidity and Ethereum From Fundamentals to Deployment, Kevin Solorio, Randall Kanna en David Hoover
Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!
Laat een reactie achter