主页 > imtoken.im官网 > 比特币钱包控制台命令搭建比特币私链开发环境

比特币钱包控制台命令搭建比特币私链开发环境

imtoken.im官网 2023-09-26 05:13:45

最近因为比特币钱包功能相关的开发工作,在搭建环境的时候遇到了一些坑,记录下来以备不时之需。

比特币系统中存在三个独立的网络链系统:比特币主链系统、测试链系统和回归测试链系统。 主链系统是运行在生产环境中的网络,也是矿工工作的网络。 测试链系统也是运行在公网上的节点比特币软件控制台,但是节点数量比较少,仅用于在线测试。 回归测试链系统常用于开发调试,也就是这里所说的“私有链”。 您的所有操作只能在本地生效,不会影响线上。

这三个网络系统其实使用的是同一个运行程序,只是启动时需要配置的参数不同,后面会提到。

1.安装依赖

在编译源码之前,我们需要先安装依赖,否则编译源码时会出现各种错误。 我使用的是Ubuntu 18.04 LTS系统,安装依赖的脚本如下:

apt-get  install make
apt-get  install gcc
apt-get  install g++
apt-get  install zlib1g-dev
apt-get  install libssl-dev
apt-get  install build-essential
apt-get  install libminiupnpc-dev
apt-get  install autoconf
apt-get  install libdb5.3++-dev
apt-get  install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
apt-get  install libboost-all-dev
apt-get  install gcc-multilib
apt-get  install libprotobuf-dev
apt-get  install libevent-dev
apt-get  install protobuf-compiler

比特币块存储需要依赖DB 4.8,所以需要安装DB

wget http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz
tar xvpzf db-4.8.30.tar.gz
cd db-4.8.30/build_unix
../dist/configure --enable-cxx
make -j8

100台电脑挖一个比特币要挖多久_比特币行情实时走势图比特币行情_比特币软件控制台

sudo make install

安装玩完记得导出环境路径,不然编译器不知道去哪个目录找相关的类库。 默认安装路径是/usr/local/。 4.8

export BDB_CFLAGS=/usr/local/BerkeleyDB.4.8/

2.编译安装比特币源码

首先需要去Bitcoin的github仓库下载源码

git clone https://github.com/bitcoin/bitcoin.git

这里需要注意的是,克隆代码后,需要对安装的代码进行拆分编译。 比如我要编译的版本是0.17,那么需要把代码版本切换到0.17

git checkout 0.17

下一步是配置(检查依赖项)、编译和安装:

./configure --prefix=/usr/local/bitcoin --enable-wallet
make && sudo make install

--prefix是配置安装的路径,--enable-wallet表示开启钱包功能

C++编译速度有点慢,源码有点多。 建议中午下班开始编译,下楼吃个饭,下班回来。 编译快完成了,等待并不痛苦。

安装完成后,还需要在环境路径中添加相关的可执行文件。 这里我们创建一个软链接就好了。

sudo ln -s /usr/local/bitcoin/bin/bitcoind /usr/local/bin/bitcoind  
sudo ln -s /usr/local/bitcoin/bin/bitcoin-cli /usr/local/bin/bitcoin-cli  

3.启动节点

上面我们说了,Bit有三个网络比特币钱包控制台命令,主网、测试网和本地网。下面分别说一下如何启动这三个网络

启动主网节点: - 守护进程启动后,会通过内置地址搜索其他节点。

比特币行情实时走势图比特币行情_100台电脑挖一个比特币要挖多久_比特币软件控制台

启动测试网节点:-testnet -daemon 启动后,也会去P2P学习根据其他节点内置地址链接其他节点。

启动本地私有节点:-regtest -daemon 启动后为本地私有节点,不会同步数据。

但是我们在启动节点的时候,还要指定一些其他的参数,比如端口,块数据存储地址,rpc用户名和密码等等。所以一个标准的启动脚本应该是这样的

bitcoind -testnet -datadir=/data/bitcoin/ -rpcuser=user -rpcpassword=password -rpcport=8332 -daemon

当然你还可以设置很多其他的参数,以下是可选参数:

常规选项

 -conf=     指定配置文件(默认:bitcoin.conf)
  -pid=      指定 pid (进程 ID)文件(默认:bitcoind.pid)
  -gen               生成比特币
  -gen=0             不生成比特币
  -min               启动时最小化
  -splash            启动时显示启动屏幕(默认:1)
  -datadir=  指定数据目录
  -dbcache=       设置数据库缓存大小,单位为兆字节(MB)(默认:25)
  -dblogsize=     设置数据库磁盘日志大小,单位为兆字节(MB)(默认:100)
  -timeout=       设置连接超时,单位为毫秒
  -proxy=   通过 Socks4 代理链接
  -dns               addnode 允许查询 DNS 并连接
  -port=       监听  上的连接(默认:8333,测试网络 testnet:18333)
  -maxconnections=  最多维护 个节点连接(默认:125)
  -addnode=      添加一个节点以供连接,并尝试保持与该节点的连接
  -connect=      仅连接到这里指定的节点
  -irc               使用 IRC(因特网中继聊天)查找节点(默认:0)
  -listen            接受来自外部的连接(默认:1)

