Glow dApps

Glow - Complete uitleg over deze programmeertaal

Glow is de programmeertaal van Cardano (ADA). Je kunt er op relatief eenvoudige wijze dApps mee bouwen, die veilig en gebruiksvriendelijk zijn. Daarbij zijn ze interoperabel op diverse blockchains, waardoor je met één toolset en één proces een hoop problemen kunt besparen. In dit artikel neem ik je mee in de taal, de eigenschappen, de about us van Cardano en uiteraard vind je wat nuttige filmpjes. 

Bekijk snel

Wat is Glow?

Glow is een programmeertaal, die je gebruikt om gedecentraliseerde applicaties (dApps) te maken. Het is een Domain-Specific Language (DSL), waarmee je op veilige wijze dApps programmeert voor op de blockchain

De drijvende krachten achter Cardano hebben drie design goals vooropgesteld:

  1. Veiligheid
  2. Gebruiksvriendelijkheid
  3. Interoperabiliteit

Veiligheid

Veilig is belangrijk, dus daarom test het team ook iedere geïmplementeerde functie tot in den treure. Een Glow-programmeur weet precies welke toolset er toegepast wordt en kan dus grondige testprocessen uitvoeren. Hierdoor hoef jij als gebruiker en creator je geen zorgen te maken om de veiligheid van het platform. 

Gebruiksvriendelijkheid

Naast de veiligheid is gebruiksvriendelijkheid ook een ding. Veel ontwikkelaars zouden graag willen dat dApps mainstream zijn, maar zover is het nog niet. Glow's team heeft dit wel als visie, maar zorgt er nu in ieder geval al voor dat gebruikers weten wat ze kunnen verwachten. 

Interoperabiliteit

Waar voorheen een applicatie werd ontwikkeld voor een blockchain, naar alle waarschijnlijkheid de bekende Ethereum blockchain. Inmiddels zijn we vele blockchains verder en is het essentieel dat dApps worden gecreëerd, die interoperabel zijn. Dit betekent dat ze overdraagbaar zijn naar andere blockchains, zodat je jouw app + tooling kunt inzetten voor elke gebruiker. 

Waar normaliter dus pagina's vol code nodig zijn om een dApp op verschillende blockchains te plaatsen, is het dankzij Glow mogelijk om op geautomatiseerde wijze dit te realiseren. 

In onderstaand filmpje kun je meer informatie vinden over Cardano's dApp programmeertaal, maar let op: de online informatie is nog schaars!

https://youtu.be/cfrLYQ9wAFw

Over Cardano

Oké, je hebt de introductie op Glow nu achter de rug, dus nu gaan we even kijken uit welke pijplijn deze taal nu eigenlijk komt. Mijn collega Derek schreef in 2017 al een artikel over de oorsprong van Cardano (ADA), dus ik kan het beste hem quoten, toch?

Cardano is naar eigen zeggen de eerste cryptomunt die gebaseerd is op bewezen wiskundige theorieën. De cryptovaluta is gemaakt aan de hand van wiskundig academisch onderzoek dat door veel verschillende academici is getoetst. De universiteiten van Athene, Edinburgh en Connecticut hebben hieraan meegewerkt.

De naam Cardano komt van de wiskundige Gerolamo Cardano. Deze man was tijdens de Renaissance een van de meest invloedrijke wiskundigen in leven en heeft veel revolutionaire wiskundige theorieën de wereld ingebracht.

Om het een beetje interessant te houden, heb ik ook een leuk filmpje over Cardano voor je:

Wat kun je met Glow? [stukje voor de nerds]

Dan is het nu even tijd voor nerdtalk. Glow is een programmeertaal, waarmee je niet alleen smart contracts ontwikkelt, maar dus ook de hele dApp constructie, inclusief cliënt code en formal proofs. Dit hele gegeven wordt ondersteund door de formele methoden, die intrinsiek zijn ingebouwd in de taal en de implementatie. 

