Wir stellen „Building on web3“ vor – eine neue Reihe von Edge- und Node-Blogs mit dem Ziel, Entwickler mit den Protokollen, Tools und Best Practices für die Entwicklung im wachsenden Web3-Bereich vertraut zu machen. „Building on web3“ wird neue Technologien und Projekte im Web3-Ökosystem hervorheben, um ein Erfolgsrezept für Dapp-Entwickler zu schaffen.
In diesem Beitrag erfahren Sie, was Arweave ist, warum ich es für wichtig halte und wie Sie mit dem Bauen beginnen können. Dieser Beitrag konzentriert sich auf das Speichern und Abrufen von Dateien und nicht auf die Ausführung Ihres eigenen Produktions-Arweave-Gateways.
Das Revolutionäre an Arweave ist für mich die Tatsache, dass ich etwas einmal speichern kann und davon ausgehen kann, dass es für immer verfügbar ist, ohne jemals wieder etwas bezahlen zu müssen oder ohne Angst haben zu müssen, dass es weggeht.
Vergleichen Sie das mit herkömmlichen, zentralisierten Speicherlösungen, bei denen Sie vom Dienst ausgeschlossen werden, wenn Sie einen Monat lang vergessen, Ihre Rechnung zu bezahlen, oder, noch schlimmer, Sie oder jemand anderes Ihre Daten versehentlich vollständig löscht.
Diese Datenpermanenz ist besonders wichtig in Web3, wo wir eine unveränderliche Anwendungsinfrastruktur aufbauen. Blockchain-Daten sind von Natur aus bereits unveränderlich, aber man sieht oft, dass Entwickler Off-Chain-Daten auf eine Weise speichern, die nicht den Best Practices für Dezentralisierung oder Unveränderlichkeit entspricht.
Beispielsweise nutzen einige Entwickler im Bereich der nicht fungiblen Token oder NFTs zentralisierte Hosting-Dienste, um Token-Metadaten zu speichern. Dies zerstört die wichtigen Sicherheitseigenschaften, die für die Unveränderlichkeit erforderlich sind, sowie die Vorstellung davon, was ein NFT überhaupt darstellt.
Wenn die Metadaten nicht dauerhaft sind, gibt es keine Garantie dafür, dass die Eigenschaft, die das Token darstellt, auch in Zukunft vorhanden sein wird. Das bedeutet, dass die Integrität des Tokens gefährdet ist, wenn die Metadaten nicht auf einem permanenten Dateispeicherprotokoll wie Arweave gespeichert werden, und warum es so wichtig ist, dass solche Technologien existieren.
Innerhalb des Graph-Ökosystems bauen wir auch Unterstützung und Integrationen für Arweave auf, da wir den Wert des Protokolls für die Erstellung wirklich dezentraler Web3-Anwendungen erkennen.
Arweave basiert auf zwei Technologien: dem Blockweave, einer Ableitung der Blockchain, und „Proof of Access“.
Blockweave ist die Technologie, die Arweave antreibt. Wie eine Blockchain ist das Blockweave eine verknüpfte Sammlung von Datenblöcken, die mit zuvor in das Netzwerk geschriebenen Blöcken verknüpft sind.
Der Konsensmechanismus, der eine sichere, dezentrale Datenspeicherung in Arweave ermöglicht, wird „Proof of Access“ genannt. Dieser Mechanismus ist effizienter und umweltfreundlicher als der Arbeitsnachweis, da die Miner nicht alle Blöcke speichern müssen. Dadurch wird enorm viel Strom eingespart, während die Miner dennoch in der Lage sind, einen Konsens zu erzielen. Außerdem sinkt mit der Erweiterung des Netzes der Stromverbrauch.
Es gibt zwei Möglichkeiten, mit der Verwendung von Arweave-Tokens zu beginnen
Sie können mit einem neuen Wallet beginnen und einen Bruchteil der Arweave-Token erhalten, indem Sie den Arweave-Testhahn verwenden.
Sobald Sie die Überprüfung durchgeführt haben, sollten Sie 0,1 AR erhalten, damit Sie mit dem Testen von Arweave in Ihrer App beginnen können.
Möglicherweise haben Sie Browser- und mobile Geldbörsen wie Metamask oder Phantom verwendet, mit denen Sie direkt über eine App mit Web3-Anwendungen interagieren können. Arweave hat eine ähnliche Wallet namens Arconnect.
Sie können dies direkt als Chrome-Erweiterung installieren und mit der Interaktion mit Webanwendungen beginnen, die Arweave verwenden.
Von dort aus können Sie das Wallet mit Token von einer der unterstützten Börsen aufladen oder Ihr im vorherigen Schritt erstelltes Wallet importieren.
Um diesem Tutorial zu folgen, benötigen Sie keine Token, aber Sie sollten das Arconnect-Browser-Wallet installiert haben.
Zusätzlich zu der Technik, die wir in diesem Tutorial behandeln, können Sie Bundlr verwenden, das native Unterstützung für Arweave-Speicher auf verschiedenen Smart-Contract-Blockchains sowie clientseitige und serverseitige SDKs für die App-Integration ermöglicht.
Dies ist eine großartige Option, da der Benutzer keine AR-Tokens besitzen muss, sondern sich bei der Bezahlung von Transaktionen auf andere Netzwerke und Token wie ETH, MATIC, Solana, Arbitrum und viele andere verlassen kann.
Weitere Informationen zu Bundlr finden Sie in der Dokumentation hier.
Nachdem wir nun einen Überblick über Arweave haben und unsere Token gesichert haben, erstellen wir eine Basisanwendung.
Mit der App, die wir erstellen werden, können wir eine Textfolge auf Arweave hoch- und herunterladen.
Dies ist ein einfaches Beispiel, aber ein großartiges „Hallo Welt“, da es durch die Tools und APIs geht, damit Sie in kurzer Zeit mit dem Erstellen beginnen können.
Als Erstes erstellen wir eine neue React-Anwendung mit create-react-app:
npx create-react-app
arweave-appcd arweave-app
Es gibt zwei Möglichkeiten, das Arweave-Netzwerk von Ihrer Anwendung aus aufzurufen:
Das Arweave JS SDK ist sehr schön und wird für dieses Tutorial verwendet.
Lassen Sie uns nun arweave-js entweder mit npm oder Yarn installieren:
npm install arweave
Es gibt verschiedene Möglichkeiten, mit dem Arweave-Netzwerk zu interagieren:
In diesem Leitfaden beginnen wir mit Arlocal, das es uns ermöglicht, Testtransaktionen kostenlos zu versenden. Wir erfahren auch, wie man das Mainnet zum Senden einer echten Transaktion verwendet.
Zum lokalen Testen können wir Arlocal verwenden, das ein lokales Netzwerk betreibt, mit dem wir interagieren und Testtransaktionen senden können.
Sie müssen nicht einmal etwas herunterladen oder installieren, um Arlocal zu verwenden. Solange Sie Node.js auf Ihrem Computer installiert haben, können Sie einfach ein lokales Gateway starten, indem Sie Folgendes ausführen:
npx arlocal
Das ist es! Sie sollten jetzt ein lokales Arweave-Gateway unter http://localhost:1984ausführen
Nachdem Sie nun ein lokales Gateway ausgeführt haben, schreiben wir den Code.
Öffnen Sie src/App.js und aktualisieren Sie die Datei mit dem folgenden Code:
Stile importieren aus „../styles/Home.module.css“
{ useState } aus 'react' importieren
Arweave aus 'arweave' importieren
/ Mit einem Arweave-Knoten verbinden oder ein Gateway angeben /
const arweave = Arweave.init({})
Funktion App() {
const [state, setState] = useState('')
const [transactionId, setTransactionId] = useState('')
asynchrone Funktion createTransaction() {
if (!state) zurückgeben
versuchen {
const formData = state
setState('')
/ erstellt und sendet Transaktion an Arweave /
let transaction = waiting arweave.createTransaction({ data: formData })
Warten Sie auf arweave.transactions.sign(transaction)
let uploader = Warten auf arweave.transactions.getUploader(transaction)
/ Upload-Indikator /
while (!uploader.isComplete) {
warte auf uploader.uploadChunk()
console.log(${uploader.pctComplete}% complete,
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
setTransactionId(transaction.id)
} Catch (Err) {
console.log('error: ', err)
}
}
asynchrone Funktion readFromArweave() {
/ Arweave-Daten mit einer beliebigen Transaktions-ID lesen /
arweave.transactions
.getData(transactionId, {
dekodieren: wahr,
Zeichenfolge: wahr,
})
.then((Daten) => {
console.log('data: ', data)
})
}
zurückkehren (
<div className={styles.container}>
<button style={button} onClick={createTransaction}>
Transaktion erstellen
</button>
<button style={button} onClick={readFromArweave}>
Transaktion lesen
</button>
<input style={input} onChange={(e) => setState(e.target.value)} placeholder=“text“ value={state} />
</div>
)
}
const-Taste = {
Umriss: 'keine',
Rand: '1px einfarbig schwarz',
Hintergrundfarbe: 'weiß',
Polsterung: '10px',
Breite: '200px',
marginBottom: 10,
Cursor: 'Zeiger',
}
const-Eingabe = {
Hintergrundfarbe: '#ddd',
Umriss: 'keine',
Grenze: 'keine',
Breite: '200px',
Schriftgröße: '16px',
Polsterung: '10px',
}
Standard-App exportieren
Als nächstes starten Sie die App:
npm-Start
Wenn die App startet, sollten Sie eine einfache Formulareingabe mit zwei Schaltflächen sehen.
Sie können die Daten, die Sie speichern möchten, in das Formular eingeben und dann auf „Transaktion erstellen“ klicken, um den Text in Arweave zu speichern.
Sobald die Transaktion abgeschlossen ist, sollte an der Konsole eine Fortschrittsanzeige angezeigt werden, die anzeigt, dass die Daten gespeichert wurden.
Sobald die Daten gespeichert sind, klicken Sie auf Transaktion lesen, um die Daten aus Arweave zu lesen.
Um mit dem Produktionsnetzwerk zu interagieren, müssen Sie lediglich die Arweave-Netzwerkkonfiguration aktualisieren.
const arweave = Arweave.init({
Host: 'arweave.net',
})
Eine Beispielcodebasis für das Projekt, das wir heute erstellt haben, ist hier verfügbar.
Um mehr über Arweave zu erfahren, schauen Sie sich die Arweave-Dokumente und das Arweave-Wiki an und folgen Sie ihnen auf Twitter.
Edge & Node ist ein kreatives Softwareentwicklungsunternehmen, das sich für den Aufbau einer lebendigen, dezentralen Zukunft einsetzt. Edge & Node wurde vom ursprünglichen Team hinter The Graph gegründet und widmet sich der Weiterentwicklung des dezentralen Internets (Web3) und der Verbreitung vertrauensminimierter Anwendungen. Das Team verfügt über umfangreiche Erfahrung in der Entwicklung und Wartung von Open-Source-Software, -Tools und -Anwendungen .
Das erste Produkt von Edge & Node ist The Graph, ein Indexierungsprotokoll zum Abfragen von Netzwerken wie Ethereum und IPFS, das sicherstellt, dass offene Daten immer verfügbar und leicht zugänglich sind. Der Graph wird von Tausenden von Protokollen und Dapps verwendet, darunter Uniswap, Livepeer, Aave, Decentraland und mehr. Edge & Node startete außerdem Everest, das erste dezentrale Register für On-Chain-Daten, das der Krypto-Community fortlaufenden Nutzen bietet und die Umstellung auf Web3 beschleunigte.
Wir stellen „Building on web3“ vor – eine neue Reihe von Edge- und Node-Blogs mit dem Ziel, Entwickler mit den Protokollen, Tools und Best Practices für die Entwicklung im wachsenden Web3-Bereich vertraut zu machen. „Building on web3“ wird neue Technologien und Projekte im Web3-Ökosystem hervorheben, um ein Erfolgsrezept für Dapp-Entwickler zu schaffen.
In diesem Beitrag erfahren Sie, was Arweave ist, warum ich es für wichtig halte und wie Sie mit dem Bauen beginnen können. Dieser Beitrag konzentriert sich auf das Speichern und Abrufen von Dateien und nicht auf die Ausführung Ihres eigenen Produktions-Arweave-Gateways.
Das Revolutionäre an Arweave ist für mich die Tatsache, dass ich etwas einmal speichern kann und davon ausgehen kann, dass es für immer verfügbar ist, ohne jemals wieder etwas bezahlen zu müssen oder ohne Angst haben zu müssen, dass es weggeht.
Vergleichen Sie das mit herkömmlichen, zentralisierten Speicherlösungen, bei denen Sie vom Dienst ausgeschlossen werden, wenn Sie einen Monat lang vergessen, Ihre Rechnung zu bezahlen, oder, noch schlimmer, Sie oder jemand anderes Ihre Daten versehentlich vollständig löscht.
Diese Datenpermanenz ist besonders wichtig in Web3, wo wir eine unveränderliche Anwendungsinfrastruktur aufbauen. Blockchain-Daten sind von Natur aus bereits unveränderlich, aber man sieht oft, dass Entwickler Off-Chain-Daten auf eine Weise speichern, die nicht den Best Practices für Dezentralisierung oder Unveränderlichkeit entspricht.
Beispielsweise nutzen einige Entwickler im Bereich der nicht fungiblen Token oder NFTs zentralisierte Hosting-Dienste, um Token-Metadaten zu speichern. Dies zerstört die wichtigen Sicherheitseigenschaften, die für die Unveränderlichkeit erforderlich sind, sowie die Vorstellung davon, was ein NFT überhaupt darstellt.
Wenn die Metadaten nicht dauerhaft sind, gibt es keine Garantie dafür, dass die Eigenschaft, die das Token darstellt, auch in Zukunft vorhanden sein wird. Das bedeutet, dass die Integrität des Tokens gefährdet ist, wenn die Metadaten nicht auf einem permanenten Dateispeicherprotokoll wie Arweave gespeichert werden, und warum es so wichtig ist, dass solche Technologien existieren.
Innerhalb des Graph-Ökosystems bauen wir auch Unterstützung und Integrationen für Arweave auf, da wir den Wert des Protokolls für die Erstellung wirklich dezentraler Web3-Anwendungen erkennen.
Arweave basiert auf zwei Technologien: dem Blockweave, einer Ableitung der Blockchain, und „Proof of Access“.
Blockweave ist die Technologie, die Arweave antreibt. Wie eine Blockchain ist das Blockweave eine verknüpfte Sammlung von Datenblöcken, die mit zuvor in das Netzwerk geschriebenen Blöcken verknüpft sind.
Der Konsensmechanismus, der eine sichere, dezentrale Datenspeicherung in Arweave ermöglicht, wird „Proof of Access“ genannt. Dieser Mechanismus ist effizienter und umweltfreundlicher als der Arbeitsnachweis, da die Miner nicht alle Blöcke speichern müssen. Dadurch wird enorm viel Strom eingespart, während die Miner dennoch in der Lage sind, einen Konsens zu erzielen. Außerdem sinkt mit der Erweiterung des Netzes der Stromverbrauch.
Es gibt zwei Möglichkeiten, mit der Verwendung von Arweave-Tokens zu beginnen
Sie können mit einem neuen Wallet beginnen und einen Bruchteil der Arweave-Token erhalten, indem Sie den Arweave-Testhahn verwenden.
Sobald Sie die Überprüfung durchgeführt haben, sollten Sie 0,1 AR erhalten, damit Sie mit dem Testen von Arweave in Ihrer App beginnen können.
Möglicherweise haben Sie Browser- und mobile Geldbörsen wie Metamask oder Phantom verwendet, mit denen Sie direkt über eine App mit Web3-Anwendungen interagieren können. Arweave hat eine ähnliche Wallet namens Arconnect.
Sie können dies direkt als Chrome-Erweiterung installieren und mit der Interaktion mit Webanwendungen beginnen, die Arweave verwenden.
Von dort aus können Sie das Wallet mit Token von einer der unterstützten Börsen aufladen oder Ihr im vorherigen Schritt erstelltes Wallet importieren.
Um diesem Tutorial zu folgen, benötigen Sie keine Token, aber Sie sollten das Arconnect-Browser-Wallet installiert haben.
Zusätzlich zu der Technik, die wir in diesem Tutorial behandeln, können Sie Bundlr verwenden, das native Unterstützung für Arweave-Speicher auf verschiedenen Smart-Contract-Blockchains sowie clientseitige und serverseitige SDKs für die App-Integration ermöglicht.
Dies ist eine großartige Option, da der Benutzer keine AR-Tokens besitzen muss, sondern sich bei der Bezahlung von Transaktionen auf andere Netzwerke und Token wie ETH, MATIC, Solana, Arbitrum und viele andere verlassen kann.
Weitere Informationen zu Bundlr finden Sie in der Dokumentation hier.
Nachdem wir nun einen Überblick über Arweave haben und unsere Token gesichert haben, erstellen wir eine Basisanwendung.
Mit der App, die wir erstellen werden, können wir eine Textfolge auf Arweave hoch- und herunterladen.
Dies ist ein einfaches Beispiel, aber ein großartiges „Hallo Welt“, da es durch die Tools und APIs geht, damit Sie in kurzer Zeit mit dem Erstellen beginnen können.
Als Erstes erstellen wir eine neue React-Anwendung mit create-react-app:
npx create-react-app
arweave-appcd arweave-app
Es gibt zwei Möglichkeiten, das Arweave-Netzwerk von Ihrer Anwendung aus aufzurufen:
Das Arweave JS SDK ist sehr schön und wird für dieses Tutorial verwendet.
Lassen Sie uns nun arweave-js entweder mit npm oder Yarn installieren:
npm install arweave
Es gibt verschiedene Möglichkeiten, mit dem Arweave-Netzwerk zu interagieren:
In diesem Leitfaden beginnen wir mit Arlocal, das es uns ermöglicht, Testtransaktionen kostenlos zu versenden. Wir erfahren auch, wie man das Mainnet zum Senden einer echten Transaktion verwendet.
Zum lokalen Testen können wir Arlocal verwenden, das ein lokales Netzwerk betreibt, mit dem wir interagieren und Testtransaktionen senden können.
Sie müssen nicht einmal etwas herunterladen oder installieren, um Arlocal zu verwenden. Solange Sie Node.js auf Ihrem Computer installiert haben, können Sie einfach ein lokales Gateway starten, indem Sie Folgendes ausführen:
npx arlocal
Das ist es! Sie sollten jetzt ein lokales Arweave-Gateway unter http://localhost:1984ausführen
Nachdem Sie nun ein lokales Gateway ausgeführt haben, schreiben wir den Code.
Öffnen Sie src/App.js und aktualisieren Sie die Datei mit dem folgenden Code:
Stile importieren aus „../styles/Home.module.css“
{ useState } aus 'react' importieren
Arweave aus 'arweave' importieren
/ Mit einem Arweave-Knoten verbinden oder ein Gateway angeben /
const arweave = Arweave.init({})
Funktion App() {
const [state, setState] = useState('')
const [transactionId, setTransactionId] = useState('')
asynchrone Funktion createTransaction() {
if (!state) zurückgeben
versuchen {
const formData = state
setState('')
/ erstellt und sendet Transaktion an Arweave /
let transaction = waiting arweave.createTransaction({ data: formData })
Warten Sie auf arweave.transactions.sign(transaction)
let uploader = Warten auf arweave.transactions.getUploader(transaction)
/ Upload-Indikator /
while (!uploader.isComplete) {
warte auf uploader.uploadChunk()
console.log(${uploader.pctComplete}% complete,
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
setTransactionId(transaction.id)
} Catch (Err) {
console.log('error: ', err)
}
}
asynchrone Funktion readFromArweave() {
/ Arweave-Daten mit einer beliebigen Transaktions-ID lesen /
arweave.transactions
.getData(transactionId, {
dekodieren: wahr,
Zeichenfolge: wahr,
})
.then((Daten) => {
console.log('data: ', data)
})
}
zurückkehren (
<div className={styles.container}>
<button style={button} onClick={createTransaction}>
Transaktion erstellen
</button>
<button style={button} onClick={readFromArweave}>
Transaktion lesen
</button>
<input style={input} onChange={(e) => setState(e.target.value)} placeholder=“text“ value={state} />
</div>
)
}
const-Taste = {
Umriss: 'keine',
Rand: '1px einfarbig schwarz',
Hintergrundfarbe: 'weiß',
Polsterung: '10px',
Breite: '200px',
marginBottom: 10,
Cursor: 'Zeiger',
}
const-Eingabe = {
Hintergrundfarbe: '#ddd',
Umriss: 'keine',
Grenze: 'keine',
Breite: '200px',
Schriftgröße: '16px',
Polsterung: '10px',
}
Standard-App exportieren
Als nächstes starten Sie die App:
npm-Start
Wenn die App startet, sollten Sie eine einfache Formulareingabe mit zwei Schaltflächen sehen.
Sie können die Daten, die Sie speichern möchten, in das Formular eingeben und dann auf „Transaktion erstellen“ klicken, um den Text in Arweave zu speichern.
Sobald die Transaktion abgeschlossen ist, sollte an der Konsole eine Fortschrittsanzeige angezeigt werden, die anzeigt, dass die Daten gespeichert wurden.
Sobald die Daten gespeichert sind, klicken Sie auf Transaktion lesen, um die Daten aus Arweave zu lesen.
Um mit dem Produktionsnetzwerk zu interagieren, müssen Sie lediglich die Arweave-Netzwerkkonfiguration aktualisieren.
const arweave = Arweave.init({
Host: 'arweave.net',
})
Eine Beispielcodebasis für das Projekt, das wir heute erstellt haben, ist hier verfügbar.
Um mehr über Arweave zu erfahren, schauen Sie sich die Arweave-Dokumente und das Arweave-Wiki an und folgen Sie ihnen auf Twitter.
Edge & Node ist ein kreatives Softwareentwicklungsunternehmen, das sich für den Aufbau einer lebendigen, dezentralen Zukunft einsetzt. Edge & Node wurde vom ursprünglichen Team hinter The Graph gegründet und widmet sich der Weiterentwicklung des dezentralen Internets (Web3) und der Verbreitung vertrauensminimierter Anwendungen. Das Team verfügt über umfangreiche Erfahrung in der Entwicklung und Wartung von Open-Source-Software, -Tools und -Anwendungen .
Das erste Produkt von Edge & Node ist The Graph, ein Indexierungsprotokoll zum Abfragen von Netzwerken wie Ethereum und IPFS, das sicherstellt, dass offene Daten immer verfügbar und leicht zugänglich sind. Der Graph wird von Tausenden von Protokollen und Dapps verwendet, darunter Uniswap, Livepeer, Aave, Decentraland und mehr. Edge & Node startete außerdem Everest, das erste dezentrale Register für On-Chain-Daten, das der Krypto-Community fortlaufenden Nutzen bietet und die Umstellung auf Web3 beschleunigte.