Construire avec Arweave, un protocole de données permanent et décentralisé

Débutant1/10/2024, 6:28:38 PM
Cet article se concentre sur le stockage et la récupération de fichiers, et non sur l'exploitation de votre propre passerelle Arweave.

Voici Building on web3 - une nouvelle série de blogs Edge & Node dont l'objectif est de familiariser les développeurs avec les protocoles, les outils et les meilleures pratiques de développement dans l'espace web3 en pleine croissance. Building on web3 mettra en lumière les technologies et les projets émergents dans l'écosystème web3 pour aider à créer une recette de succès pour les développeurs de dapps.

Dans ce billet, vous découvrirez ce qu'est Arweave, pourquoi je pense qu'il est important, et comment vous pouvez commencer à construire avec lui. Cet article se concentre sur le stockage et la récupération de fichiers, et non sur l'exploitation de votre propre passerelle Arweave.

Arweave est une couche de stockage de données et de fichiers globale, permanente et décentralisée.

Pour moi, l'aspect révolutionnaire d'Arweave est le fait que je peux stocker quelque chose une fois et m'attendre à ce qu'il soit disponible pour toujours sans jamais avoir à payer quoi que ce soit de nouveau ou sans avoir à m'inquiéter qu'il disparaisse.

Comparez cela aux solutions de stockage centralisées traditionnelles, où si vous oubliez de payer votre facture un mois donné, vous êtes mis hors service, ou pire encore, vous ou quelqu'un d'autre supprimez accidentellement toutes vos données.

Cette permanence des données est particulièrement importante dans web3 où nous construisons une infrastructure d'application immuable. Les données de la blockchain sont par nature déjà immuables, mais vous voyez souvent des développeurs stocker des données hors chaîne d'une manière qui n'adhère pas aux meilleures pratiques de décentralisation ou d'immuabilité.

Par exemple, dans le domaine des jetons non fongibles (NFT), certains développeurs utilisent des services d'hébergement centralisés pour stocker les métadonnées des jetons. Cela rompt avec les importantes propriétés de sécurité requises pour l'immutabilité, ainsi qu'avec l'idée de ce qu'un NFT représente en premier lieu.

Si les métadonnées ne sont pas permanentes, rien ne garantit que la propriété représentée par le jeton existera encore à l'avenir. Cela signifie que l'intégrité du jeton est en jeu si les métadonnées ne sont pas stockées sur un protocole de stockage de fichiers permanent comme Arweave, et c'est pourquoi il est si important que des technologies comme celle-ci existent.

Au sein de l'écosystème The Graph, nous développons également un support et des intégrations pour Arweave car nous reconnaissons la valeur du protocole pour la construction d'applications web3 véritablement décentralisées.

À propos d'Arweave

Arweave repose sur deux technologies : la blockchain, un dérivé de la chaîne de blocs, et la "preuve d'accès".

Blockweave est la technologie qui alimente Arweave. À l'instar d'une blockchain, la blockweave est une collection de blocs de données liés entre eux, qui renvoient aux blocs précédents écrits sur le réseau.

Le mécanisme de consensus utilisé pour faciliter le stockage sécurisé et décentralisé des données dans Arweave est appelé "preuve d'accès". Ce mécanisme est plus efficace et plus respectueux de l'environnement que la preuve de travail, car les mineurs n'ont pas besoin de stocker tous les blocs. Cela permet d'économiser une énorme quantité d'électricité tout en permettant aux mineurs de parvenir à un consensus. En outre, la consommation d'électricité diminue au fur et à mesure que le réseau s'étend.

Démarrer avec Arweave

Il y a deux façons de commencer à utiliser les jetons Arweave

1. Téléchargez un portefeuille Arweave

Vous pouvez commencer avec un nouveau portefeuille et obtenir une fraction de jetons Arweave en utilisant le robinet de test Arweave.

Une fois que vous avez vérifié, vous devriez recevoir 0.1 AR à utiliser pour commencer à tester Arweave dans votre application.

2. Un portefeuille de navigateur