100台电脑挖一个比特币要挖多久_比特币软件控制台_比特币行情实时走势图比特币行情

-dnsseed 使用 DNS 查找节点(默认:1) -banscore= 与行为异常节点断开连接的临界值(默认:100) -bantime= 重新允许行为异常节点连接所间隔的秒数(默认:86400) -maxreceivebuffer= 最大每连接接收缓存,*1000 字节(默认:10000) -maxsendbuffer= 最大每连接发送缓存,*1000 字节(默认:10000) -upnp 使用全局即插即用(UPNP)映射监听端口(默认:0) -detachdb 分离货币块和地址数据库。会增加客户端关闭时间(默认:0) -paytxfee= 您发送的交易每 KB 字节的手续费 -testnet 使用测试网络 -debug 输出额外的调试信息 -logtimestamps 调试信息前添加时间戳 -printtoconsole 发送跟踪/调试信息到控制台而不是 debug.log 文件 -printtodebugger 发送跟踪/调试信息到调试器 -rpcuser= JSON-RPC 连接使用的用户名 -rpcpassword= JSON-RPC 连接使用的密码 -rpcport= JSON-RPC 连接所监听的 (默认:8332) -rpcallowip= 允许来自指定 地址的 JSON-RPC 连接 -rpcconnect= 发送命令到运行在 地址的节点(默认:127.0.0.1) -blocknotify= 当最好的货币块改变时执行命令(命令中的 %s 会被替换为货币块哈希值) -upgradewallet 将钱包升级到最新的格式 -keypool= 将密匙池的尺寸设置为 (默认:100) -rescan 重新扫描货币块链以查找钱包丢失的交易 -checkblocks= 启动时检查多少货币块(默认:2500,0 表示全部) -checklevel= 货币块验证的级别(0-6,默认:1)

比特币行情实时走势图比特币行情_100台电脑挖一个比特币要挖多久_比特币软件控制台

SSL选项

-rpcssl                                  使用 OpenSSL(https)JSON-RPC 连接
-rpcsslcertificatechainfile=<文件.cert>  服务器证书文件(默认:server.cert)
-rpcsslprivatekeyfile=<文件.pem>         服务器私匙文件(默认:server.pem)
-rpcsslciphers=<密码>                    可接受的密码(默认:TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)

4.测试节点

通过“bitcoin-cli”执行系统相关命令。 需要注意的是,在执行bitcoin-cli的时候,还需要加上指定的数据路径,-rpcuser-等参数比特币软件控制台,比如:

创建地址

bitcoin-cli -regtest -datadir=/data/bitcoin -rpcuser=user -rpcpassword=password -rpcport=8332 getnewaddress
2NDCCiQ2vYhW74pazBGhFzT6oAz539ZrhAS

如果觉得每次输入这么长的命令很麻烦,可以在/usr/local/bin下新建一个脚本bitcoin-cli(如果有软链接,删掉)

#!/bin/bash
/usr/local/bitcoin/bin/bitcoin-cli -regtest -datadir=/data/bitcoin -rpcuser=user -rpcpassword=password -rpcport=8332 getnewaddress

然后就可以直接使用bitcoin-cli {method} {params}调用RPC接口了。

为上面创建的地址生成块

bitcoin-cli generatetoaddress 101 2NDCCiQ2vYhW74pazBGhFzT6oAz539ZrhAS

这里之所以生成101个区块,是因为在回归测试模式下,前100个区块无法获取BTC,需要在第101个区块生成时生成BTC。

查看钱包余额

bitcoin-cli getbalance
50.00000000

比特币软件控制台_100台电脑挖一个比特币要挖多久_比特币行情实时走势图比特币行情

查看钱包信息

bitcoin-cli getwalletinfo
{
  "walletname": "",
  "walletversion": 169900,
  "balance": 50.00000000,
  "unconfirmed_balance": 0.00000000,
  "immature_balance": 5000.00000000,
  "txcount": 202,
  "keypoololdest": 1544106013,
  "keypoolsize": 1000,
  "keypoolsize_hd_internal": 1000,
  "paytxfee": 0.00000000,
  "hdseedid": "96294a6a3428d2501099326a31b9ebe46519b691",
  "hdmasterkeyid": "96294a6a3428d2501099326a31b9ebe46519b691",
  "private_keys_enabled": true
}

关键参数说明:

余额钱包中以BTC确认的总余额

钱包中未确认的 BTC 总余额

钱包中 BTC 未到期余额总额

从比特币钱包控制台命令可以看出,之前生成的100个区块的奖励都在未成熟余额中。

最后贴出官方的Bitcoin RPC API文档地址

(打开新窗口)

挖矿网Ethos中文网拥有简单易用的挖矿系统,为挖矿行业提供教程软件和矿机评测及交易信息,对比计算各种数字货币在挖矿网的挖矿收益,以及介绍矿网挖矿工具,矿场最新动态等。

矿业网络,版权所有丨如未注明,均为原创丨本站采用BY-NC-SA协议授权

转载请注明原文链接:比特币钱包控制台命令搭建比特币私链开发环境