Cardano hard fork update

Cardano maakt bouwen eenvoudiger met Mesmo voor vier programmeertalen

Altcoin Nieuws•26 sep , 12:14
Cardano-ontwikkelaars hoeven niet langer van complete softwarestack te wisselen wanneer hun favoriete SDK één nieuwe functie mist. De Cardano Foundation heeft Mesmo uitgebracht, waarmee functies uit Cardano Client Lib beschikbaar worden voor Python, Go, Rust en JavaScript.
De software richt zich juist op de gaten tussen bestaande libraries. Governance, staking, Plutus-functies en nieuwe protocolmogelijkheden kunnen zo vanuit meerdere programmeertalen worden gebruikt zonder dat een team zijn huidige SDK volledig hoeft te vervangen.

Mesmo vult precies het ontbrekende stuk aan

Het Cardano-ecosysteem heeft al meerdere ontwikkelkits.
Python-teams gebruiken bijvoorbeeld PyCardano. Voor JavaScript en TypeScript bestaan onder meer MeshJS en Evolution SDK, terwijl Rust- en Go-ontwikkelaars weer andere libraries hebben.
De Cardano Foundation zegt nadrukkelijk dat developers die daar alles mee kunnen bouwen gewoon bij hun bestaande library moeten blijven. Mesmo wordt pas relevant wanneer een specifieke functie ontbreekt.
De Foundation vat dat zelf samen als een situatie waarin een SDK ongeveer 95% van de behoeften afdekt, maar juist de resterende 5% nodig is voor een nieuw product.
Dat percentage moet vooral worden gelezen als illustratie.
Het punt is dat nieuwe Cardano-functies niet altijd tegelijk in iedere programmeertaal beschikbaar komen.

Nieuwe hard forks maken dat probleem zichtbaar

Dat verschil ontstaat vooral na grote protocolupdates.
De Conway-periode bracht bijvoorbeeld DRep-registratie, stemdelegatie, governancevoorstellen, committee-functies en nieuwe certificaten naar Cardano.
Iedere afzonderlijke SDK moet zulke functies daarna begrijpen, bouwen, testen en uitbrengen. Kleinere onderhoudsteams kunnen daar niet altijd direct achteraan.
Mesmo kiest een andere route.
In plaats van dezelfde Cardano-logica opnieuw in vier programmeertalen te bouwen, gebruikt de software één gemeenschappelijke kern.
Daarbovenop liggen dunne wrappers voor Python, Go, Rust en JavaScript.

Java-code draait zonder Java Virtual Machine

Onder die wrappers zit Cardano Client Lib, een uitgebreide Java-SDK waarvan het onderhoud door de Cardano Foundation wordt ondersteund.
Mesmo compileert die code met GraalVM Native Image naar een gewone native shared library.
Op Linux verschijnt die bijvoorbeeld als libmesmo.so, op macOS als libmesmo.dylib en op Windows als libmesmo.dll. Tijdens normaal gebruik hoeft geen Java Virtual Machine te draaien.
Dat technische detail maakt de aanpak mogelijk.
Python of Rust hoeft de Cardano-functionaliteit niet opnieuw te implementeren. De taal praat via zijn wrapper met dezelfde gecompileerde kern.
Daardoor moet dezelfde handeling in iedere ondersteunde taal uiteindelijk dezelfde transactie opleveren.

Python, Go, Rust en JavaScript krijgen eigen wrapper

De eerste release richt zich op vier talen.
Python gebruikt ctypes om de native library aan te roepen. Go gebruikt purego, terwijl Rust via FFI verbinding maakt met dezelfde kern.
Voor JavaScript ligt er voorlopig een belangrijke beperking.
Die wrapper is gebouwd voor Bun en werkt niet met Node.js. De Foundation schrijft dat bestaande Node-FFI-oplossingen problemen geven met de gebruikte GraalVM-native libraries.
Voor teams die volledig op Node.js draaien is Mesmo daardoor nu minder aantrekkelijk.
Een WebAssembly-versie staat op de roadmap om die beperking later te verkleinen.

Governance en staking zijn al beschikbaar

Mesmo richt zich niet alleen op eenvoudige betalingen.
De huidige versie kan onder meer transacties bouwen voor ADA en native tokens, stakingregistratie, delegatie, reward withdrawals en stakepoolhandelingen.
Ook verschillende Conway-governancefuncties worden ondersteund.
Daaronder vallen DRep-registratie, het uitbrengen van stemmen, vote delegation, governance actions en treasury donations.
Verder ondersteunt de kern native scripts en verschillende Plutus-handelingen.
Voor developers die juist één recente governancefunctie missen in hun bestaande SDK kan dat het verschil maken tussen wachten en direct verder bouwen.

Mesmo vervangt geen Cardano-node

Daar ligt tegelijk een duidelijke grens.
Mesmo is geen node client.
De library synchroniseert de Cardano-blockchain niet zelf, onderhoudt geen nodeprotocol en verstuurt transacties niet zelfstandig naar het netwerk.
Voor actuele blockchaininformatie gebruikt de software een zogenoemde ChainDataProvider.
De eerste versie bevat ondersteuning voor Yaci-Store en Blockfrost. Developers kunnen ook hun eigen databron aansluiten.
Het daadwerkelijk versturen van een gebouwde transactie blijft onderdeel van de eigen applicatiecode.

