提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
先决条件
提示:主要是对官方文档和现有的补充。所以不会很细
besu客户端的基本配置。包括不限于besu安装,创世文件的配置,私钥和地址的生成。部分api的使用。里面装好tmux。
一、从基本配置好的besu节点运行。
从配置好创世块的besu节点运行。里面最好包含对应节点的configfile。如果在创世块文件里面有分配coin的话,第一个节点需要有里面其中一个地址的key,要不然不出块。
二、docker配置
1.dockers net配置
docker network create -d bridge besu-net
2.run docker
从image启动容器.
这里由于是node1作为主节点和外面通信的。为后面扩展留出8546端口。这里必须30303等端口必须是udp协议的。
docker run -itd --name Node-1 --network besu-net -p 8545:8545 -p 30303:30303 -p 30303:30303/udp <image id> /bin/bash
docker run -itd --name Node-2 --network besu-net -p 8547:8547 -p 30305:30305 -p 30305:30305/udp <image id>bin/bash
docker run -itd --name Node-3 --network besu-net -p 8548:8548 -p 30306:30306 -p 30306:30306/udp <image id> /bin/bash
3.进入容器
docker exec -it <容器id> /bin/bash
三、节点配置
推荐用配置文件,要不然那么长串的命令复制很麻烦的。
besu –-config-file=<path>/genesisconfig.toml
从整体配置来说的第一个节点,后面如果要在不同主机上的第一节点需要配置静态节点或者在引导节点的选项上面输入其他宿主机上面的 对外的 节点的 enode。
data-path="/root/Clique-Network/node/data"
genesis-file="/root/Clique-Network/cliqueGenesis.json"
network-id=1337
rpc-http-enabled=true
rpc-http-api=["CLIQUE","ETH","NET","WEB3"]
host-allowlist=["*"]
rpc-http-cors-origins=["all"]
rpc-http-host="0.0.0.0"
rpc-ws-enabled=true
rpc-ws-api=["ADMIN","CLIQUE","ETH","NET","WEB3"]
rpc-ws-host="0.0.0.0"
min-gas-price=0
nat-method="NONE"
p2p-host="192.168.80.10"
p2p-port="30303"
这里重要的讲是后面几个。nat-method需要设置成NONE。如果没配置的话他会自动识别成docker。然后他的enode就是127.0.0.1.这样其他外部节点就没办法访问。这里p2p-host设置成宿主机的IP
data-path="/root/Clique-Network/node/data" genesis-file="/root/Clique-Network/cliqueGenesis.json" network-id=1337 rpc-http-enabled=true rpc-http-api=["CLIQUE","ETH","NET","WEB3"] host-allowlist=["*"] rpc-http-cors-origins=["all"] rpc-http-host="0.0.0.0" rpc-ws-enabled=true rpc-ws-api=["ADMIN","CLIQUE","ETH","NET","WEB3"] rpc-ws-host="0.0.0.0" min-gas-price=0 nat-method="NONE" bootnodes=["enode://60599fd67abc55bebe0f373cabfa268951ef1af38dad88fba48422aac1f94e0cdc37dac629ac5523c626ab2a9663dbb4abdc790b19e52a013e337a84465d9b6e@192.169.80.10:30303"] p2p-port="30304" rpc-http-port=8547 p2p-host="172.18.0.2"
这里是节点2的。p2p-port就是之前配置的端口。这里第二个节点的p2p-host设置成容器ip。这里bootnode选择node1的。
node3的配置也是如此。
启动的话需要先用tmux启动。
总结
主要针对这种docker容器下的,而且还要增加相同集群。能解决下关键问题。