Es posible escribir en la cadena de bloques de bitcoin no solo las transacciones financieras, sino también casi cualquier dato. Los datos registrados en la cadena de bloques de Bitcoin se hacen públicos y es casi imposible eliminarlos o cambiarlos. Esta característica se puede usar, por ejemplo, para crear sitios descentralizados que no son susceptibles de ningún bloqueo.
Usando la biblioteca blockchaindata-lib, la escritura y lectura de datos en blockchain se puede organizar en solo unas pocas líneas de código.
Las herramientas
La biblioteca blockchaindata-lib está escrita en node.js. El código fuente con ejemplos está disponible en
github.com/3s3s/blockchaindata-lib github. Para agregar una biblioteca a su proyecto, simplemente ejecute un comando en la consola
npm install blockchaindata-lib
Para trabajar con blockchain, debe configurar el acceso RPC a la billetera de Bitcoin o un tenedor compatible con Bitcoin (Litecoin, Dogecoin, etc.). De forma predeterminada, blockchaindata-lib intentará acceder al servidor RPC con los siguientes detalles:
: http://127.0.0.1:18332 : rpc_btc_test : rpc_btc_password_test
Los valores predeterminados se pueden cambiar mediante la función de biblioteca
updateNetwork(url, user, password)
Por lo tanto, para trabajar con la biblioteca, lo primero que debe hacer es lanzar una billetera de prueba de Bitcoin:
- Descargue la billetera Bitcoin (o una bifurcación compatible).
- Cree el archivo ~ / .bitcoin / bitcoin.conf (o en Windows% APPDATA% / Bitcoin / bitcoin.conf)
- En el archivo bitcoin.conf, escriba la siguiente configuración
testnet=1 server=1 rpcbind=127.0.0.1 rpcallowip=127.0.0.1 rpcuser=rpc_btc_test rpcpassword=rpc_btc_password_test txindex=1
- Guarde los cambios en bitcoin.conf y ejecute bitcoind (o en windows bitcoin-qt.exe)
- Espera la sincronización de blockchain
Con la configuración anterior, la billetera se lanzará en la red de prueba de Bitcoin.
Registro de datos
En bitcoin, las transacciones en las que no hay gastos están prohibidas. Por lo tanto, antes de escribir algo en la cadena de bloques de Bitcoin, definitivamente tendrá que reponer su billetera. Los bitcoins para una red de prueba se pueden obtener de forma gratuita si busca en Google algo como "bitcoin testnet faucet". Cuando se repone la billetera, finalmente puede registrar datos.
La biblioteca tiene varias funciones para registrar datos:
SaveTextToBlockchain( dataString ) SaveJSONToBlockchain( objectJSON ) SaveFileToBlockchain( data )
En principio, lo que hacen estas funciones es claro por el nombre. Resultado de la función - Objeto
{resultado: <verdadero | falso>, mensaje: <cadena>, txid: <cadena>}
Considere un ejemplo de uso:
'use strict'; const blockchaindata = require('blockchaindata-lib') async function test1() { try {
Si este código se ejecuta sin errores, el hash de la transacción se mostrará en la consola. Puede leer los datos de este hash.
Lectura de datos
Para leer los datos registrados anteriormente en la cadena de bloques, solo necesita conocer el hash de la transacción. La billetera puede estar vacía, es decir, si solo desea leer los datos, entonces no es necesario reponer la billetera.
Ejemplo de código
'use strict'; const blockchaindata = require('blockchaindata-lib'); async function test2() {
Si este código funciona sin errores, el texto html de la página que guardé previamente en la cadena de bloques se mostrará en la consola.
Donde aplicar
En blockchain, por ejemplo, puede guardar un sitio estático. Este sitio será prácticamente imposible de eliminar o bloquear de alguna manera. Sin embargo, para leer dicho sitio, necesitará un software adicional: un nuevo navegador o extensión de navegador.
La extensión del navegador es la solución más fácil. Un ejemplo de tal extensión se puede encontrar aquí
github.com/3s3s/blockchaindataPuede descargar e instalar esta extensión para Firefox aquí:
yadi.sk/d/a3xM9BCepP4nBwDespués de la instalación, Firefox interceptará y procesará enlaces a sitios en el formato
http: // tbtc / <txid>
Por ejemplo, dicho enlace funcionará
http: // tbtc / 8af6633160b982a0b0b4d4962ad28e0d5b3dd97e05e27cc2dd64ec0c56820df5Efectividad
La biblioteca blockchaindata-lib comprime los datos antes de colocarlos en la cadena de bloques utilizando el algoritmo de desinflado, por lo que este método es especialmente efectivo para escribir documentos de texto. Durante las pruebas, logré escribir hasta 70 kb de datos comprimidos en la cadena de bloques. Aunque no hay restricciones en el tamaño de los datos entrantes, aparecen errores en conjuntos de datos grandes debido a la implementación interna del código bitcoin.
Al escribir datos en la cadena de bloques, también se debe tener en cuenta el componente financiero. Leer y escribir datos en la red de prueba de Bitcoin usando la biblioteca blockchaindata-lib es simple y gratuito. Sin embargo, si desea escribir datos en la red de trabajo de bitcoin, deberá tener en cuenta el precio distinto de cero de bitcoin.