February 5, 2026

¿Cómo almacenar datos en Blockchain?

¿Cómo almacenar datos en Blockchain?

¿Cómo almacenar datos en Blockchain?

¿Cómo almacenar datos en Blockchain?

La cantidad de datos que se pueden almacenar en cada transacción es limitada. Puedes almacenar grandes cantidades de datos dividiéndolos en pequeños lotes de datos. Sin embargo, dependiendo de los cargos de la red, esto puede ser costoso.

Una de las formas de almacenar datos en la cadena de bloques es mediante el uso de hash.

La función hash es un algoritmo que asigna datos de longitud variable a datos de longitud fija. Los datos de entrada son el contenido que se va a cifrar y la salida es una pequeña cantidad de información (hash) que lo dirige al archivo original. Cualquier cambio en el contenido generará un nuevo código hash. De esa manera podemos saber si los datos de entrada se han modificado simplemente mirando el hash.

La estructura hash es una secuencia de bits, generalmente representada en base hexadecimal.

Sabiendo esto, lo único que necesitamos almacenar en la cadena de bloques es el hash. En comparación con los datos de entrada, el hash es muy pequeño, por lo que el costo de una transacción es menor.

Los algoritmos hash más utilizados son:

También existe la posibilidad de guardar datos fuera de la cadena, manteniendo una conexión con blockchain a través de funciones hash.

Este es el caso con el IPFS(Inter-Planetary File System). Al igual que blockchain, hay una red pública donde todos pueden almacenar sus archivos. La diferencia es que no todos necesitan almacenar una copia de los datos. Ten en cuenta que solo hay disponible una cierta cantidad de archivos almacenados de forma redundante.

Los ejemplos en este tema utilizarán el lenguaje Python.

Hay diferentes formas de interactuar con blockchain, específicamente la plataforma Ethereum. Como discutimos anteriormente, no existe un sistema central desde el cual se puedan recuperar los datos. Los nodos interconectados, que comparten recursos entre sí, almacenan una copia verificada de los datos. La red ejecuta el protocolo Ethereum, que define las reglas para la interacción de nodos o contratos inteligentes.

Si deseas acceder a información inteligente sobre transacciones o contratos, debes conectarte a la red. Debido a esto, necesitaremos una biblioteca llamada web3py.

Web3py es una biblioteca de Python que se conecta a la plataforma Ethereum. Puedes consultar las instrucciones de instalación en la documentación.

Hay dos formas de interactuar con la plataforma Ethereum: localmente u online. El formulario local te permite ejecutar un nodo en tu ordenador. Necesitarás una herramienta como Geth para sincronizar la cadena de bloques con tu nodo local. La otra forma se puede lograr utilizando una API para la conexión.

Solo como demostración, utilizaremos Infura como medio de comunicación con Ethereum. Inicia sesión en el sitio y crea tu propia cuenta gratuita. Encontrarás varias redes para conectarte:

  • Mainnet: red principal de Ethereum;
  • Ropsten: Blockchain de prueba de trabajo que se parece más a la red central de Ethereum;
  • Kovan: Blockchain con prueba de autoridad. Creado por el equipo de Parity. El éter no puede extraerse, debe solicitarse;
  • Rinkeby: Blockchain con prueba de autoridad. Creado por el equipo de Geth. El éter no se puede extraer, se debe solicitar.

Las redes de prueba se utilizan para simular la red central de Ethereum. Esto brinda a los desarrolladores la capacidad de probar sus aplicaciones y resolver errores antes de la implementación final en la red central.

Usaré la red de prueba Rinkeby y para conectarme a ella es necesario tener una dirección, y la mejor manera de hacerlo es a través de Metamask.

Después de la creación de la cuenta, importaremos web3 y pasaremos la API de Infura a HTTPProvider.

from web3 import Web3web3 = Web3(Web3.HTTPProvider("https://rinkeby.infura.io/sua-api"))from web3.middleware import geth_poa_middlewareweb3.middleware_onion.inject(geth_poa_middleware, layer=0)

Para sumergirme en una aplicación real, solicitaremos y enviaremos datos de un contrato inteligente.

La aparición de un contrato inteligente puede seguir estos pasos: Código fuente -> Compilar -> Probar -> Implementar.

Como una forma de facilitar el ejemplo, ya he realizado estos pasos y el contrato está disponible en la red Rinkeby.

El contrato inteligente que vamos a utilizar garantiza la funcionalidad de almacenamiento de datos. El usuario puede guardar datos como una cadena y consultar todos los datos que ya se han almacenado.

Se requieren dos piezas de información para interactuar con el contrato:

  • Dirección — Dirección del contrato;
  • ABI — Interfaz con información del contrato.

Así que definamos estas dos informaciones en el código y hagamos la conexión al contrato.

La interfaz del contrato es bastante grande, pero puedes obtenerla desde este enlace.

contract_address = Web3.toChecksumAddress('0x9695aB55b976e22f025A1c25e99353EB9f3Ef2ca')abi = ''' cole aqui o código da interface '''my_contract = web3.eth.contract(address=contract_address, abi=abi)

Una vez que obtengamos el contrato, podemos almacenar información en la cadena de bloques. Enviaremos los datos a través de una transacción.

my_address = ''  # Seu endereço
private_key = '' # Sua chave privada
tx = myContract.functions.dataStorage("Hello, Blockchain!").buildTransaction()signed_tx = web3.eth.account.signTransaction(tx, private_key='private_key')web3.eth.sendRawTransaction(signed_tx.rawTransaction)

Tanto tu dirección como tu clave privada se pueden obtener de Metamask.

Tu clave privada no se debe compartir con nadie.

Para que se extraiga una transacción, toma un promedio de 15 segundos, por lo que después de ese tiempo verificaremos los datos que enviamos.

addedData = myContract.functions.getData().call()                       print(addedData)

Verás como salida una matriz que contiene la cadena enviada, si otros usuarios realizan transacciones, puedes ver que ya son datos transparentes.

Saída:['Hello, Blockchain!']

Simplemente almacena y solicita datos directamente desde blockhain. Esta es una aplicación básica con contratos inteligentes, pero con la misma idea es posible construir Dapps robustos para casos reales.

Published at Tue, 11 Feb 2020 09:12:36 +0000

{flickr|100|campaign}

Previous Article

How to Buy Bitcoin – 5 Quick and Simple Ways to Get Started

Next Article

Bitcoin Price Has Set $8.2K Floor, $100K Coming Before 2022 — Analyst

You might be interested in …