Wat is solidity?
Solidity is een programmeertaal die wordt toegepast binnen het netwerk van Ethereum. De Ethereum-blockchain is een decentraal, gedistribueerd platform dat gebruikmaakt van de cryptovaluta ether (ETH). Blockchaintechnologie is vooral bekend als de achterliggende digitale infrastructuur van Bitcoin, de eerste en meest bekende cryptocurrency die ooit werd ontwikkeld. Ethereum biedt echter meer mogelijkheden dan Bitcoin, omdat er binnen de Ethereum-blockchain allerlei soorten decentrale toepassingen (dapps) kunnen worden geprogrammeerd. Een voorbeeld daarvan zijn de smart contracts, transactieprotocollen waarmee specifieke juridisch relevante acties kunnen worden uitgevoerd.
Serpent, LLL en Vyper
Solidity is een object-georiënteerde, domeinspecifieke programmeertaal voor de Ethereum-blockchain. Solidity werd voor het eerst voorgesteld in augustus 2014 door Gavin Wood, een Britse computerwetenschapper en grondlegger van Ethcore. Wood was tevens een van de oprichters van Ethereum. Solidity werd later verder ontwikkeld door het Solidity-team van het Ethereum-project. Dat team stond onder leiding van Christian Reitwiessner, een expert op het gebied van computationele complexiteit. Naast Solidity zijn er ook nog een aantal andere programmeertalen, die speciaal zijn ontworpen voor de Ethereum Virtual Machine (EVM). Daaronder zijn de programmeertalen Serpent, LLL en Vyper.
JavaScript en ECMAScript
Blockchaintechnologie wint steeds meer aan populariteit. Met name voor de smart contract-functionaliteit is veel belangstelling. Solidity is een programmeertaal die enigszins lijkt op JavaScript. Daarom is het voor Java-ontwikkelaars relatief eenvoudig om met Solidity aan de slag te gaan. Volgens Gavin Wood is Solidity ontwikkeld rondom het zogenaamde ECMAScript (ook gebaseerd op JavaScript). Dit script wordt voornamelijk gebruikt voor serverside-scripting, een technologie die op het internet wordt toegepast om dynamische HTML-pagina’s te creëren. Dergelijke pagina’s kunnen specifieke bezoekers van een bepaalde website, een andere inhoud of ontwerp tonen. Solidity is ontsproten uit het ECMAScript, om ontwikkelaars bekend te maken met nieuwe blockchaintoepassingen. In tegenstelling tot het ECMAScript heeft Solidity een ‘statisch typesysteem’. Dit is een systeem waarin bepaald wordt, hoe de desbetreffende programmeertaal gegevens classificeert, in verschillende datatypen. Vervolgens kijkt het systeem dan hoe deze datatypen met elkaar kunnen worden samengevoegd. Ook maakt deze programmeertaal gebruik van zogenaamde ‘variadic return types’, een wiskundige functie die een variabel aantal argumenten accepteert.
Ledenfuncties
In vergelijking met de andere gebruikte programmeertalen die kunnen draaien in de Ethereum Virtual Machine, heeft Solidity een aantal hele belangrijke verschillen in zich. Er wordt namelijk ondersteuning geboden voor ingewikkelde lidvariabelen voor smart contracts met willekeurige, hiërarchische correspondentie en Decentrale Autonome Organisaties (DAO). Deze lidvariabelen zijn variabelen die geassocieerd worden met specifieke objecten en zijn toegankelijk voor ledenfuncties. De met solidity geprogrammeerde smart contracts ondersteunen ook zogenaamde ‘overerving’. Dit is een methode in het kader van object-georiënteerd programmeren, waarbij een klasse variabelen (bepaalde eigenschappen), functies en procedures ‘erft’ van een superklasse. De smart contracts worden zo geprogrammeerd, dat ook alle variabelen door alle nodes (knooppunten binnen de Ethereum-blockchain) kunnen worden gecontroleerd.
MIST-browser
Ontwikkelaars bij Ethereum werkten eerder aan de Ethereum browser MIST. Deze browser moest het eenvoudiger maken, om alle toepassingen binnen het Ethereum blockchainnetwerk te lokaliseren en in te schakelen. Daarnaast moest MIST de gebruiksvriendelijkheid van de Ethereum-blockchain vergroten, waardoor het potentieel van blockchaintechnologie onder gebruikers duidelijker werd. Het project met de MIST-browser werd echter in 2019 beëindigd, omdat de technische vereisten van een volledig gedecentraliseerde dapp-browser verder reikten, dan wat de huidige blockchaintechnologie toelaat.
Leren programmeren in Ethereum?
Dan is Introducing Ethereum and Solidity een goede basis!
Wat leer je in dit boek?
- Hoe Ethereum en cryptocoins werken.
- Wat het verschil is tussen dapps (decentrale applicaties) en apps.
- Het schrijven van smart contracts in de programmeertaal Solidity.
- Ethereum smart contracts en HTML/CSS/JavaScript web applicaties aan elkaar koppelen.
- Het creëren en uitvoeren van je eigen cryptovaluta, dapp of blokketen.
Dit boek is niet alleen een aanrader voor beginners op het gebied van blockchain-applicaties, maar zeker ook voor ervaren JavaSript-programmeurs!
Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!