Vous avez peut-être utilisé des portefeuilles de navigateur et de mobile comme Metamask ou Phantom qui vous permettent d'interagir avec des applications web3 directement à partir d'une application. Arweave propose un portefeuille similaire, appelé Arconnect.

Vous pouvez l'installer directement comme une extension chrome et commencer à interagir avec les applications web qui utilisent Arweave.

À partir de là, vous pouvez alimenter le portefeuille avec des jetons provenant de l'un des échanges pris en charge ou vous pouvez importer votre portefeuille créé à l'étape précédente.

Pour suivre ce tutoriel, vous n'aurez pas besoin de jetons, mais vous devez avoir installé le portefeuille Arconnect.

Bundlr

En plus de la technique que nous allons couvrir dans ce tutoriel, vous pouvez choisir d'utiliser Bundlr qui permet la prise en charge native du stockage Arweave sur différentes blockchains de contrats intelligents ainsi que des SDK côté client et côté serveur pour l'intégration d'applications.

Il s'agit d'une excellente option car elle n'exige pas que l'utilisateur détienne des jetons AR, mais peut au contraire s'appuyer sur d'autres réseaux et jetons comme ETH, MATIC, Solana, Arbitrum, et bien d'autres pour payer les transactions.

Pour en savoir plus sur Bundlr, consultez la documentation ici.

Construire avec Arweave

Maintenant que nous avons une vue d'ensemble d'Arweave et que nous avons sécurisé nos jetons, construisons une application de base.

L'application que nous allons créer nous permettra de charger et de télécharger une chaîne de texte sur Arweave.

Il s'agit d'un exemple basique, mais d'un excellent "Hello world" car il passe en revue les outils et les API pour vous permettre de commencer à construire en peu de temps.

La première chose à faire est de créer une nouvelle application React à l'aide de create-react-app :

npx create-react-app

arweave-appcd arweave-app

Il y a deux façons principales d'appeler le réseau Arweave à partir de votre application :

  1. API HTTP - Le protocole Arweave est basé sur HTTP, donc tous les clients http existants peuvent être utilisés pour interagir avec le réseau, comme Axios ou Fetch.
  2. Arweave JS - Arweave JS est le SDK JavaScript/TypeScript permettant d'interagir avec le réseau Arweave et de télécharger des données sur le permaweb. Il fonctionne avec les derniers navigateurs et Node JS.

Le SDK JS d'Arweave est très intéressant et c'est ce que nous allons utiliser pour ce tutoriel.

Installons maintenant arweave-js en utilisant npm ou yarn :

npm install arweave

Réseau Arweave

Vous pouvez interagir avec le réseau Arweave de plusieurs manières :

  1. Devnet - arweave.dev
  2. Mainnet - https://arweave.net/
  3. Environnement local - Arlocal

Dans ce guide, nous commencerons par Arlocal, qui nous permettra d'envoyer des transactions de test gratuitement. Nous apprendrons également à utiliser le réseau principal pour effectuer une transaction réelle.

Arlocal

Pour tester localement, nous pouvons utiliser Arlocal, qui lancera un réseau local avec lequel nous pourrons interagir et auquel nous pourrons envoyer des transactions de test.

Vous n'avez même pas besoin de télécharger ou d'installer quoi que ce soit pour utiliser Arlocal, tant que vous avez Node.js installé sur votre machine, vous pouvez simplement démarrer une passerelle locale en exécutant :

npx arlocal

C'est tout ! Vous devriez maintenant avoir une passerelle Arweave locale sur http://localhost:1984.

Maintenant que vous avez une passerelle locale qui fonctionne, écrivons le code.

Ouvrez src/App.js et mettez à jour le fichier avec le code suivant :

import styles from '../styles/Home.module.css'

import { useState } from 'react'

import Arweave de 'arweave'

/ se connecter à un nœud Arweave ou spécifier une passerelle /

const arweave = Arweave.init({})

