Skip to content

[Chinese] Devnet

cc14514 edited this page Jun 27, 2019 · 1 revision

devnet

此模式为开发网络,不包含 bootnode,当需要进行组网测试时需要手动获取 nodeId 并通过 addPeer 进行组网,开发网络可以在每次启动时都重置网络,快速擦除测试数据,并且在主节点上提供了三个测试账号和足量的测试token,账号密码均为 123456,下面将举例展示开发网络的使用场景

devnet 常用启动项

SPECTRUM OPTIONS:
  --datadir             Data directory for the databases and keystore
  --devnet              Ephemeral POC network with a pre-funded developer account, mining enabled
  --devreset            clean all devnet data and reset
  --devmaster           one devnet only one master, the master is genesis signer

NETWORKING OPTIONS:
  --port value          Network listening port (default: 30303)

启动 devnet 主节点

#>smc --debug --devnet --devmaster --devreset console

  • --devnet 指定启动模式为开发网络
  • --devmaster 指定当前节点为主节点,负责出块,一个开发网络中只能存在一个 master 节点
  • --devreset 重置网络,擦除历史测试数据

启动成功后可以在控制台操作3个测试账号来得到足够多的测试 token 解锁密码均为 123456

> eth.accounts
["0xbf1736a65f8beadd71b321be585fd883503fdeaa", "0xd3b38478f7edb9bb55270ee5389706dc9ca6d98f", "0xece974516fc5f5a94e0552ae3b25438ce44a6a31"]

启动 devnet 跟随节点

smc --debug --devnet --port 60405 --datadir /tmp/devnet2 console

  • --port 在同一台主机上启动跟随节点时,因为默认的端口已经被 master 节点占用了,所以要修改端口先
  • --datadir 同理数据目录也已经被占用了,所以可以修改数据目录

跟随节点与主节点组网

首先在主节点控制台执行 admin.nodeInfo 来获取主节点 enode 信息,然后在跟随节点控制台通过 admin.addPeer 来添加主节点

> masterEnode = "enode://3c601bc71d41bf2d0c82c36f5ff776f2681e4f8a93aa1411dcefaa1f6590f39ea2316d835f4d63409dc49d8900d733c2d3af18b9d4da22ca1f0b2fedea92ba6b@223.72.218.162:60303"
> admin.addPeer(masterEnode)
true

常用的启动方式

通常我们都会在某个节点上启动 rpc 来方便应用测试与调试

smc --debug --devnet --devmaster --ws --rpc --wsorigins="*" --rpccorsdomain="*" --rpcapi='tribe,db,eth,net,web3,personal,admin,accounts,subscribe,web3' --wsapi='tribe,db,eth,net,web3,personal,admin,accounts,subscribe,web3' console