Construyendo con Arweave, un protocolo de datos permanente y descentralizado

Principiante1/10/2024, 6:28:38 PM
Este artículo se centrará en el almacenamiento y la recuperación de archivos, y no en ejecutar su propia puerta de enlace Arweave de producción.

Presentamos Building on web3: una nueva serie de blogs de Edge & Node cuyo objetivo es familiarizar a los desarrolladores con los protocolos, las herramientas y las mejores prácticas para desarrollar en el creciente espacio web3. Building on web3 destacará las tecnologías y proyectos emergentes en el ecosistema web3 para ayudar a crear una receta para el éxito de los desarrolladores de dapp.

En esta publicación aprenderás qué es Arweave , por qué creo que es importante y cómo puedes empezar a construir con él. Esta publicación se centrará en el almacenamiento y la recuperación de archivos, y no en ejecutar su propia puerta de enlace Arweave de producción.

Arweave es una capa de almacenamiento de archivos y datos global, permanente y descentralizada.

Para mí, lo revolucionario de Arweave es el hecho de que puedo almacenar algo una vez y esperar que esté disponible para siempre sin tener que volver a pagar nada o sin tener que preocuparme de que desaparezca.

Compare esto con las soluciones de almacenamiento centralizadas tradicionales en las que, si olvida pagar su factura un mes, lo retirarán o, peor aún, usted u otra persona eliminará accidentalmente sus datos por completo.

Esta permanencia de los datos es especialmente importante en web3, donde estamos construyendo una infraestructura de aplicaciones inmutable. Los datos de Blockchain por naturaleza ya son inmutables, pero a menudo se ve a los desarrolladores almacenar datos fuera de la cadena de maneras que no se adhieren a las mejores prácticas de descentralización o inmutabilidad.

Por ejemplo, en el token no fungible, o espacio NFT, algunos desarrolladores utilizan servicios de alojamiento centralizados para almacenar metadatos de tokens. Esto rompe las importantes propiedades de seguridad requeridas para la inmutabilidad, así como la idea de lo que representa una NFT en primer lugar.

Si los metadatos no son permanentes, no hay garantía de que la propiedad que representa el token seguirá existiendo en el futuro. Esto significa que la integridad del token está en juego si los metadatos no se almacenan en un protocolo de almacenamiento de archivos permanente como Arweave, y por qué es tan importante que existan tecnologías como esta.

Dentro del ecosistema The Graph, también estamos creando soporte e integraciones para Arweave porque reconocemos el valor del protocolo para crear aplicaciones web3 verdaderamente descentralizadas.

Acerca de Arweave

Arweave se basa en dos tecnologías: blockweave, un derivado de blockchain, y 'Prueba de acceso'.

Blockweave es la tecnología que impulsa a Arweave. Al igual que una cadena de bloques, el tejido de bloques es una colección vinculada de bloques de datos, que se vinculan a bloques anteriores escritos en la red.

El mecanismo de consenso utilizado para facilitar el almacenamiento de datos seguro y descentralizado en Arweave se llama "Prueba de acceso". Este mecanismo es más eficiente y respetuoso con el medio ambiente que la prueba de trabajo, porque los mineros no necesitan almacenar todos los bloques. Gracias a esto, se ahorra una enorme cantidad de electricidad y los mineros aún pueden llegar a un consenso. Además, a medida que la red se expande, el consumo eléctrico disminuye.

Empezando con Arweave

Hay dos formas de empezar a utilizar los tokens Arweave

1. Descargue una billetera Arweave

Puede comenzar con una nueva billetera y obtener una fracción de los tokens Arweave utilizando el grifo de prueba de Arweave.

Una vez que lo verifiques, se te debe dar 0.1 AR para que puedas comenzar a probar Arweave en tu aplicación.

2. Una billetera de navegador

Es posible que haya utilizado navegadores y billeteras móviles como Metamask o Phantom que le permiten interactuar con aplicaciones web3 directamente desde una aplicación. Arweave tiene una billetera similar, llamada Arconnect.

Puede instalarlo directamente como una extensión de Chrome y comenzar a interactuar con aplicaciones web que utilizan Arweave.

Desde allí, puede financiar la billetera con tokens de cualquiera de sus intercambios admitidos o puede importar su billetera creada en el paso anterior.

Para seguir este tutorial, no necesitará ningún token, pero deberá tener instalada la billetera del navegador Arconnect.

paquete

Además de la técnica que cubriremos en este tutorial, puede optar por utilizar Bundlr , que habilita el soporte nativo para el almacenamiento de Arweave en diferentes cadenas de bloques de contratos inteligentes, así como SDK del lado del cliente y del servidor para la integración de aplicaciones.