function App() {

const [state, setState] = useState('')

const [transactionId, setTransactionId] = useState('')

async function createTransaction() {

if (!state) return

essayer {

const formData = state

setState('')

/ crée et envoie la transaction à Arweave /

let transaction = await arweave.createTransaction({ data: formData })

await arweave.transactions.sign(transaction)

let uploader = await arweave.transactions.getUploader(transaction)

/ Indicateur de téléchargement /

while (!uploader.isComplete) {

await uploader.uploadChunk()

console.log(${uploader.pctComplete}% complete, ${uploader.uploadedChunks}/${uploader.totalChunks})

}

setTransactionId(transaction.id)

} catch (err) {

console.log('error : ', err)

}

}

async function readFromArweave() {

/ lire les données Arweave en utilisant n'importe quel ID de transaction /

arweave.transactions

.getData(transactionId, {

decode : true,

string : true,

})

.then((data) => {

console.log('data : ', data)

})

}

retourner (

<div className={styles.container}>

<button style={button} onClick={createTransaction}>

Créer une transaction

</button>

<button style={button} onClick={readFromArweave}>

Transaction de lecture

</button>

<input style={input} onChange={(e) => setState(e.target.value)} placeholder="text" value={state} />

</div>

)

}

const button = {

contour : "aucun",

bordure : '1px solid black',

couleur de fond : "blanc",

padding : '10px',

largeur : "200px",

marginBottom : 10,

curseur : 'pointeur',

}

const input = {

couleur de fond : "#ddd",

contour : "aucun",

bordure : "aucun",

largeur : "200px",

fontSize : '16px',

padding : '10px',

}

exporter l'application par défaut

Ensuite, démarrez l'application :

npm start

Lorsque l'application démarre, vous devriez voir un formulaire de base avec deux boutons.

Vous pouvez taper dans le formulaire les données que vous souhaitez sauvegarder, puis appuyer sur Créer une transaction pour sauvegarder le texte dans Arweave.

Une fois la transaction terminée, vous devriez voir un indicateur de progression connecté à la console indiquant que les données ont été sauvegardées.

Une fois les données sauvegardées, cliquez sur Lire la transaction pour lire les données d'Arweave.

Réseau de production Arweave

Pour interagir avec le réseau de production, il suffit de mettre à jour la configuration du réseau Arweave.

const arweave = Arweave.init({

hôte : 'arweave.net',

})

Code pour ce projet

Un exemple de base de code pour le projet que nous avons construit aujourd'hui est disponible ici.

Prochaines étapes

Pour en savoir plus sur Arweave, consultez la documentation d'Arweave, le Wiki d'Arweave et suivez-les sur Twitter.

À propos du nœud Edge &

Edge & Node est une société de développement de logiciels créatifs qui œuvre à la construction d'un avenir dynamique et décentralisé. Fondé par l'équipe à l'origine de The Graph, Edge & Node se consacre à l'avancement de l'internet décentralisé (web3) et à la prolifération d'applications minimisant la confiance. L'équipe possède une vaste expérience dans le développement et la maintenance de logiciels, d'outils et d'applications open source.

Le premier produit de Edge & Node est The Graph, un protocole d'indexation pour l'interrogation de réseaux tels qu'Ethereum et IPFS, qui garantit que les données ouvertes sont toujours disponibles et faciles d'accès. Le Graph est utilisé par des milliers de protocoles et d'applications, dont Uniswap, Livepeer, Aave, Decentraland, et bien d'autres. Edge & Node a également lancé Everest, le premier registre décentralisé de données sur la chaîne afin de fournir une utilité continue à la communauté cryptographique, catalysant le passage au web3.

Clause de non-responsabilité:

  1. Cet article est repris de[Edge & Node]. Tous les droits d'auteur appartiennent à l'auteur original[Nader Dabit]. Si vous avez des objections à cette réimpression, veuillez contacter l'équipe de Gate Learn, qui s'en chargera rapidement.
  2. Clause de non-responsabilité : Les points de vue et les opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent pas un conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe de Gate Learn. Sauf mention contraire, il est interdit de copier, distribuer ou plagier les articles traduits.

