比特币节点有很多实现
bitcoin core:官方节点,c/c++实现,正式网络大多数都是用这个来运行全节点
btcd:golang的实现版本,如果用golang来写一些功能,可以参考这个代码
libbitcoin:c/c++实现,特点是它有较好的工具链
parity-bitcoin:rust实现,是以太坊创始人之一Gavin Wood的新公司Parity Technologies下的一个产品,它同样也实现了以太坊rust版本
还有很多其他实现,如java版本和js版本。如果用作商业用途,那bitcoin core必然是最稳妥的选择。所以这里选择了bitcoin core。
配置:
硬盘:500G。比特币从08年开始运行,已经积累了大量数据,区块链内容大小达210G。
内存:16G。一般来说4G就够,但如果要查历史记录,需要加载完整的交易索引表-tindex,这导致需要8G+的内存
cpu:4核。
带宽:一般就行。阿里云的一般2-3天就能同步完。
1. 下载Bitcoin Core
wget https://bitcoin.org/bin/bitcoin-core-0.18.1/bitcoin-0.18.1-x86_64-linux-gnu.tar.gz
2. 解压安装包
tar -zxvf bitcoin-0.18.1-x86_64-linux-gnu.tar.gz
3. 创建钱包目录
mkdir /data/btc/data
4. 配置Bitcoin客户端
vim ~/.bitcoin/bitcoin.conf
# 数据存储目录 datadir=/data/btc/data # 设置数据库缓存大小 dbcache=4000 # 交易索引 txindex=1 # RPC访问的用户和密码 rpcuser=rpc_username rpcpassword=rpc_password # 后台启动 daemon=1 # 开启JSON-RPC接口 server=1 rest=1 listen=1 # 在测试网络中运行,而不是在真正的比特币网络 testnet=1 [test] #RPC接口监听地址 必须放到 [test] 模块下 rpcbind=0.0.0.0 # 访问端口,通常是8332 必须放到 [test] 模块下 rpcport=8332 # 设置 gen=1 以尝试生成比特币(采矿) #gen=0 # 预生成如下数目的公匙和私匙,这样钱包备份便可以对已有的交易以及未来 # 多笔交易有效 #keypool=100# 每次您发送比特币的时候支付一个可选的额外的交易手续费。包含手续费的交易 # 会更快的被包含在新生成的货币块中,因此会更快生效 #paytxfee=0.00# 允许直接连接,实现“通过 IP 地址支付”功能 #allowreceivebyip=1# 用户界面选项: # 最小化启动比特币客户端 #min=1# 最小化到系统托盘 #minimizetotray=1
更多配置介绍参考: https://www.cnblogs.com/x-poior/p/9592263.html
5. 初始化Bitcoin客户端
./bitcoind #正式节点 ./bitcoind -testnet #测试节点,或者放到配置文件中 testnet=1 ./bitcoind -conf=/data/btc/.bitcoin/bitcoin.conf #指定特殊的配置文件
RPC操作
正式节点./bitcoin-cli 加其他参数 测试节点./bitcoin-cli -testnet 加其他参数 ,或者放到配置文件中 testnet=1 测试节点./bitcoin-cli -conf=/data/btc/.bitcoin/bitcoin.conf #指定特殊的配置文件
关闭bitcoin,一定要用以下命令,否则会有可能导致数据异常,需要重新同步数据
./bitcoin-cli stop
其他命令, 确保ntp服务是开启的,大多数区块链都要求开启。
# 查看网络状态: bitcoin-cli getnetworkinfo # 查看网络节点: bitcoin-cli getpeerinfo # 查看区块链信息:如同步进度、 bitcoin-cli getblockchaininfo # 查看所有命令 bitcoin-cli help
6. 同步区块链数据
7. 创建服务(可选)
sudo touch /etc/systemd/system/bitcoind.service sudo chmod 664 /etc/systemd/system/bitcoind.service sudo vi /etc/systemd/system/bitcoind.service
8. 启动Bitcoin服务(如果创建了服务文件)
sudo systemctl start bitcoind.service
9. 管理Bitcoin钱包
# 生成以 'm' 或 'n' 开头的Testnet地址 ./bitcoin-cli -conf=/data/btc/.bitcoin/bitcoin.conf getnewaddress "" "legacy" n2t7NPChCpissJoN8oCnW7o84LDY9QYA39 ./bitcoin-cli -conf=/data/btc/.bitcoin/bitcoin.conf dumpprivkey "n2t7NPChCpissJoN8oCnW7o84LDY9QYA39" cRhxB8pgVp4B7HEWzJ9FPA1f9rxadZEQQyZNpunaF7mPoemA362y bitcoin-cli getbalance #查询余额 bitcoin-cli getaddressinfo "你的比特币地址" #查询某个地址的余额
常用区块链水龙头:/?id=4100
安全性
确保服务器的防火墙设置正确,只允许受信任的IP地址访问RPC端口。
使用强大的RPC用户密码,并考虑设置rpcallowip
以限制允许连接到RPC服务器的IP地址。
注意
搭建全节点钱包需要较多的存储空间和带宽。
根据你的Linux发行版,步骤可能略有不同。
请根据Bitcoin Core的官方文档进行操作,以获取最新的安装和配置信息。
《本文》有 0 条评论