如何在aws上使用bootnode设置私有以太网网络

时间:2018-05-24 21:47:28

标签: amazon-ec2 network-programming blockchain ethereum

我正在尝试使用bootnode建立一个私有的以太网网络。我在具有相同安全组的EC2(t2.medium)上创建了两个实例。首先,我使用

创建了启动密钥
     bootnode -genkey boot.key

然后我使用以下命令

设置bootnode
     bootnode -nodekey boot.key -verbosity 7 -addr "172.31.20.13:30310"

bootnode已成功设置,enode value = enode://52c75d5bb8f8287a5942151dabb35756b2ee664faa8a1f98b8fb5ae778953bf0dde553b0d574e85cbfcbd8adf4068a0c7611f270e673776c7e67225b38eadcd2@172.31.20.13:30310

我使用genesis文件和以下命令

初始化了两个节点
geth --datadir "./mydatadir" init genesis.json

Genesis.json

{
"config": {
    "chainId": 1337,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
},
"nonce": "0x0000000000000042",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00",
"gasLimit": "0x8000000",
"difficulty": "0x01",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x238dd521ad221b37cc176fa9f4bf88cf19fe39f1",
"alloc": {
  "0x238dd521ad221b37cc176fa9f4bf88cf19fe39f1" : {
    "balance" : "200000000000000000000000"
  },
  "0xaebc7588345fc7963505dd6de9d12390980fc13d" : {
    "balance" : "10000000000000000000"
  },
  "0xa5c77bd6319a5eaba9494acd90cac9712f9e15c9" : {
    "balance" : "20000000000000000000"
    }
 }
 }

我尝试连接两个节点(两个实例)来引导一个节点位于bootnode的同一个实例上。我使用了以下命令

geth --networkid 1337 --datadir "./mydatadir" --bootnodes                              "enode://52c75d5bb8f8287a5942151dabb35756b2ee664faa8a1f98b8fb5ae778953bf0dde553b0d574e85cbfcbd8adf4068a0c7611f270e673776c7e67225b38eadcd2@172.31.20.13:30310" --port 3003 --ipcdisable --syncmode full console

此节点加入bootnode并成功与之交互

TRACE[05-24|21:01:55] << FINDNODE/v4                           addr=172.31.20.13:3003 err="unknown node"<br>
TRACE[05-24|21:01:55] >> PONG/v4                               addr=172.31.20.13:3003 err=nil<br>
TRACE[05-24|21:01:55] << PING/v4                               addr=172.31.20.13:3003 err=nil<br>
TRACE[05-24|21:01:55] Starting bonding ping/pong               id=33c0695b8d4f9ff6 known=false failcount=0 age=424221h1m55.666391609s<br>
TRACE[05-24|21:01:55] >> PING/v4                               addr=172.31.20.13:3003 err=nil

但是当我在其他实例(节点)上运行相同的命令时

geth --networkid 1337 --datadir "./mydatadir" --bootnodes "enode://52c75d5bb8f8287a5942151dabb35756b2ee664faa8a1f98b8fb5ae778953bf0dde553b0d574e85cbfcbd8adf4068a0c7611f270e673776c7e67225b38eadcd2@172.31.20.13:30310" --port 3004 --ipcdisable --syncmode full console 

节点成功启动但我没有看到它与bootnode交互,当我在两个节点上输入admin.peer命令时我得到空列表。我做错了什么?请帮帮我

2 个答案:

答案 0 :(得分:0)

似乎是其中一个节点中的防火墙...默认情况下,引导节点在端口30301上启动。可能是您已配置了安全组,使得端口30310未打开。确保所需的端口已打开,并且两个EC2节点都能够通过IP相互通信

答案 1 :(得分:-1)

确保您可以使用UDP访问侦听端口,因为geth将其用于对等访问