编译安装准备
环境准备
以下兼在Linux
环境下
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3
sudo apt-get install libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev
创建文件夹
cd ~
mkdir btctest
cd btctest
创建数据目录
mkdir data
下载源码
git clone https://github.com/bitcoin/bitcoin.git
编译可执行文件
cd bitcoin/
./autogen.sh
./configure --disable-wallet
make
make install # optional
复制可执行文件到btctest/
mv /root/btctest/bitcoin/src/bitcoind /root/btctest/
mv /root/btctest/bitcoin/src/bitcoin-cli /root/btctest/
具体安装见https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
比特币配置文件准备
vi bitcoin.conf
将以下文本复制到bitcoin.conf
# 数据存储目录,此处为上面创建的`data`目录
datadir=/root/btctest/data
# 使用测试网络testnet为官方测试网络,需同步数据,regtest为私链
#testnet=1
regtest=1
# 告知 Bitcoin-Qt 和 bitcoind 接受JSON-RPC命令
server=1
listen=1
# 设置 gen=1 以尝试比特币挖矿
gen=1
# 后台执行
daemon=1
# txindex允许查询链上的交易数据
txindex=1
# reindex允许查询链上最新区块以前的交易数据
reindex=1
# 监听 RPC 链接,正式默认端口8333 测试默认18333
#rpcport=18332
#rpcbind=0.0.0.0
rpcuser=btc
rpcpassword=btcbtc
rpcallowip=0.0.0.0/0
rpcconnect=0.0.0.0/0
运行私链
启动节点
./bitcoind -conf=/root/btctest/bitcoin.conf -daemon
测试节点
启动节点
./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 getmininginfo
返回如下
{
"blocks": 251,
"difficulty": 4.656542373906925e-10,
"networkhashps": 0.0112999670417628,
"pooledtx": 3,
"chain": "regtest",
"warnings": "This is a pre-release test build - use at your own risk - do not use for mining or merchant applications"
}
PS:此处的18443
为私链模式的默认rpc
端口,-rpcuser=btc -rpcpassword=btcbtc
为bitcoin.conf
中设置的rpc
连接用户及密码
创建账户
创建新地址
./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 getnewaddress
返回如下
bcrt1qhc9geyzr8p5ztkwcr2g2d00kddax46uy0z02ey
导出私钥
./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 dumpprivkey bcrt1qhc9geyzr8p5ztkwcr2g2d00kddax46uy0z02ey
返回如下
cQudjfVEAgZiZm6aqz4UhdnyneVw34GS2iYCEzmUTDLSKNWA2NvA
挖矿
./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 generatetoaddress 101 bcrt1qhc9geyzr8p5ztkwcr2g2d00kddax46uy0z02ey
PS: 因为前100
个块没有奖励,挖不到比特币,所以此处选择挖矿101
查看余额
####### 按地址分组查询余额
./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 listaddressgroupings
返回
[
[
[
"bcrt1qp9gq52muvdzdmlhdd9xtg22vz7rfd033zewz4v",
39.99998000,
""
]
],
[
[
"bcrt1q7e2pdzpr50eftum29h9rtvfcj763hwq02jjlhr",
7459.99981000,
""
]
]
]
查询钱包余额
./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 getbalance "*" 6
返回
7379.99983000
转账
./bitcoin-cli -rpcuser=btc -rpcpassword=btcbtc -rpcport=18443 sendtoaddress "bcrt1qp9gq52muvdzdmlhdd9xtg22vz7rfd033zewz4v" 10
返回
a2a2eb18cb051b5fe896a32b1cb20b179d981554b6bd7c5a956e56a0eecb04f0
比特币rpc
文档
官方https://bitcoincore.org/en/doc/0.18.0/rpc/
中文http://cw.hubwiz.com/card/c/bitcoin-json-rpc-api/1/7/33/