Esta es una excelente opción porque no requiere que el usuario tenga tokens AR, sino que puede confiar en otras redes y tokens como ETH, MATIC, Solana, Arbitrum y muchos otros para pagar las transacciones.

Para obtener más información sobre Bundlr, consulte la documentación aquí.

Construyendo con Arweave

Ahora que tenemos una descripción general de Arweave y hemos asegurado nuestros tokens, creemos una aplicación básica.

La aplicación que crearemos nos permitirá cargar y descargar una cadena de texto en Arweave.

Este es un ejemplo básico, pero un excelente "Hola mundo" porque recorre las herramientas y API para que puedas comenzar a construir en un corto período de tiempo.

Lo primero que haremos será crear una nueva aplicación React usando create-react-app:

npx crear-reaccionar-aplicación

aplicación-arweavecd aplicación-arweave

Hay dos formas principales de llamar a la red Arweave desde su aplicación:

  1. API HTTP : el protocolo Arweave se basa en HTTP, por lo que se puede utilizar cualquier cliente http existente para interactuar con la red, como Axios o Fetch.
  2. Arweave JS : Arweave JS es el SDK de JavaScript/TypeScript para interactuar con la red Arweave y cargar datos en permaweb. Funciona en los navegadores más recientes y en Node JS.

El SDK de Arweave JS es muy bueno y es lo que usaremos para este tutorial.

Ahora instalemos arweave-js usando npm o hilo:

npm instala el tejido arweave

Red de tejido

Hay algunas formas de interactuar con la red Arweave:

  1. Devnet - arweave.dev
  2. Red principal: https://arweave.net/
  3. Entorno local - Arlocal

En esta guía, comenzaremos con Arlocal, que nos permitirá enviar transacciones de prueba de forma gratuita. También aprenderemos cómo usar mainnet para enviar una transacción real.

arlocal

Para realizar pruebas localmente, podemos usar Arlocal, que ejecutará una red local con la que podemos interactuar y enviar transacciones de prueba.

Ni siquiera necesita descargar ni instalar nada para usar Arlocal, siempre que tenga Node.js instalado en su máquina, puede iniciar una puerta de enlace local ejecutando:

npx local

¡Eso es todo! Ahora deberías estar ejecutando una puerta de enlace local de Arweave en http://localhost:1984

Ahora que tiene una puerta de enlace local en ejecución, escribamos el código.

Abra src/App.js y actualice el archivo con el siguiente código:

importar estilos desde '../styles/Home.module.css'

importar { useState } desde 'reaccionar'

importar Arweave desde 'arweave'

/ conectarse a un nodo Arweave o especificar una puerta de enlace /

const arweave = Arweave.init({})

función aplicación() {

const [estado, establecerEstado] = usarEstado('')

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

función asíncrona createTransaction() {

si (!estado) regresa

intentar {

constante formData = estado

establecer estado('')

/ crea y envía transacción a Arweave /

dejar transacción = esperar arweave.createTransaction ({ data: formData })

await arweave.transactions.sign(transacción)

let uploader = esperar arweave.transactions.getUploader(transacción)

/ indicador de carga /

mientras (!uploader.isComplete) {

espera uploader.uploadChunk()

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

}

setTransactionId(transacción.id)

} captura (errar) {

console.log('error: ', errar)

}

}

función asíncrona readFromArweave() {

/ leer datos de Arweave utilizando cualquier ID de transacción /

arweave.transacciones

.getData(ID de transacción, {

decodificar: verdadero,

cadena: verdadero,

})

.entonces((datos) => {

console.log('datos: ', datos)

})

}

devolver (

<nombre de clase div={styles.container}>

<estilo de botón={button} al hacer clic={createTransaction}>

Crear transacción

</button></botón>

<estilo de botón={button} al hacer clic={readFromArweave}>

Leer transacción

</button></botón>

<estilo de entrada={input} onChange={(e) => setState(e.target.value)} marcador de posición=”texto” valor={state} />

</div>

)

}

botón constante = {

esquema: 'ninguno',

borde: '1px negro sólido',

Color de fondo: 'blanco',

relleno: '10px',

ancho: '200px',

margen inferior: 10,

cursor: 'puntero',

}

entrada constante = {

Color de fondo: '#ddd',

esquema: 'ninguno',

borde: 'ninguno',

ancho: '200px',

Tamaño de fuente: '16px',

relleno: '10px',

}

exportar aplicación predeterminada

A continuación, inicie la aplicación:

inicio de npm

Cuando se inicie la aplicación, debería ver un formulario de entrada básico con dos botones.

Puede escribir en el formulario los datos que desea guardar y luego presionar Crear transacción para guardar el texto en Arweave.

Una vez que se completa la transacción, debería ver un indicador de progreso al cerrar sesión en la consola que indica que los datos se han guardado.

Una vez guardados los datos, haga clic en Leer transacción para leer los datos de Arweave.

Red de producción de Arweave

Para interactuar con la red de producción, solo necesita actualizar la configuración de la red Arweave.

const arweave = Arweave.init({

anfitrión: 'arweave.net',

})

Código para este proyecto

Una base de código de ejemplo para el proyecto que creamos hoy está disponible aquí.

Próximos pasos

Para obtener más información sobre Arweave, consulte los documentos de Arweave, Arweave Wiki y sígalos en Twitter.

Acerca de Edge y Nodo

Edge & Node es una empresa de desarrollo de software creativo que trabaja para construir un futuro vibrante y descentralizado. Fundada por el equipo inicial detrás de The Graph, Edge & Node se dedica al avance de Internet descentralizado (web3) y la proliferación de aplicaciones de confianza minimizada. El equipo tiene una amplia experiencia en el desarrollo y mantenimiento de software, herramientas y aplicaciones de código abierto. .

El producto inicial de Edge & Node es The Graph, un protocolo de indexación para consultar redes como Ethereum e IPFS, que garantiza que los datos abiertos estén siempre disponibles y sean de fácil acceso. Graph es utilizado por miles de protocolos y dapps, incluidos Uniswap, Livepeer, Aave, Decentraland y más. Edge & Node también lanzó Everest, el primer registro descentralizado de datos en cadena para brindar utilidad continua a la comunidad criptográfica, catalizando el cambio a web3.

Descargo de responsabilidad:

  1. Este artículo se reimprime de [Edge & Node]. Todos los derechos de autor pertenecen al autor original [Nader Dabit]. Si hay objeciones a esta reimpresión, comuníquese con el equipo de Gate Learn y ellos lo manejarán de inmediato.
  2. Descargo de responsabilidad: los puntos de vista y opiniones expresados en este artículo son únicamente los del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas están a cargo del equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

Construyendo con Arweave, un protocolo de datos permanente y descentralizado

Principiante1/10/2024, 6:28:38 PM
Este artículo se centrará en el almacenamiento y la recuperación de archivos, y no en ejecutar su propia puerta de enlace Arweave de producción.

Presentamos Building on web3: una nueva serie de blogs de Edge & Node cuyo objetivo es familiarizar a los desarrolladores con los protocolos, las herramientas y las mejores prácticas para desarrollar en el creciente espacio web3. Building on web3 destacará las tecnologías y proyectos emergentes en el ecosistema web3 para ayudar a crear una receta para el éxito de los desarrolladores de dapp.

En esta publicación aprenderás qué es Arweave , por qué creo que es importante y cómo puedes empezar a construir con él. Esta publicación se centrará en el almacenamiento y la recuperación de archivos, y no en ejecutar su propia puerta de enlace Arweave de producción.

Arweave es una capa de almacenamiento de archivos y datos global, permanente y descentralizada.

Para mí, lo revolucionario de Arweave es el hecho de que puedo almacenar algo una vez y esperar que esté disponible para siempre sin tener que volver a pagar nada o sin tener que preocuparme de que desaparezca.

Compare esto con las soluciones de almacenamiento centralizadas tradicionales en las que, si olvida pagar su factura un mes, lo retirarán o, peor aún, usted u otra persona eliminará accidentalmente sus datos por completo.

Esta permanencia de los datos es especialmente importante en web3, donde estamos construyendo una infraestructura de aplicaciones inmutable. Los datos de Blockchain por naturaleza ya son inmutables, pero a menudo se ve a los desarrolladores almacenar datos fuera de la cadena de maneras que no se adhieren a las mejores prácticas de descentralización o inmutabilidad.

Por ejemplo, en el token no fungible, o espacio NFT, algunos desarrolladores utilizan servicios de alojamiento centralizados para almacenar metadatos de tokens. Esto rompe las importantes propiedades de seguridad requeridas para la inmutabilidad, así como la idea de lo que representa una NFT en primer lugar.

Si los metadatos no son permanentes, no hay garantía de que la propiedad que representa el token seguirá existiendo en el futuro. Esto significa que la integridad del token está en juego si los metadatos no se almacenan en un protocolo de almacenamiento de archivos permanente como Arweave, y por qué es tan importante que existan tecnologías como esta.