Construire avec Arweave, un protocole de données permanent et décentralisé

Débutant1/10/2024, 6:28:38 PM
Cet article se concentre sur le stockage et la récupération de fichiers, et non sur l'exploitation de votre propre passerelle Arweave.

Voici Building on web3 - une nouvelle série de blogs Edge & Node dont l'objectif est de familiariser les développeurs avec les protocoles, les outils et les meilleures pratiques de développement dans l'espace web3 en pleine croissance. Building on web3 mettra en lumière les technologies et les projets émergents dans l'écosystème web3 pour aider à créer une recette de succès pour les développeurs de dapps.

Dans ce billet, vous découvrirez ce qu'est Arweave, pourquoi je pense qu'il est important, et comment vous pouvez commencer à construire avec lui. Cet article se concentre sur le stockage et la récupération de fichiers, et non sur l'exploitation de votre propre passerelle Arweave.

Arweave est une couche de stockage de données et de fichiers globale, permanente et décentralisée.

Pour moi, l'aspect révolutionnaire d'Arweave est le fait que je peux stocker quelque chose une fois et m'attendre à ce qu'il soit disponible pour toujours sans jamais avoir à payer quoi que ce soit de nouveau ou sans avoir à m'inquiéter qu'il disparaisse.

Comparez cela aux solutions de stockage centralisées traditionnelles, où si vous oubliez de payer votre facture un mois donné, vous êtes mis hors service, ou pire encore, vous ou quelqu'un d'autre supprimez accidentellement toutes vos données.

Cette permanence des données est particulièrement importante dans web3 où nous construisons une infrastructure d'application immuable. Les données de la blockchain sont par nature déjà immuables, mais vous voyez souvent des développeurs stocker des données hors chaîne d'une manière qui n'adhère pas aux meilleures pratiques de décentralisation ou d'immuabilité.

Par exemple, dans le domaine des jetons non fongibles (NFT), certains développeurs utilisent des services d'hébergement centralisés pour stocker les métadonnées des jetons. Cela rompt avec les importantes propriétés de sécurité requises pour l'immutabilité, ainsi qu'avec l'idée de ce qu'un NFT représente en premier lieu.

Si les métadonnées ne sont pas permanentes, rien ne garantit que la propriété représentée par le jeton existera encore à l'avenir. Cela signifie que l'intégrité du jeton est en jeu si les métadonnées ne sont pas stockées sur un protocole de stockage de fichiers permanent comme Arweave, et c'est pourquoi il est si important que des technologies comme celle-ci existent.

Au sein de l'écosystème The Graph, nous développons également un support et des intégrations pour Arweave car nous reconnaissons la valeur du protocole pour la construction d'applications web3 véritablement décentralisées.

À propos d'Arweave

Arweave repose sur deux technologies : la blockchain, un dérivé de la chaîne de blocs, et la "preuve d'accès".

Blockweave est la technologie qui alimente Arweave. À l'instar d'une blockchain, la blockweave est une collection de blocs de données liés entre eux, qui renvoient aux blocs précédents écrits sur le réseau.

Le mécanisme de consensus utilisé pour faciliter le stockage sécurisé et décentralisé des données dans Arweave est appelé "preuve d'accès". Ce mécanisme est plus efficace et plus respectueux de l'environnement que la preuve de travail, car les mineurs n'ont pas besoin de stocker tous les blocs. Cela permet d'économiser une énorme quantité d'électricité tout en permettant aux mineurs de parvenir à un consensus. En outre, la consommation d'électricité diminue au fur et à mesure que le réseau s'étend.

Démarrer avec Arweave

Il y a deux façons de commencer à utiliser les jetons Arweave

1. Téléchargez un portefeuille Arweave

Vous pouvez commencer avec un nouveau portefeuille et obtenir une fraction de jetons Arweave en utilisant le robinet de test Arweave.

Une fois que vous avez vérifié, vous devriez recevoir 0.1 AR à utiliser pour commencer à tester Arweave dans votre application.

2. Un portefeuille de navigateur

