达世币全节点


比特币全节点

<h5>环境</h5> <p>NodeJs</p> <h5>安装客户端</h5> <h5>安装bitcoin core客户端</h5> <pre><code>apt-get install software-properties-common apt-add-repository ppa:bitcoin/bitcoin apt-get update apt-get install bitcoind</code></pre> <p>但是bitcoin core的bitcoind不提供地址索引,所以我们使用bitcore-node,bitcore-node使用一个增加了地址索引的bitcoind,并在其上封装成nodejs库</p> <h5>安装bitcore-node</h5> <pre><code>npm install -g bitcore-node 安装bitcore-node时,会自动安装bitcoind,一般在./node_modules/bitcore-node/bin/bitcoind</code></pre> <p>同步全节点 安装bitcore-node后,在代码中</p> <pre><code>var bitcore = require('bitcore-node'); var Bitcoin = bitcore.services.Bitcoin; var node = new bitcore.Node({ network: 'livenet', //主网络,测试网为testnet services:[{ name: 'bitcoind', module: Bitcoin, config: { spawn: { datadir: '/root/.bitcoin/', //存放区块数据的目录 exec: './node_modules/bitcore-node/bin/bitcoind' //bitcoind程序的路径 } } }] });</code></pre> <p>//启动节点,节点成功启动之后,执行里面的回调函数 node.start(() =&gt; { //do something... }); 上面启动节点时,会调用 bitcoind --datadir='/root/.bitcoin/' --conf='/root/.bitcoin/bitcoin.conf' 所以还要在datadir里创建一个bitcoin.conf</p> <pre><code>server=1 whitelist=127.0.0.1 txindex=1 addressindex=1 timestampindex=1 spentindex=1 zmqpubrawtx=tcp://127.0.0.1:28332 zmqpubhashblock=tcp://127.0.0.1:28332 rpcallowip=127.0.0.1 rpcuser=bitcoin rpcpassword=local321 uacomment=bitcore</code></pre> <p>节点启动后就正常开始同步区块数据了 这种spawn模式,node退出会导致bitcoind退出 还有一种connect模式,这可以链接已经在运行的bitcoind程序,并且可以链接多个 是需要把上方代码中的config修改成</p> <pre><code>config: { connect: [{ "rpchost": "127.0.0.1", "rpcport": 8332, "rpcuser":"bitcoin", "rpcpassword": "local321", "zmqpubrawtx": "tcp://127.0.0.1:28332" }] }</code></pre> <p>但是启动node前需要手动运行bitcoind 开发 上面代码中的node提供了很多的方法可共调用</p> <pre><code>node.services.bitcoind.getAddressBalance node.services.bitcoind.sendTransaction</code></pre> <p>等等,详细内容可以查看bitcore文档 代码 /root/bitcoin_api/ 区块数据 /root/.bitcore/</p>

页面列表

ITEM_HTML