在上篇中我们搭建了一个三节点的比特股测试网络,但是同时我也提到只有node-1上有witness,只要node-1无法正常工作,我们的网络也无法正常工作,所以下篇我们需要将node-2和node-3也设置成witness节点。
1.用cli_wallet连接到网络
上篇中我们记录下了chain-id,现在就要用上了,用如下命令行连接到我们的testnet
./cli_wallet --wallet-file=testnet.json --chain-id 【上篇中记录的chain-id】 --server-rpc-endpoint=ws://【任意一个节点的ip或域名】:11011
连上之后我们需要先设置密码
set_password pwd
解锁钱包(可以类比成登录),以后每次登录钱包都需要解锁才能做后续操作
unlock pwd
使用私钥导入admin账号
import_key "admin" 5KNP4D9K3FL1gBtRtanhfgLZTpz1wcJVsLEQXonRMeAwzMDL2se
可以使用以下命令查看已导入的账号
list_my_accounts
导入余额(最后一个参数true代表着像网络广播此操作)
import_balance admin [5KNP4D9K3FL1gBtRtanhfgLZTpz1wcJVsLEQXonRMeAwzMDL2se] true
查看账号余额
list_account_balances admin
可以看到有10000000000个BTS,接下去的所有操作都由admin用户完成
2.创建witness候选人账号
我们通过brain key来创建账号,运行如下命令
suggest_brain_key
会返回16个单词组成的brain key,私钥和公钥,记录下来备用
使用上面记录的brain key来生成账号(这里一次性生成11个账号)
create_account_with_brain_key [your_brain_key] "w2-0" "admin" "admin" true
...
create_account_with_brain_key [your_brain_key] "w2-10" "admin" "admin" true
升级账号
upgrade_account w2-0 true
在升级之前,还需要给账号转账
transfer admin w2-0 1000 BTS "memo" true
创建witness对象
create_witness w2-0 "http://url-to-proposal" true //url-to-proposal可为空
用admin账号进行投票
vote_for_witness admin w2-0 true true
投票成功之后,等待下次maintenance(通常是第二天0点)就可以看到我们的witness已经进入列表了,使用以下命令查询witness列表(以及其他信息)
get_global_properties
获取signing_key,运行get_witness命令,返回的json中有signing_key,同时也有witness的id,如1.6.12
get_witness w2-0
在钱包中运行dump_private_keys命令,拿到signing_key对应的私钥
将signing_key和私钥组合在一起,加入到node-2的data/config.ini中
private-key = ["signing-key","wif-private-key"]
将witness-id加入config.ini,如下
witness-id = "1.6.12"
重启node-2,等待网络进入maintenance状态之后,使用以下命令查看witness
get_global_properties
对于node-3使用相同方法进行操作,我们自己的比特股testnet就搭建完毕了。
比特股开发系列文章