Vous avez peut-être utilisé des portefeuilles de navigateur et de mobile comme Metamask ou Phantom qui vous permettent d'interagir avec des applications web3 directement à partir d'une application. Arweave propose un portefeuille similaire, appelé Arconnect.

Vous pouvez l'installer directement comme une extension chrome et commencer à interagir avec les applications web qui utilisent Arweave.

À partir de là, vous pouvez alimenter le portefeuille avec des jetons provenant de l'un des échanges pris en charge ou vous pouvez importer votre portefeuille créé à l'étape précédente.

Pour suivre ce tutoriel, vous n'aurez pas besoin de jetons, mais vous devez avoir installé le portefeuille Arconnect.

Bundlr

En plus de la technique que nous allons couvrir dans ce tutoriel, vous pouvez choisir d'utiliser Bundlr qui permet la prise en charge native du stockage Arweave sur différentes blockchains de contrats intelligents ainsi que des SDK côté client et côté serveur pour l'intégration d'applications.

Il s'agit d'une excellente option car elle n'exige pas que l'utilisateur détienne des jetons AR, mais peut au contraire s'appuyer sur d'autres réseaux et jetons comme ETH, MATIC, Solana, Arbitrum, et bien d'autres pour payer les transactions.

Pour en savoir plus sur Bundlr, consultez la documentation ici.

Construire avec Arweave

Maintenant que nous avons une vue d'ensemble d'Arweave et que nous avons sécurisé nos jetons, construisons une application de base.

L'application que nous allons créer nous permettra de charger et de télécharger une chaîne de texte sur Arweave.

Il s'agit d'un exemple basique, mais d'un excellent "Hello world" car il passe en revue les outils et les API pour vous permettre de commencer à construire en peu de temps.

La première chose à faire est de créer une nouvelle application React à l'aide de create-react-app :

npx create-react-app

arweave-appcd arweave-app

Il y a deux façons principales d'appeler le réseau Arweave à partir de votre application :

  1. API HTTP - Le protocole Arweave est basé sur HTTP, donc tous les clients http existants peuvent être utilisés pour interagir avec le réseau, comme Axios ou Fetch.
  2. Arweave JS - Arweave JS est le SDK JavaScript/TypeScript permettant d'interagir avec le réseau Arweave et de télécharger des données sur le permaweb. Il fonctionne avec les derniers navigateurs et Node JS.

Le SDK JS d'Arweave est très intéressant et c'est ce que nous allons utiliser pour ce tutoriel.

Installons maintenant arweave-js en utilisant npm ou yarn :

npm install arweave

Réseau Arweave

Vous pouvez interagir avec le réseau Arweave de plusieurs manières :

  1. Devnet - arweave.dev
  2. Mainnet - https://arweave.net/
  3. Environnement local - Arlocal

Dans ce guide, nous commencerons par Arlocal, qui nous permettra d'envoyer des transactions de test gratuitement. Nous apprendrons également à utiliser le réseau principal pour effectuer une transaction réelle.

Arlocal

Pour tester localement, nous pouvons utiliser Arlocal, qui lancera un réseau local avec lequel nous pourrons interagir et auquel nous pourrons envoyer des transactions de test.

Vous n'avez même pas besoin de télécharger ou d'installer quoi que ce soit pour utiliser Arlocal, tant que vous avez Node.js installé sur votre machine, vous pouvez simplement démarrer une passerelle locale en exécutant :

npx arlocal

C'est tout ! Vous devriez maintenant avoir une passerelle Arweave locale sur http://localhost:1984.

Maintenant que vous avez une passerelle locale qui fonctionne, écrivons le code.

Ouvrez src/App.js et mettez à jour le fichier avec le code suivant :

import styles from '../styles/Home.module.css'

import { useState } from 'react'

import Arweave de 'arweave'

/ se connecter à un nœud Arweave ou spécifier une passerelle /

const arweave = Arweave.init({})