Plutus-berekeningen kunnen lokaal plaatsvinden

Interessant is ook hoe Mesmo met Plutus omgaat.
Voor bepaalde scripttransacties moeten execution units worden berekend. Dat bepaalt hoeveel rekenwerk een script kost.
Mesmo bevat daarvoor een ingebouwde Scalus UPLC-evaluator.
Daardoor kunnen zulke berekeningen lokaal in de native kern worden uitgevoerd zonder eerst een externe dienst te raadplegen. Teams kunnen desgewenst ook een andere evaluator aansluiten.
Dat past bij de bredere aanpak van de library.
De moeilijke Cardano-logica zit zoveel mogelijk in één gemeenschappelijk stuk code, terwijl iedere programmeertaal daar een eigen lichte laag bovenop krijgt.

Iedere wrapper wordt tegen een echte devnet getest

De Foundation probeert bovendien te voorkomen dat de vier taalversies langzaam van elkaar gaan afwijken.
De wrappers bieden dezelfde set van 32 functies.
Bij iedere wijziging bouwt de testomgeving verschillende ondersteunde transactietypes in alle vier de talen en verstuurt die naar een echte Cardano-devnetnode. Transacties die bewust ongeldig zijn, moeten daar ook daadwerkelijk worden geweigerd.
Dat is belangrijk bij financiële software.
Een library kan lokaal een geldige datastructuur lijken te produceren, maar uiteindelijk telt alleen of het Cardano-netwerk de resulterende transactie accepteert.

De software is nog duidelijk pre-release

Mesmo is nog niet af.
De huidige software volgt de 0.8 pre-release-lijn van Cardano Client Lib en is zelf eveneens als pre-release beschikbaar. De Foundation waarschuwt dat API’s daarom nog kunnen veranderen.
Er hangt ook een technische prijs aan de aanpak.
De native library voegt ongeveer 60 MB aan platformafhankelijke binaries toe aan een project.
Voor sommige applicaties is dat weinig relevant. Voor kleine pakketten of omgevingen waarin bestandsgrootte zwaar telt, kan het wel een nadeel zijn.

Ondersteuning verschilt nog per platform

Voor meerdere gangbare systemen zijn vooraf gebouwde libraries beschikbaar.
De Foundation noemt Linux op x86_64 en ARM64, macOS op Apple Silicon en Windows x86_64. Developers hoeven daardoor voor die standaardomgevingen niet zelf GraalVM te gebruiken om de kern te compileren.
De precieze platformdekking verdient voorlopig wel controle per release.
De projectdocumentatie en de Foundation-publicatie verschillen op onderdelen over Linux-varianten. Voor productiegebruik blijft het daarom verstandig om de releasebestanden voor de eigen omgeving te controleren.

WebAssembly is een volgende stap

De roadmap gaat verder dan de huidige vier wrappers.
Mesmo moet uiteindelijk ook naar WebAssembly worden gecompileerd.
Daarmee kan dezelfde kern in browsers en andere runtimes draaien die WebAssembly ondersteunen, zonder traditionele native-librarybindings.
Daarnaast staan meer databronnen gepland.
De eerste versie ondersteunt Yaci-Store en Blockfrost. Ogmios, Koios en Dolos worden genoemd als mogelijke volgende standaardopties.
Ook werkt het project aan een code-first transaction builder. Nu worden transacties nog grotendeels via het TxPlan-formaat beschreven.

Cardano probeert een oud developerprobleem kleiner te maken

Voor Cardano is de belangrijkste winst niet dat er plotseling vier nieuwe programmeertalen bijkomen.
Die talen konden al met Cardano werken.
Mesmo probeert iets subtielers op te lossen: voorkomen dat teams vastlopen wanneer hun gekozen library nét achterloopt op het protocol.
Een Python-team kan PyCardano blijven gebruiken en alleen voor een ontbrekende governancehandeling Mesmo inschakelen.
Krijgt PyCardano die functie later zelf, dan kan Mesmo voor dat onderdeel weer verdwijnen.
Dat maakt de software meer een technische noodbrug dan een nieuwe standaard waar iedere Cardano-app op moet worden gebouwd.

Minder wachten kan belangrijker zijn dan nóg een SDK

Dat is uiteindelijk de interessantste kant van Mesmo.
Blockchainnetwerken kunnen nieuwe functies snel toevoegen, maar die zijn pas bruikbaar wanneer ontwikkelaars er vanuit hun dagelijkse tools bij kunnen.
Vier afzonderlijke implementaties bijhouden kost tijd.
Mesmo probeert die vertraging te verkleinen door één onderhouden kern naar meerdere talen te exporteren.
De echte test komt daarom bij de volgende Cardano-upgrade.
Als developers nieuwe protocolfuncties daadwerkelijk sneller vanuit Python, Go, Rust en JavaScript kunnen gebruiken, hoeft Mesmo niet de populairste SDK te worden om toch nuttig te zijn.

Stop met te veel betalen voor je crypto. Bij de Amsterdamse exchange Finst handel je tegen de laagste tarieven van Nederland, zonder verborgen kosten.

👀 Bekijk Finst nu ›

Let op: Beleggen in crypto brengt risico’s met zich mee. Handel alleen met geld dat u kunt missen.

Ga verder met lezen
loading
Dit vind je misschien ook leuk
Laat mensen jouw mening weten

Loading