De correctheid van de taal betekent dat de code foutloos zal presteren, zoals verwacht. Het gevolg hiervan is dat de dApp zal voldoen aan de vereisten van de gebruikers, dus zonder geblokkeerde transacties en vergrendeling van hun assets. 

Daarbij genereert de Glow compiler bijpassende cliënt code, waarmee je als developer kunt bewijzen dat je een correcte code gebruikt en presenteert. Vanuit een enkele Glow specificatie zal de compiler eenvoudig een passende code genereren. Dit geldt niet alleen voor de dApp cliënt, maar ook voor het smart contract zelf.  

De runtime component zorgt ervoor dat er geen discussie kan ontstaan over de juiste, juridische versie van het smart contract. Glow helpt je om een logisch model van je decentralized application te ontwikkelen, zodat je formeel kunt verifiëren dat je correct te werk bent gegaan. 

Wil je direct aan de slag met bouwen, dan start je hier met de Glow tutorial

Smart contracts op de Cardano blockchain

Mijn collega Matt scheef al eerder over de smart contracts op de Cardano blockchain. Sinds eind 2021 is het mogelijk om deze bezigheid op de blockchain van Cardano uit te voeren. De blockchain onderging de Alonzo-update, die nogal ingrijpend was. De update werd uitgevoerd middels een hard fork, waardoor alle nodes in het netwerk moesten overgaan op de nieuwste versie van de blockchain. 

Wil je meer weten over Cardano en de visie van de oprichter? Bekijk dan onderstaande video:

Wat is het voordeel van DSL?

Hierboven noemde ik al even het DSL-gedeelte, namelijk Domain-Specific Language. Glow heeft een veilige dApp-taal gecreëerd, waardoor het mogelijk is om op relatief eenvoudige wijze een veilige Decentralized App te bouwen. De programmeertaal van Cardano heeft diverse voordelen, zoals uit het developmentproces is gebleken. Een dApp bouwen met behulp van Glow was vele malen effectiever, dan het bouwen van dezelfde dApp met behulp van Solidity en JavaScript. Wat waren de resultaten?

  • Een tiende van het aantal regels code;
  • Een tiende van de mentale inspanning;
  • Een tiende van de frustratie om bugs te vinden. 

Om een dApp te schrijven moet je verstand hebben van vele verschillende zaken, waaronder economie en computer science. Volgens het team van Cardano zijn dit de zaken die onmisbaar zijn in het proces.

Door Glow te gebruiken profiteer je, want ze hebben alle onderstaande velden gecombineerd in hun programmeertaal. Hierdoor kan de complexiteit van het ontwikkelen van de applicaties aanzienlijk minder zijn in vergelijking met bestaande alternatieven.

...Cybersecurity, Economic Mechanism Design (Crypto-economics), Economic Modelling, Cryptography, Distributed Systems, Systems Programming & Advanced knowledge of the blockchain platform of your choice.

Het design van Glow

Het doel van Glow is het mogelijk maken van dApps - financiële interacties tussen meerdere partijen, bemiddeld door de blockchain. Deze gebruikers kennen elkaar niet en vertrouwen elkaar niet, waardoor er altijd wordt gewerkt met een smart contract. Hierdoor weet je zeker dat de andere partij het protocol zal volgen, omdat overtreders worden gestraft. 

Omdat de financiële inzet hoog is, is het essentieel dat elke partij de dApp-code kan controleren en vertrouwen. Opmerkelijk is dat Glow ervoor zorgdraagt dat de controle en de vertrouwenskwestie de basis zijn om de samenwerking tussen partijen te vergemakkelijken en minimaal moet belemmeren. 

Features van Glow