function App() {

const [state, setState] = useState('')

const [transactionId, setTransactionId] = useState('')

async function createTransaction() {

if (!state) return

essayer {

const formData = state

setState('')

/ crée et envoie la transaction à Arweave /

let transaction = await arweave.createTransaction({ data: formData })

await arweave.transactions.sign(transaction)

let uploader = await arweave.transactions.getUploader(transaction)

/ Indicateur de téléchargement /

while (!uploader.isComplete) {

await uploader.uploadChunk()

console.log(${uploader.pctComplete}% complete, ${uploader.uploadedChunks}/${uploader.totalChunks})

}

setTransactionId(transaction.id)

} catch (err) {

console.log('error : ', err)

}

}

async function readFromArweave() {

/ lire les données Arweave en utilisant n'importe quel ID de transaction /

arweave.transactions

.getData(transactionId, {

decode : true,

string : true,

})

.then((data) => {

console.log('data : ', data)

})

}

retourner (

<div className={styles.container}>

<button style={button} onClick={createTransaction}>

Créer une transaction

</button>

<button style={button} onClick={readFromArweave}>

Transaction de lecture

</button>

<input style={input} onChange={(e) => setState(e.target.value)} placeholder="text" value={state} />

</div>

)

}

const button = {

contour : "aucun",

bordure : '1px solid black',

couleur de fond : "blanc",

padding : '10px',

largeur : "200px",

marginBottom : 10,

curseur : 'pointeur',

}

const input = {

couleur de fond : "#ddd",

contour : "aucun",

bordure : "aucun",

largeur : "200px",

fontSize : '16px',

padding : '10px',

}

exporter l'application par défaut

Ensuite, démarrez l'application :

npm start

Lorsque l'application démarre, vous devriez voir un formulaire de base avec deux boutons.

Vous pouvez taper dans le formulaire les données que vous souhaitez sauvegarder, puis appuyer sur Créer une transaction pour sauvegarder le texte dans Arweave.

Une fois la transaction terminée, vous devriez voir un indicateur de progression connecté à la console indiquant que les données ont été sauvegardées.

Une fois les données sauvegardées, cliquez sur Lire la transaction pour lire les données d'Arweave.

Réseau de production Arweave

Pour interagir avec le réseau de production, il suffit de mettre à jour la configuration du réseau Arweave.

const arweave = Arweave.init({

hôte : 'arweave.net',

})

Code pour ce projet

Un exemple de base de code pour le projet que nous avons construit aujourd'hui est disponible ici.

Prochaines étapes

Pour en savoir plus sur Arweave, consultez la documentation d'Arweave, le Wiki d'Arweave et suivez-les sur Twitter.

À propos du nœud Edge &

Edge & Node est une société de développement de logiciels créatifs qui œuvre à la construction d'un avenir dynamique et décentralisé. Fondé par l'équipe à l'origine de The Graph, Edge & Node se consacre à l'avancement de l'internet décentralisé (web3) et à la prolifération d'applications minimisant la confiance. L'équipe possède une vaste expérience dans le développement et la maintenance de logiciels, d'outils et d'applications open source.

Le premier produit de Edge & Node est The Graph, un protocole d'indexation pour l'interrogation de réseaux tels qu'Ethereum et IPFS, qui garantit que les données ouvertes sont toujours disponibles et faciles d'accès. Le Graph est utilisé par des milliers de protocoles et d'applications, dont Uniswap, Livepeer, Aave, Decentraland, et bien d'autres. Edge & Node a également lancé Everest, le premier registre décentralisé de données sur la chaîne afin de fournir une utilité continue à la communauté cryptographique, catalysant le passage au web3.

Clause de non-responsabilité:

  1. Cet article est repris de[Edge & Node]. Tous les droits d'auteur appartiennent à l'auteur original[Nader Dabit]. Si vous avez des objections à cette réimpression, veuillez contacter l'équipe de Gate Learn, qui s'en chargera rapidement.
  2. Clause de non-responsabilité : Les points de vue et les opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent pas un conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe de Gate Learn. Sauf mention contraire, il est interdit de copier, distribuer ou plagier les articles traduits.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!