不仅可以将金融交易而且几乎所有数据都写入比特币的区块链。 记录在比特币区块链中的数据是公开的,几乎不可能删除或更改它。 例如,此功能可用于创建不适合任何阻止的分散站点。
使用blockchaindata-lib库,只需几行代码即可组织在blockchain上的数据读写。
工具
blockchaindata-lib库是用node.js编写的。 带有示例的源代码可在
github.com/3s3s/blockchaindata-lib github上找到。 要将库添加到项目中,只需在控制台中运行一个命令
npm install blockchaindata-lib
要使用区块链,您必须配置对比特币钱包或与比特币兼容的分叉(Litecoin,Dogecoin等)的RPC访问。 默认情况下,blockchaindata-lib将尝试通过以下详细信息访问RPC服务器:
: http://127.0.0.1:18332 : rpc_btc_test : rpc_btc_password_test
默认值可以通过库函数进行更改
updateNetwork(url, user, password)
因此,为了使用该库,您需要做的第一件事是启动一个比特币测试钱包:
- 下载比特币钱包(或兼容的叉子。)
- 创建〜/ .bitcoin / bitcoin.conf文件(或在Windows%APPDATA%/ Bitcoin / bitcoin.conf中)
- 在bitcoin.conf文件中,编写以下设置
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
- 将更改保存到bitcoin.conf并运行bitcoind(或在Windows bitcoin-qt.exe中)
- 等待区块链同步
通过以上设置,钱包将在比特币测试网络中启动。
数据记录
在比特币中,禁止没有费用的交易。 因此,在您向比特币区块链中写入内容之前,您肯定必须补充您的钱包。 如果您在Google上搜索“ bitcoin testnet faucet”之类的内容,则可以免费获得用于测试网络的比特币。 补充钱包后,您终于可以记录数据了。
该库具有几个用于记录数据的功能:
SaveTextToBlockchain( dataString ) SaveJSONToBlockchain( objectJSON ) SaveFileToBlockchain( data )
原则上,这些功能的作用从名称中就很清楚。 函数结果-对象
{结果:<true | false>,消息:<string>,txid:<string>}
考虑一个使用示例:
'use strict'; const blockchaindata = require('blockchaindata-lib') async function test1() { try {
如果执行此代码没有错误,则交易哈希将显示在控制台中。 您可以从此哈希读取数据。
读取数据
为了读取早先记录在区块链中的数据,您只需要知道交易的哈希值即可。 钱包可能是空的,也就是说,如果您只想读取数据,则无需补充钱包。
代码示例
'use strict'; const blockchaindata = require('blockchaindata-lib'); async function test2() {
如果此代码正常运行,那么我先前保存在区块链上的页面的html文本将显示在控制台中。
在哪里申请?
例如,在区块链中,您可以保存静态站点。 该站点实际上是无法删除或以某种方式阻止的。 但是,要阅读这样的网站,您将需要其他软件:新的浏览器或浏览器扩展。
浏览器扩展是最简单的解决方案。 可以在
github.com/3s3s/blockchaindata找到此类扩展的
示例您可以在此处下载并安装Firefox扩展程序:
yadi.sk/d/a3xM9BCepP4nBw安装后,Firefox将以以下格式拦截并处理指向网站的链接
http:// tbtc / <txid>
例如,这样的链接将适用于
http:// tbtc / 8af6633160b982a0b0b4d4962ad28e0d5b3dd97e05e27cc2dd64ec0c56820df5实效
由于使用deflate算法,blockchaindata-lib库在压缩数据之前先将其压缩,因此该方法对于编写文本文档特别有效。 在测试期间,我设法将多达70 kb的压缩数据写入区块链。 尽管对传入数据的大小没有限制,但是由于内部实施了比特币代码,因此出现了大数据集错误。
在将数据写入区块链时,还必须考虑财务要素。 使用blockchaindata-lib库读取和写入数据到比特币测试网络既简单又免费。 但是,如果您想将数据写入工作中的比特币网络,那么您将需要考虑比特币的非零价格。