Dentro del ecosistema The Graph, también estamos creando soporte e integraciones para Arweave porque reconocemos el valor del protocolo para crear aplicaciones web3 verdaderamente descentralizadas.

Acerca de Arweave

Arweave se basa en dos tecnologías: blockweave, un derivado de blockchain, y 'Prueba de acceso'.

Blockweave es la tecnología que impulsa a Arweave. Al igual que una cadena de bloques, el tejido de bloques es una colección vinculada de bloques de datos, que se vinculan a bloques anteriores escritos en la red.

El mecanismo de consenso utilizado para facilitar el almacenamiento de datos seguro y descentralizado en Arweave se llama "Prueba de acceso". Este mecanismo es más eficiente y respetuoso con el medio ambiente que la prueba de trabajo, porque los mineros no necesitan almacenar todos los bloques. Gracias a esto, se ahorra una enorme cantidad de electricidad y los mineros aún pueden llegar a un consenso. Además, a medida que la red se expande, el consumo eléctrico disminuye.

Empezando con Arweave

Hay dos formas de empezar a utilizar los tokens Arweave

1. Descargue una billetera Arweave

Puede comenzar con una nueva billetera y obtener una fracción de los tokens Arweave utilizando el grifo de prueba de Arweave.

Una vez que lo verifiques, se te debe dar 0.1 AR para que puedas comenzar a probar Arweave en tu aplicación.

2. Una billetera de navegador

Es posible que haya utilizado navegadores y billeteras móviles como Metamask o Phantom que le permiten interactuar con aplicaciones web3 directamente desde una aplicación. Arweave tiene una billetera similar, llamada Arconnect.

Puede instalarlo directamente como una extensión de Chrome y comenzar a interactuar con aplicaciones web que utilizan Arweave.

Desde allí, puede financiar la billetera con tokens de cualquiera de sus intercambios admitidos o puede importar su billetera creada en el paso anterior.

Para seguir este tutorial, no necesitará ningún token, pero deberá tener instalada la billetera del navegador Arconnect.

paquete

Además de la técnica que cubriremos en este tutorial, puede optar por utilizar Bundlr , que habilita el soporte nativo para el almacenamiento de Arweave en diferentes cadenas de bloques de contratos inteligentes, así como SDK del lado del cliente y del servidor para la integración de aplicaciones.

Esta es una excelente opción porque no requiere que el usuario tenga tokens AR, sino que puede confiar en otras redes y tokens como ETH, MATIC, Solana, Arbitrum y muchos otros para pagar las transacciones.

Para obtener más información sobre Bundlr, consulte la documentación aquí.

Construyendo con Arweave

Ahora que tenemos una descripción general de Arweave y hemos asegurado nuestros tokens, creemos una aplicación básica.

La aplicación que crearemos nos permitirá cargar y descargar una cadena de texto en Arweave.

Este es un ejemplo básico, pero un excelente "Hola mundo" porque recorre las herramientas y API para que puedas comenzar a construir en un corto período de tiempo.

Lo primero que haremos será crear una nueva aplicación React usando create-react-app:

npx crear-reaccionar-aplicación

aplicación-arweavecd aplicación-arweave

Hay dos formas principales de llamar a la red Arweave desde su aplicación:

  1. API HTTP : el protocolo Arweave se basa en HTTP, por lo que se puede utilizar cualquier cliente http existente para interactuar con la red, como Axios o Fetch.
  2. Arweave JS : Arweave JS es el SDK de JavaScript/TypeScript para interactuar con la red Arweave y cargar datos en permaweb. Funciona en los navegadores más recientes y en Node JS.

El SDK de Arweave JS es muy bueno y es lo que usaremos para este tutorial.

Ahora instalemos arweave-js usando npm o hilo:

npm instala el tejido arweave

Red de tejido

Hay algunas formas de interactuar con la red Arweave:

  1. Devnet - arweave.dev
  2. Red principal: https://arweave.net/
  3. Entorno local - Arlocal

En esta guía, comenzaremos con Arlocal, que nos permitirá enviar transacciones de prueba de forma gratuita. También aprenderemos cómo usar mainnet para enviar una transacción real.

arlocal

Para realizar pruebas localmente, podemos usar Arlocal, que ejecutará una red local con la que podemos interactuar y enviar transacciones de prueba.

Ni siquiera necesita descargar ni instalar nada para usar Arlocal, siempre que tenga Node.js instalado en su máquina, puede iniciar una puerta de enlace local ejecutando:

npx local

