>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Rust

Onder de motorkap van het Amadeus Protocol node

Onlangs stuitte ik op een interessante node repository van het amadeusprotocol team. Het project wordt gepresenteerd als een onderzoeksblockchain node en valt meteen op door de mix van technologieën. De hoofdcodebase is gekoppeld aan Rust en het BEAM-ecosysteem (Erlang/Elixir), terwijl smart contracts rechtstreeks vanuit AssemblyScript naar WebAssembly worden gecompileerd.

Er zijn hier geen vertrouwde EVM-ontwikkeltools zoals Hardhat of Foundry. In plaats daarvan bieden de ontwikkelaars direct lokaal netwerkbeheer via een interactieve Elixir-console en het uitvoeren van transacties over een geoptimaliseerde UDP-stack. Laten we bekijken hoe dit is gestructureerd en hoe je een testomgeving opzet.

Wat zit er in het project

Op basis van de build-scripts en code richten de auteurs zich op twee dingen: hoge netwerklaagdoorvoer en een eenvoudig smart contract-uitvoeringsmodel via WASM.

Verschillende interessante details vallen op in de repository:

  • De netwerkstack is geoptimaliseerd voor gigabit UDP-verkeer met agressieve systeem socket buffer-instellingen.
  • Smart contracts worden gecompileerd naar WASM-bestanden vanuit AssemblyScript (een TypeScript-subset), vertrouwd voor webontwikkelaars.
  • De ingebouwde interactieve REPL maakt het mogelijk om contractmethoden aan te roepen en tokens over te maken met één regel Elixir-code.
  • Node-rollen zijn verdeeld in computors en validators (trainers).

Een lokale testnet bouwen en uitvoeren

Je hebt Docker of Podman nodig om te bouwen. Het project compileert in een geïsoleerde container met Erlang en Rust-omgeving:

Na het bouwen krijg je een uitvoerbaar binary amadeusd. Om het lokaal te testen, suggereren de auteurs om een lokaal eindpunt te starten en het naar de systeemhost te laten verwijzen:

Werken met smart contracts via de console

Het meest interessante deel is interactie met de node via de REPL. Bij het starten van de testnet kun je direct de ingebouwde account-sleutels trainer ophalen en een test tellercontract implementeren.

Dit is hoe het eruitziet om te implementeren en contractmethoden aan te roepen:

Het contract is geschreven in AssemblyScript, gecompileerd naar WASM en overgedragen aan de node voor uitvoering. Dit verlaagt de instapdrempel aanzienlijk vergeleken met het leren van specifieke DSL's zoals Move of zelfs Solidity.

Het systeem tunen voor hoge netwerkbelasting

In de documentatie besteden de auteurs veel aandacht aan Linux-netwerkinstellingen. Om intensief UDP-verkeer aan te kunnen, suggereren ze om socket-buffers en bestandsdescriptorlimieten te verhogen in /etc/sysctl.conf:

Voor de achtergrondmodus is de node verpakt als een systemd-service die het proces start binnen screen. Dit maakt het mogelijk om op elk moment verbinding te maken met een actieve sessie via screen -rd amadeusd en de status te debuggen.

Voor wie is dit project interessant

De projectdocumentatie is nog vrij minimaal, en de disclaimer stelt eerlijk dat dit een experimenteel onderzoeksprototype is. Desondanks zal de broncode nuttig zijn voor:

  • Erlang- en Elixir-ontwikkelaars die implementaties van cryptografische primitieven en gedistribueerde consensus op BEAM willen zien.
  • Degenen die de integratie van WASM-runtime in servertoepassingen bestuderen.
  • Systeemingenieurs die geïnteresseerd zijn in UDP-stack tuning voor netwerkprotocollen met hoge belasting.

De code is openbaar, en je kunt een lokale testnet bouwen en ermee experimenteren met je eigen WASM-contracten in 10–15 minuten.

Gerelateerde projecten