Cypherium 同步区块测试操作步骤

转载请标注原文地址:https://lilyssh.cn/blockchain/cypherium-test-sync-block/

前言

Cypherium 同步区块链测试步骤。以下步骤适用于同一台机子测试。如果使用两台电脑测试,则有关第二节点的操作在另一台机子上执行即可。以下命令请在cypherium_private/go-cypherium路径下执行。

  1. 创建test文件夹,test中目录结构如下:
1
2
3
4
5
6
7
8
9
~/workspace/test ⌚ 14:02:17
$ tree
.
├── genesis.json
├── group.toml
├── node_01
│   ├── data
└── node_02
├── data
  1. 清理
1
make clean
  1. 编译
1
make cypher
  1. 生成节点信息
1
./build/bin/cypher setup

需要输入 ip:端口,用于测试使用kyber的Ed25519算法生成public.tomlprivate.toml,保存在默认路径。目前没做ip发现,所以需手动拼接公钥~/Library/Application\ Support/cypher/public.toml(Mac默认路径),用于模拟测试。节点名字可自定义,如node_01_name。

  1. 同理,再生成第二个节点。

  2. 把第一、二个节点的public.toml,拼接到~/workspace/test/group.toml中。

  1. 初始化 两个节点的创世区块。

第一个节点:

1
./build/bin/cypher --datadir "~/workspace/test/node_01/data" init ~/workspace/test/genesis.json

第二个节点:

1
./build/bin/cypher --datadir "~/workspace/test/node_02/data" init ~/workspace/test/genesis.json

genesis.json中内容可参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"config": {
"chainId": 123666,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc" : {},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x20000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}

  1. 启动第一个节点。
1
./build/bin/cypher --onetdir ~/workspace/test/node_01/private.toml --datadir ~/workspace/test/node_01/data --publickeydir ~/workspace/test/group.toml --networkid 123666 --port 7010 --rpcport 8510 --rpc --rpccorsdomain "*" --rpcaddr 0.0.0.0 --rpcapi eth,web3,personal --verbosity 5 2> ~/workspace/test/node_01/output2.log
  1. 启动第一个节点的js交互窗口(用上一步成的ipc文件):
1
./build/bin/cypher attach ~/workspace/test/node_01/data/cypher.ipc
  1. 启动第二个节点。
1
./build/bin/cypher --onetdir ~/workspace/test/node_02/private.toml --datadir ~/workspace/test/node_02/data --publickeydir ~/workspace/test/group.toml --networkid 123666 --port 7020 --rpcport 8520 --rpc --rpccorsdomain "*" --rpcaddr 0.0.0.0 --rpcapi eth,web3,personal --verbosity 5 2> ~/workspace/test/node_02/output2.log
  1. 启动第二个节点的js交互窗口(用上一步成的ipc文件)。
1
./build/bin/cypher attach ~/workspace/test/node_02/data/cypher.ipc

  1. 从此步骤开始,都将在js交互涌窗口执行。查看第一个节点的信息。
1
admin.nodeInfo
  1. 在第二个节点中,创建用户,保存挖矿奖励。
1
personal.newAccount("password")
  1. 在第二个节点中,加入第一个节点。就是把cnode中的内容粘进addPeer中。
1
admin.addPeer("cnode")
  1. 在第一个节点中,验证一下是否已加入。
1
net
  1. 主节点调用开始同步命令,从交易池里取tx执行,并打包生成txBlock,发给其他委员会成员做bftcosi共识。会看到两个节点的信息都在滚动。
1
bftcosi.start()
  1. 停止共识。
1
bftcosi.stop()
  1. 查看下两个节点的区块数量是否相同。

  1. (不时需要)解锁账户
1
personal.unlockAccount("需解锁账户")

  1. 查看交易池状态,pending为待确认的交易数量。
    1
    txpool.status

会显示

1
2
3
4
{
pending: 0,
queued: 0
}

  1. 退出:

本文由 lilyssh创作。可自由转载、引用,但需署名作者且注明文章出处。


当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器