BTC全节点搭建
CentOS 7.4 64位系统 BTC全节点搭建
- 下载bitcoin core,目前版本为 0.17.1,下载地址为:
https://github.com/bitcoin/bitcoin/releases
2.在服务器新建目录 btc,目录名称自定义,我是建立在root目录下的,如下图。
将下载的文件上传到btc目录下,并解压,解压命令为:
tar -xzvf bitcoin-0.17.1-x86_64-linux-gnu.tar.gz
在btc 目录下运行该命令。
可以在btc目录下看到以下两个文件
源码就下载完成了。
3.建立区块链节点数据存储目录。(目前2019-3-7,BTC区块数据已达到200多个G,注意建立存储目录时要保证硬盘容量够大),本文是直接建立在源码文件解压文件 bitcoin-0.17.1下的,如图:
说明:data 是数据存储目录。
4.然后配置配置文件(配置文件可在本地写好之后上传也可在服务上新建)
,本文是在btc目录下新建的,如图:
bitcoin.conf 文件建立的位置可自定义,但是需要找到文件为位置。
bitcoin.conf 文件内容为(#号为注释符号):
# 数据存储目录(此路径为上面建立的数据储存路径的完整路径)
datadir=/root/btc/bitcoin-0.17.1/data
# 使用测试网络(0:正式网,1:测试网)
testnet=0
# 告知 Bitcoin-Qt 和 bitcoind 接受JSON-RPC命令(是否启用命令和接受RPC服务)
server=1
# 设置 gen=1 以尝试比特币挖矿
gen=0
# 后台执行(是否后台执行)
daemon=0
# 监听 RPC 链接,正式默认端口8333 测试默认18333(最好设置好,免得不清楚)
rpcport=8332
#RPC服务账号和密码,不设置的话是有默认密码的,本文没去深究默认,直接用自己设置的
rpcuser=123456
rpcpassword=abcdef
#允许那些IP访问RPC接口,以下写法为默认所有ip都可访问
rpcallowip=0.0.0.0/0
rpcconnect=127.0.0.1
更多配置可参考网址:https://www.mgchen.com/112.html
本文使用的是简易配置。
5.启动BTC节点程序, 本文没有启动后台运行程序,所以建议在服务器开个tmux 启动节点程序。命令为:
tmux new -s 1 说明:1为session 名字。
进入源码解压文件bitcoin-0.17.1,然后进入其下的bin目录,如图
在此目录下执行启动节点程序命令:
./bitcoind -conf=/root/btc/bitcoin.conf
说明:-conf=/root/btc/bitcoin.conf,此局就是说明按照此配置文件启动节点,文件路径为完完整的文件路径,上面已经说明,此路径可自定义设置,启动节点是需要写明完整路径即可。
启动成功后就会自动更新节点数据了。注意:启动BTC节点,包括bitcoin-cli 命令,rpc服务,区块数据同步。
5.使用bitcoin-cli命令
在bin目录执行
本文列举几个简易命令,其他命令可自行百度,或者通过help命令获取
# 查看网络状态:
./bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=123456 -rpcpassword=abcdef -rpcport=8332 getnetworkinfo
# 查看网络节点:
./bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=123456 -rpcpassword=abcdef -rpcport=8332 getpeerinfo
# 查看区块链信息:如同步进度、
./bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=123456 -rpcpassword=abcdef -rpcport=8332 getblockchaininfo
# 查看所有命令
./bitcoin-cli -rpcconnect=127.0.0.1 -rpcuser=123456 -rpcpassword=abcdef -rpcport=8332 help
注意:-rpcconnect=127.0.0.1 -rpcuser=123456 -rpcpassword=abcdef 这段为配置文件中的内容
6通过POST访问RPC服务;
第一个框为服务器地址及端口,第二个框为用户名和密码,此为配置文件bticoin.conf中设置的rpcuser和rpcpassword,然后写消息内容如图:
内容:
{
"method": "getblockhash",
"params": [0],
"id": "foo"
}
然后点击发送即可获取到对应的结果。更多请求可参考bitcoin的文档或者第三方翻译的文档。
Bitcoin文档:https://bitcoin.org/en/developer-reference#remote-procedure-calls-rpcs
第三方文档:https://blog.csdn.net/ffzhihua/article/details/80706122