Glow is dus een goed doordacht project, waar veel aandacht wordt geschonken aan de details. Alle kenmerken, die ik hieronder ga benoemen, zijn allemaal volgens een leidend principe gekozen: "Glow makes it easy to write and audit financial interactions between multiple parties."

  • Domain Specific - de Glow programmeertaal gaat puur over de interactie tussen de deelnemers met elkaar en de blockchain;
  • Pure Typed Functional Programming Core - de kern van de taal is zo gekozen, dat er een zo direct mogelijke overeenkomst is tussen ons basis rekenfragment en de formele logica. Hierdoor kunnen machines en mensen eenvoudig redeneren;
  • Partial Functions - Deze partialiteit biedt ontwikkelaars de mogelijkheid om arbitraire berekeningen uit te drukken, maar ook validatie of afwijzing van berekeningen die door onvertrouwde andere partijen worden geleverd;
  • Multi-Party Computation - Glow ondersteunt expliciet een notie van meerdere deelnemers, die elkaar niet vertrouwen;
  • Consensual Asset Control - De consensus controleert de activa;
  • Asynchronous Communication - Deelnemers wisselen berichten uit, maar sturen ook berichten naar de consensus. De communicatie verloopt op asynchrone wijze over een planetair netwerk, waardoor gelijktijdigheid niet te garanderen valt;
  • Transactions - Berichten onder deelnemers kunnen worden aanvaard of verworpen, afhankelijk van de vraag of zij geldig zijn in de context van de interactie;
  • Logical Reasoning - Glow ondersteunt direct het specificeren en automatisch bewijzen van logische stellingen over programma's;
  • Game-Theoretic Safety - In tegenstelling tot andere talen en formele verificatiesystemen, gaan we er niet vanuit dat alle deelnemers meewerken aan het protocol;
  • Layered Architecture - Glow is gelaagd in vele taalniveaus, waarbij elk niveau zijn eigen kenmerken heeft. 

Heb je interesse in meer details en wil je werkelijk van de hoed en de rand weten? Dan is de whitepaper van Glow een absolute aanrader, want hier wordt nogal gulzig met details gestrooid!

How to - programmeren met Glow

Dit kan ik natuurlijk niet even in dit blogje uitleggen, maar gelukkig heeft Cardano een geweldig goede how to-pagina opgezet. Hier kun je alle stappen doorlopen, wanneer je wilt beginnen met development. 

Hoe ga je te start?

  1. Kies voor een easy install voor end-users, voor developers of gebruik docker;
  2. Wil je liever de weg van de meeste weerstand bewandelen? Dat kan natuurlijk ook;
  3. Duik in de theorie, zodat je weet hoe je een custom dApp kunt programmeren;
  4. En tenslotte verdiep jij je in hoe je een .glow app kunt lanceren.

Voor de beginners is het zelfs mogelijk om een online course te volgen, waardoor je in drie video's (maart 2022) door het proces wordt geleid. De onboarding (module 0) neemt 30 minuten van je tijd in beslag. Module 1 is de installatie, daar ben je ook 30 minuten mee bezig en vervolgens komt module 2. Module 2 heeft de naam 'Your first steps' meegekregen. In slechts 2-3 uren leer je de logica achter smart contracts en Glow te begrijpen. 

Heb je hulp nodig of wil je sparren met andere gebruikers? Meld je aan op Discord, zodat je de community kan betrekken bij jouw project. 

De Roadmap van Glow

De laatste update op de roadmap stamt van september 2021. Het team wil het systeem in twee dimensies uitbreiden, namelijk:

  • Verticaal - in lagen van functionaliteit uitbreiden;
  • Horizontaal - in bredere functies uitbreiden, die de uitdrukkingskracht van de taal uitbreiden.

Er is geen tijdspad verbonden aan deze stappen, maar op het moment van schrijven (maart 2022) komen langzamerhand steeds meer Youtube-video's en teksten online over Glow. Dit is een goed teken, want dit betekent dat het ook voor het grotere publiek een bekender fenomeen wordt.

Je kunt de verschillende aspecten van de development environment bekijken op de speciale roadmap-pagina op Github

Heb je nog Glowing vragen?

Wil jij meer weten, kun je bij de community je ei niet kwijt of wil je gewoon doorontwikkelen? Dan kun je op deze site een uitgebreide FAQ-sectie vinden. Alle onderdelen worden hier uitgebreid behandeld, zoals de tutorial, dApps support, de how-to's, explanations en een reference manual.

Kortom, voor alle tech-liefhebbers valt er voldoende te behalen!