¡Eso es todo! Ahora deberías estar ejecutando una puerta de enlace local de Arweave en http://localhost:1984

Ahora que tiene una puerta de enlace local en ejecución, escribamos el código.

Abra src/App.js y actualice el archivo con el siguiente código:

importar estilos desde '../styles/Home.module.css'

importar { useState } desde 'reaccionar'

importar Arweave desde 'arweave'

/ conectarse a un nodo Arweave o especificar una puerta de enlace /

const arweave = Arweave.init({})

función aplicación() {

const [estado, establecerEstado] = usarEstado('')

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

función asíncrona createTransaction() {

si (!estado) regresa

intentar {

constante formData = estado

establecer estado('')

/ crea y envía transacción a Arweave /

dejar transacción = esperar arweave.createTransaction ({ data: formData })

await arweave.transactions.sign(transacción)

let uploader = esperar arweave.transactions.getUploader(transacción)

/ indicador de carga /

mientras (!uploader.isComplete) {

espera uploader.uploadChunk()

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

}

setTransactionId(transacción.id)

} captura (errar) {

console.log('error: ', errar)

}

}

función asíncrona readFromArweave() {

/ leer datos de Arweave utilizando cualquier ID de transacción /

arweave.transacciones

.getData(ID de transacción, {

decodificar: verdadero,

cadena: verdadero,

})

.entonces((datos) => {

console.log('datos: ', datos)

})

}

devolver (

<nombre de clase div={styles.container}>

<estilo de botón={button} al hacer clic={createTransaction}>

Crear transacción

</button></botón>

<estilo de botón={button} al hacer clic={readFromArweave}>

Leer transacción

</button></botón>

<estilo de entrada={input} onChange={(e) => setState(e.target.value)} marcador de posición=”texto” valor={state} />

</div>

)

}

botón constante = {

esquema: 'ninguno',

borde: '1px negro sólido',

Color de fondo: 'blanco',

relleno: '10px',

ancho: '200px',

margen inferior: 10,

cursor: 'puntero',

}

entrada constante = {

Color de fondo: '#ddd',

esquema: 'ninguno',

borde: 'ninguno',

ancho: '200px',

Tamaño de fuente: '16px',

relleno: '10px',

}

exportar aplicación predeterminada

A continuación, inicie la aplicación:

inicio de npm

Cuando se inicie la aplicación, debería ver un formulario de entrada básico con dos botones.

Puede escribir en el formulario los datos que desea guardar y luego presionar Crear transacción para guardar el texto en Arweave.

Una vez que se completa la transacción, debería ver un indicador de progreso al cerrar sesión en la consola que indica que los datos se han guardado.

Una vez guardados los datos, haga clic en Leer transacción para leer los datos de Arweave.

Red de producción de Arweave

Para interactuar con la red de producción, solo necesita actualizar la configuración de la red Arweave.

const arweave = Arweave.init({

anfitrión: 'arweave.net',

})

Código para este proyecto

Una base de código de ejemplo para el proyecto que creamos hoy está disponible aquí.

Próximos pasos

Para obtener más información sobre Arweave, consulte los documentos de Arweave, Arweave Wiki y sígalos en Twitter.

Acerca de Edge y Nodo

Edge & Node es una empresa de desarrollo de software creativo que trabaja para construir un futuro vibrante y descentralizado. Fundada por el equipo inicial detrás de The Graph, Edge & Node se dedica al avance de Internet descentralizado (web3) y la proliferación de aplicaciones de confianza minimizada. El equipo tiene una amplia experiencia en el desarrollo y mantenimiento de software, herramientas y aplicaciones de código abierto. .

El producto inicial de Edge & Node es The Graph, un protocolo de indexación para consultar redes como Ethereum e IPFS, que garantiza que los datos abiertos estén siempre disponibles y sean de fácil acceso. Graph es utilizado por miles de protocolos y dapps, incluidos Uniswap, Livepeer, Aave, Decentraland y más. Edge & Node también lanzó Everest, el primer registro descentralizado de datos en cadena para brindar utilidad continua a la comunidad criptográfica, catalizando el cambio a web3.

Descargo de responsabilidad:

  1. Este artículo se reimprime de [Edge & Node]. Todos los derechos de autor pertenecen al autor original [Nader Dabit]. Si hay objeciones a esta reimpresión, comuníquese con el equipo de Gate Learn y ellos lo manejarán de inmediato.
  2. Descargo de responsabilidad: los puntos de vista y opiniones expresados en este artículo son únicamente los del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas están a cargo del equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
Empieza ahora
¡Regístrate y recibe un bono de
$100
!