{
  "config": {
    "chainId": 7,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0
  },
  "alloc": {
	"0x58d35f2c5d6a4086b15157da651e00388be5d9a5":{"balance":"50000000000000000000000000000000000000000"},
	"0x5ef9e9791dbd9ec9be6a7abc926ec831a98f464a":{"balance":"50000000000000000000000000000000000000000"},
	"0xb1c5cd79826d6e496c21364703be0a2006815b66":{"balance":"50000000000000000000000000000000000000000"},
	"0x0f31dd97ec1e77763e26c7a1b41b4059f7b925c7":{"balance":"50000000000000000000000000000000000000000"}
  },
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x20000",
  "extraData": "",
  "gasLimit": "0xffffffff",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

事件监听需要通过websocket服务,ganache-cli提供的测试环境无法提供socket服务,故直接使用geth创建私有链,同时启动websocket,参数设置要如下完全一致:

(注意rpcport和wsport(是websocket通信的端口))

# 初始化
geth1 --datadir ./gethdata --networkid 91036 --port 30303 --rpc --rpcaddr 127.0.0.1 --rpcport 8545 *--rpcapi 'db,net,eth,web3,personal' --rpccorsdomain "**" --ws --wsaddr "localhost" --wsport "8546" --wsorigins "*" --nodiscover --allow-insecure-unlock --dev.period 1 --syncmode "full" init ./genesis.json
# 启动
geth1 --datadir ./gethdata --networkid 91036 --port 30303 --rpc --rpcaddr 127.0.0.1 --rpcport 8545 *--rpcapi 'db,net,eth,web3,personal' --rpccorsdomain "**" --ws --wsaddr "localhost" --wsport "8546" --wsorigins "*" --nodiscover --allow-insecure-unlock --dev.period 1 --syncmode "full" console
#第二个节点
#初始化
geth1 --datadir ./gethdata --networkid 91036 --port 30304 --rpc --rpcaddr 127.0.0.1 --rpcport 8547 --rpcapi 'db,net,eth,web3,personal' --rpccorsdomain "*" --ws --wsaddr "localhost" --wsport "8548" --wsorigins "*" --nodiscover --allow-insecure-unlock --dev.period 1 --syncmode "full" init ./genesis.json

#启动
geth1 --datadir ./gethdata --networkid 91036 --port 30304 --rpc --rpcaddr 127.0.0.1 --rpcport 8547 --rpcapi 'db,net,eth,web3,personal' --rpccorsdomain "*" --ws --wsaddr "localhost" --wsport "8548" --wsorigins "*" --nodiscover --allow-insecure-unlock --dev.period 1 --syncmode "full" console
# 创建账户
personal.newAccount("123456")
personal.newAccount("123456")
personal.newAccount("123456")
personal.newAccount("123456")

# 解锁账户
personal.unlockAccount(eth.accounts[0],"123456",15000)
personal.unlockAccount(eth.accounts[1],"123456",15000)
personal.unlockAccount(eth.accounts[2],"123456",15000)
personal.unlockAccount(eth.accounts[3],"123456",15000)

# 查看账户余额
eth.getBalance(eth.accounts[0])

获取第一个节点信息 在1的控制台中输入:

> admin.nodeInfo.enode

第二个节点添加c1为静态节点,在c2中输入:

> admin.addPeer("")
//注意,将其中的0.0.0.0替换为c1的IP地址 admin.addPeer("enode://82e2a1e2d86906266625fc201046aa4a195d897a00e5cdb3e29765ce805be4aeb360861d7e8b46dcd455aa406101e795942f49e9857fa6d640f5d850fef2cca7@10.108.21.132:30303")

返回true,并用

> admin.peers

查看是否互相链接,若连接成功,则显示节点c1的信息。由于此时网络中只有2个节点,也可以用