Conclusie

Glow is een programmeertaal, die bedacht is door de founder van Cardano. Dankzij deze taal ben jij in staat om dApps en smart contracts vorm te geven, zodat je ze kunt toepassen op diverse blockchains. De taal is easy-to-use, veilig en dus interoperabel. 

Zonder programmeerkennis is het uiteraard nog wel een uitdaging, dus enige ervaring op dit vlak maakt je leven een stuk makkelijker. Het is goed om te zien dat er verschillende blockchain-projecten als paddenstoelen uit de grond schieten, want deze wereld wordt steeds meer mainstream. Cardano is een schoolvoorbeeld van alles uit het boekje doen, want de founder doet alles vanuit Academisch oogpunt. 

Er wordt continu verwezen naar bewezen technologie en alles wordt ontwikkeld op basis van 'formal verification', zodat de foutmarge zo goed als nihil is. Dit is een uitzondering in de wereld van de developers.

Heb je nog vragen over programmeertaal Glow of andere begrippen die in dit verhaal voorbij kwamen? In onze FAQ vind je makkelijk en snel de antwoorden. Wat ook handig werkt, is om je vraag + 'AllesOverCrypto' te googelen. De kans is namelijk groot dat we in het verleden al een artikel hebben geschreven over het onderwerp waar je graag meer vanaf wilt weten. Wil je verder praten over de werking van Glow van Cardano? Meld je dan snel aan bij onze AllesOverCrypto Facebook groep! Hier staan onze crypto- en blockchainexperts klaar om jouw vragen te beantwoorden. Zie ik je daar?

Header: Foto door Sergey Katyshkin via Pexels


Wij vieren heel december feest! Vier jij met ons mee?

Open elke dag je adventskalender en claim je gratis prijs!

Ontdek je prijs!

 

December Feestmaand!

 

 

Alle uitingen van AllesOverCrypto, waaronder begrepen alle producten (o.a. Crypto Signalen en de Crypto Masterclass), berichten en e-mails, zijn de professionele mening van AllesOverCrypto en kan op géén enkele wijze worden opgevat als een persoonlijke uitnodiging, een advies of enige aanbeveling om tot aankoop van één of meer cryptovaluta over te gaan en daarin te beleggen. AllesOverCrypto is geen financieel adviseur en beoogt dat uitdrukkelijk ook niet te zijn.

De uitingen van AllesOverCrypto hebben uitsluitend een educatief karakter en kunnen op geen enkele wijze als financieel, juridisch of fiscaal advies worden opgevat. AllesOverCrypto is geen financieel, juridisch- en/of fiscaal adviseur. Er komt geen adviesrelatie tot stand tussen jou en AllesOverCrypto.

De door AllesOverCrypto gepresenteerde informatie is door haar met de grootste aandacht en zorg samengesteld. AllesOverCrypto kan echter niet instaan voor de juistheid en/of volledigheid ervan. Het gebruik van deze informatie gebeurt op jouw eigen risico. Je dient ervan bewust te zijn dat de gepresenteerde informatie, mede door de snelheid waarmee de cryptomarkt zich beweegt, al snel achterhaald is dan wel kan zijn. Wees hiervan bewust bij het bestuderen van de informatie. Daarnaast wordt uitdrukkelijk verzocht de informatie zelf te verifiëren.

Eenieder die in één of meer cryptovaluta wil beleggen dient zijn/haar eigen onderzoek te doen alvorens een beslissing te nemen tot aan- of verkoop van cryptovaluta. AllesOverCrypto is op geen enkele wijze bij dit proces betrokken. Uitsluitend jijzelf bent verantwoordelijk voor jouw eigen aan-en verkoopbeslissingen. Het aankopen van cryptovaluta brengt vanwege de aard van het product en de volatiliteit van de cryptomarkt grote risico’s met zich mee. Deze risico’s zijn zo groot dat het zelfs mogelijk is je hele aankoopbedrag te verliezen. Koop dus geen cryptovaluta die je niet kunt veroorloven te verliezen.