比特币的发展史在网上很多,比特币的价格犹如过山车,这里不再敖述。比特币最大的价值在于把区块链系统引入了大众视野,引领了全世界对区块链的探索。
在比特币的大系统里存在三个独立的网络链系统:比特币主链系统、测试链系统、回归测试链系统。
a、主链系统的启动和加入主链很简单,直接编译源码,启动后会通过内置的地址去寻找其他节点。
b、测试链系统的启动比主链多了一个命令行选项,需要加上“-testnet”。启动后,它也会根据内置其他节点地址去P2P学习链接其他节点。
c、回归测试链系统常用来做开发调试使用,也就是这儿所说的“私链”,它的启动也比主链多了一个命令行选项,需要加上“-regtest”。
这儿主要介绍测试回归链的使用,在正式介绍测试回归链前,先介绍比特币系统里一个非常重要的概念,“在比特币的系统里没有真正账号,里面的账号只是个label;没有BTC余额的,有的只是UTXO”。
下面开始介绍测试回归链的使用:
1、编译安装比特币源码
github地址:“https://github.com/bitcoin/bitcoin”。社区主版本只有C++版权,其他语言版本,全是非社区的主版本,具体的编译安装过程不再详述。
2、配置"bitcoin.conf"
在比特币数据存储路径,如果没有指定“-datadir”,默认是HOME路径“.bitcoin”下配置“bitcoin.conf”文件,如果不存在该文件,在bitcoin/contrib/debian/examples存在这个文件的模板,在这个文件里主要配置两类选项:RPC用户名、密码和RPC地址、接收地址,如下图所示:
当然不配置这些选项,直接在命令行参数指定也是可以的。
3、启动比特币全节点钱包
执行“./bitcoind -datadir=data-server -regtest –printtoconsole”,如下图所示:
到此,一个比特币私链搭建已经完成了,接下来开始玩这个私链。
4、执行系统命令
通过“bitcoin-cli”执行系统相关命令,需要注意的是,bitcoin-cli和bitcoind使用同一个目录下的bitcoin.conf,在执行bitcoin-cli时同样需要加上指定的数据路径,当然也可以用命令行指定。具体实例如下:
4.1 创建账号:
./bitcoin-cli -datadir=data getnewaddress"account"
account: 账号名,本质是个label,多个地址可以用一个label。如果不 设置默认为””。
4.2 加密钱包
./bitcoin-cli -datadir=data encryptwallet"phrase"
phrase: 密码,任意字符串。
4.3 解密钱包
./bitcoin-cli -datadir=datawalletpassphrase "phrase" time
phrase: 钱包密码;
time:钱包解锁时间,单位:秒(s)。
4.4 挖矿/生成区块
./bitcoin-cli-datadir=data generatetoaddress nblocks address
nblocks:生成的区块数,
address:生成区块的地址。
注意:在回归测试模式中,前100个块是拿不到BTC的,需要生成第101个块的时候,才有BTC。
4.5 列举账号
./bitcoin-cli-datadir=data listaccounts
4.6 获取账号地址
./bitcoin-cli-datadir=data getaccountaddress "account"
account:账号名,本质是个label
4.7 查询账号资产
./bitcoin-cli-datadir=data getbalance "account"
account:账号名,本质是个label
4.8 获取区块高度
./bitcoin-cli-datadir=data getblockcount
4.9 转账
./bitcoin-cli-datadir=data sendfrom "fromaccount" "toaddress" amount
fromaccount:转账账号
toaddress:收账地址
amount:转账额度
更多的命令可以通过./bitcoin-cli -datadir=data help命令获取,这个帮助命令并不能显示完整所有的命令选项,这儿有点小bug。所有的命令可以通过./bitcoin-cli -datadir=datahelp 获取命令参数。
领取专属 10元无门槛券
私享最新 技术干货