Hoe je met arweave-js een transactie aanmaakt en verzendt in JavaScript
Stel je voor: je uploadt een bestand en het is er voorgoed. Geen server die uitvalt, geen bedrijf dat failliet gaat, en geen abonnement dat verloopt. Dat is de kracht van Arweave.
In plaats van data te huren zoals bij Google Drive of Dropbox, koop je een stukje digitale ruimte voor altijd.
Arweave is een gedecentraliseerd netwerk dat permanente opslag mogelijk maakt via een eenmalige betaling. In dit artikel leer je hoe je met de Arweave-js bibliotheek in JavaScript een transactie aanmaakt, data verstuurt en deze permanent vastlegt in de blockweave.
Wat is Arweave en hoe werkt het?
Arweave is niet zomaar een blockchain. Het is een "blockweave", een slimme variant op de bekende blockchain-technologie.
Waar blockchains vaak blokken in een rechte lijn toevoegen, weeft Arweave transacties direct in een groter netwerk.
Dit maakt het efficiënter voor het opslaan van grote hoeveelheden data. De native cryptocurrency van het netwerk is AR. Deze token is de brandstof voor het netwerk: je betaalt ermee om data op te slaan en beloont miners die de data veilig bewaren.
De markt en de waarde van AR
Het unieke aan Arweave is het "pay-once, store-forever" model. Je betaalt eenmalig een bedrag in AR, en je data blijft beschikbaar zolang het Arweave netwerk bestaat.
De prijs van AR is, zoals bij veel cryptocurrencies, volatiel. In 2021 bereikte de munt een piek van ongeveer $64,36. Hoewel de koers sindsdien schommelt, blijft de technologie achter de munt stabiel. De totale marktkapitalisatie van Arweave beweegt vaak rond de $300 tot $400 miljoen, afhankelijk van de marktcondities.
Om transacties uit te voeren, heb je AR-tokens nodig. Deze tokens worden gebruikt om de opslagkosten te dekken, die worden berekend op basis van de hoeveelheid data en de netwerkdruk.
De initiële financiering van het project kwam tot stand via een ICO in 2018, waarbij ongeveer $20 miljoen werd opgehaald.
Arweave-js: De JavaScript-bibliotheek
Arweave-js is de handige brug tussen jouw JavaScript-code en het Arweave netwerk. Het is een open-source bibliotheek die onderhouden wordt door het Arweave team en de community.
Je kunt het gebruiken in zowel Node.js omgevingen als in de browser. Met deze bibliotheek hoef je geen complexe cryptografische handmatig uit te voeren; de bibliotheek regelt het hashen, coderen en verzenden van je transacties. Je installeert de bibliotheek eenvoudig via npm. Het is lichtgewicht en goed gedocumenteerd, waardoor het snel op te zetten is in je project.
Wat heb je nodig?
Voordat je code kunt schrijven, zorg je dat je omgeving klaar is. Je hebt het volgende nodig:
- Node.js: Versie 16 of nieuwer is ideaal voor de beste compatibiliteit.
- npm: De Node Package Manager om de Arweave-js bibliotheek te installeren.
- Een Arweave wallet: Je hebt een wallet nodig om transacties te ondertekenen. Populaire opties zijn Arconnect (voor browsers) of een CLI-wallet voor developers.
- AR-tokens: Je wallet moet gevuld zijn met een kleine hoeveelheid AR om de transactiekosten te betalen.
Een transactie aanmaken en verzenden
Het proces van het verzenden van data naar Arweave bestaat uit drie stappen: initialiseren, data voorbereiden en verzenden. Hieronder vind je een voorbeeldcode in JavaScript die een simpele tekstbestand naar het netwerk stuurt, of ontdek hoe je meerdere bestanden tegelijk uploadt met een script.
const Arweave = require('arweave');
// 1. Configureer de Arweave client
// Je kunt 'localhost' gebruiken voor een lokale node,
// maar voor de live network gebruik je 'arweave.net'.
const arweave = Arweave.init({
host: 'arweave.net',
port: 443,
protocol: 'https',
timeout: 60000
});
// 2. Data voorbereiden
const data = 'Dit is een simpele tekstfile die naar Arweave wordt verzonden.';
// 3. Transactie-opties definieren
const options = {
name: 'voorbeeld-transactie',
contentType: 'text/plain',
};
// Functie om de transactie te maken en te verzenden
async function sendTransaction() {
try {
// Maak een nieuwe transactie aan
const transaction = await arweave.createTransaction({
data: Buffer.from(data)
});
// Voeg tags toe (optioneel maar aanbevolen)
transaction.addTag('Content-Type', 'text/plain');
transaction.addTag('App-Name', 'MyFirstApp');
// Teken de transactie met je wallet (hier simulatie)
// In een echt project heb je een wallet key file nodig
// const key = ... (je wallet private key)
// await arweave.transactions.sign(transaction, key);
// Verzend de transactie
const result = await arweave.transactions.post(transaction);
console.log('Transactie succesvol verzonden!');
console.log('Transactie ID:', transaction.id);
console.log('Status:', result.status);
} catch (error) {
console.error('Fout bij het verzenden van de transactie:', error);
}
}
sendTransaction();
Uitleg van de code
Laten we de code even ontleden zodat je precies snapt wat er gebeurt. De eerste regel importeert de bibliotheek. Daarna initialiseer je de client.
De configuratie bepaalt welke Arweave-node je aanspreekt. In dit voorbeeld gebruiken we de publieke mainnet-node via HTTPS op poort 443.
Vervolgens definieer je de data. In dit geval is het een simpele string, maar je kunt hier ook afbeeldingen, JSON of andere bestanden invoegen. Door Buffer.from(data) te gebruiken, zorg je dat de data in het juiste binary formaat wordt omgezet. De transaction object wordt aangemaakt met arweave.createTransaction.
Hierin stoppen we de data. Vervolgens voegen we "tags" toe.
Tags zijn metadata die helpen bij het organiseren en vinden van je data op het netwerk. Denk aan een bestandstype of de naam van je app. De stap arweave.transactions.sign is cruciaal.
Hiermee onderteken je de transactie met je private key. Zonder deze handtekening weet het netwerk niet dat jij de eigenaar bent van de wallet.
In het voorbeeld hierboven heb ik deze stap als commentaar weggelaten voor de leesbaarheid, maar in een werkend project is dit essentieel. Ten slotte gebruiken we arweave.transactions.post om de getekende transactie naar het netwerk te sturen. De node verifieert de transactie en voegt deze toe aan de blockweave.
Data opslaan en kosten berekenen
Om data permanent op te slaan, is het belangrijk dat je de data correct encodeert. Arweave slaat alles op als bytes.
Voor tekst gebruik je Buffer.from(), voor JSON gebruik je JSON.stringify() en voor binair bestanden gebruik je de FileReader API in de browser.
De kosten voor het opslaan worden bepaald door de grootte van je data (in bytes) en de huidige netwerkdruk. Arweave berekent de prijs dynamisch. Over het algemeen liggen de kosten voor het opslaan van data erg laag, vaak minder dan een dollar per gigabyte, maar dit hangt af van de markt.
const size = Buffer.byteLength(data, 'utf8');
const price = await arweave.transactions.getPrice(size);
console.log('Kosten in AR:', arweave.ar.winstonToAR(price));
Je kunt de kosten inschatten voordat je verzendt. De Arweave-js bibliotheek heeft een functie om de prijs te berekenen:
Deze functie geeft je de prijs in "winston" (de kleinste eenheid van AR), omgerekend naar AR. Zo kom je nooit voor verrassingen te staan.
Arweave vs. traditionele opslag
Het is belangrijk om Arweave niet te verwarren met traditionele cloudopslag of zelfs met concurrenten zoals Filecoin. Filecoin werkt met huurcontracten: je betaalt om data op te slaan voor een bepaalde tijd, en miners moeten constant bewijzen dat ze de data nog hebben.
Als je stopt met betalen, verdwijnt de data. Arweave werkt anders. Je betaalt een eenmalig bedrag.
Van dit bedrag gaat een deel naar de miner die de data opslaat, en een ander deel naar een "endowment" (een fonds). Dit fonds zorgt ervoor dat miners in de toekomst worden betaald voor het bewaren van je data, zonder dat jij opnieuw hoeft te betalen. Dit maakt Arweave bijzonder geschikt voor archivering en het bewaren van historische data.
Conclusie
Met de Arweave-js bibliotheek is het verzenden van data naar een permanent netwerk verrassend eenvoudig geworden.
In een paar regelcode initialiseer je een client, maak je een transactie aan en verzend je deze naar de blockweave. Door de eenmalige betaling en het gedecentraliseerde netwerk is Arweave een krachtig alternatief voor traditionele opslag. Of je nu een archief bouwt, een blog host of simpelweg data veilig wilt stellen voor de toekomst, de tools liggen nu in je handen.
Veelgestelde vragen
Wat is Arweave precies en hoe verschilt het van traditionele cloudopslag?
Arweave is een uniek netwerk dat data permanent opslaat door eenmalige betalingen. In tegenstelling tot cloudopslag zoals Google Drive, waar data op servers van bedrijven wordt opgeslagen, wordt data op Arweave gedistribueerd over het hele netwerk, waardoor het bestand is tegen uitval en verlies.
Hoe kan ik data veilig en permanent opslaan met Arweave?
Je betaalt eenmalig voor permanente opslag, zolang het netwerk actief blijft. Om data op Arweave op te slaan, heb je een Arweave-wallet nodig, zoals Wander.
Wat is het verschil tussen Arweave en Filecoin, en voor welke doeleinden zijn ze geschikt?
Hiermee kun je een transactie aanmaken en je bestanden uploaden. De data wordt vervolgens permanent vastgelegd in het Arweave-netwerk, waardoor het bestand is tegen wijzigingen of verwijdering, en je data veilig is voor de toekomst. Hoewel beide platforms permanente dataopslag bieden, zijn ze ontworpen voor verschillende doeleinden.
Wat is de rol van AR-tokens in het Arweave-netwerk?
Filecoin optimaliseert voor kosteneffectieve, schaalbare archivering, terwijl Arweave zich richt op onveranderlijke, permanente dataopslag. Kies Arweave als je prioriteit ligt bij de absolute veiligheid en permanentie van je data.
AR-tokens zijn de cryptocurrency van het Arweave-netwerk en dienen als brandstof. Je gebruikt AR-tokens om de opslagkosten te betalen, die afhankelijk zijn van de hoeveelheid data en de huidige netwerkdruk. Zonder AR-tokens kan data niet worden opgeslagen en bewaard in het Arweave netwerk. Het Arweave-project werd in 2018 gefinancierd via een ICO, waarbij ongeveer $20 miljoen werd opgehaald.
Hoe is Arweave financieel gefinancierd en wat is de huidige waarde van AR?
De waarde van AR-tokens is volatiel, maar de technologie achter de munt zelf is stabiel.
De totale marktkapitalisatie van Arweave fluctueert vaak rond de $300 tot $400 miljoen, afhankelijk van de marktomstandigheden.
