如何通过 Docker 快速搭建 HPB 全节点
步骤0 切换成root用户
切换root,根据提示输入root权限密码
root@iZ8vbgcelr86h0i2rbfshaZ:/# su root
步骤一 下载镜像
通过docker pull hpbbc/go-hpb下载镜像。
root@iZ8vbgcelr86h0i2rbfshaZ:~# docker pull hpbbc/go-hpb
Using default tag: latest
latest: Pulling from hpbbc/go-hpb
Digest: sha256:3ecb483ca70883c390c55ceada92f7c0726e13afaebea2029dfe1c208dbe0094
Status: Image is up to date for hpbbc/go-hpb:latest
root@iZ8vbgcelr86h0i2rbfshaZ:~#
步骤二 运行如下命令
输入docker images
,查看镜像文件hpbbc/go-hpb是否已经安装好。
root@iZ8vbgcelr86h0i2rbfshaZ:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hpbbc/go-hpb latest a3ebf0866f79 5 weeks ago 42MB
ghpb v1.0.2.3 a3ebf0866f79 5 weeks ago 42MB
步骤三 新建gensis.json
root@iZ8vbgcelr86h0i2rbfshaZ:~# vi gensis.json
在弹出的页面按下字母I
键即可切换至INSERT
输入状态,然后用鼠标右键粘贴入下方代码。 完成后按一下ESC
键,并输入:wq
即可保存文件并退出。 提示:按一下ESC
键,并输入:q!
为不保存文件并退出。
{
“config”: {
“chainId”: 100,
“prometheus”: {
“period”: 10,
“epoch”: 200
}
},
“nonce”: “0x0”,
“timestamp”: “0x5b7eba85”,
“extraData”: “0x68706200000000000000000000000000000000000000000000000000000000000926f045887401883a8d9c6e9878b1b900a5be19405dd40aa9298448a58fa679ec4295eac8472a0d58c163703d46edcfc1b99abd4f2c4801d3c997a75bf42ea1b9b03e6f3980beba7216d14813c30d7069bd0d853df157ee0e05f1f3749996e5dcdc80407cc4e0cc326756155d4afb2e780bdd13a17d4434bb078d7d587ef5db12918ff775fe26cb54006fc4f29a056080cb3a804945e136594ead53e8589478f8282f019c753fb2410a50e2c4789bf96b7061140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”,
“gasLimit”: “0x5f5e100”,
“difficulty”: “0x1”,
“mixHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“coinbase”: “0x0000000000000000000000000000000000000000”,
“alloc”: {
“269bBC5Cf30795a5FdF6aB7165D3DCb9Ef736808”: {
“balance”: “20000000000000000000000000”
},
“A1960FA87733F1B9ffbfB95d9d692471Aa691c9C”: {
“balance”: “18000000000000000000000000”
},
“dAB62F5145EE529cF1c89371615256a5d151016c”: {
“balance”: “12000000000000000000000000”
},
“172B49140D31A034bE7f358FDdD9db25A71A402A”: {
“balance”: “10800000000000000000000000”
},
“4604801FaF9cC8C4443B269D1A10bcDE7fB19c39”: {
“balance”: “37000000000000000000000000”
},
“de3Fd4fC583b6d7e06Db0bE6A35467f33046Ad27”: {
“balance”: “2200000000000000000000000”
}
},
“number”: “0x0”,
“gasUsed”: “0x0”,
“parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“hardwareRandom”: “0x0000000000000000000000000000000000000000000000000000000000000000”
}
步骤四 新建/home/ghpb-bin/node/目录
输入mkdir -p /home/ghpb-bin/node/
,把gensis.json放到/home/ghpb-bin/node/目录下,可通过cp
命令完成,也可后台完成。
root@iZ8vbgcelr86h0i2rbfshaZ:/# mkdir -p /home/ghpb-bin/node/
root@iZ8vbgcelr86h0i2rbfshaZ:/#
步骤五 新建keystore目录
输入mkdir -p /home/ghpb-bin/node/datafull/keystore
,上传一个keystore文件到该目录下(任何keystore文件,该加密私钥文件用于启动节点,没任何用途,可以任意新建一个)。
root@iZ8vbgcelr86h0i2rbfshaZ:/# mkdir -p /home/ghpb-bin/node/datafull/keystore
步骤六 初始化配置
输入docker run -it --rm --privileged=true -v /home/ghpb-bin/node/:/root/node/ --name ghpbinit ghpb:v1.0.2.3 --datadir /root/node/data init /root/node/gensis.json
来初始化创世配置。
root@iZ8vbgcelr86h0i2rbfshaZ:/# docker run -it --rm --privileged=true -v /home/ghpb-bin/node/:/root/node/ --name ghpbinit ghpb:v1.0.2.3 --datadir /root/node/data init /root/node/gensis.json
INFO [11-01|09:48:41] HPB : Create New HpbConfig object
INFO [11-01|09:48:41] HPB : Allocated cache and file handles database=/root/node/data/ghpb/chaindata cache=16 handles=16
INFO [11-01|09:48:41] HPB : Writing custom genesis block
INFO [11-01|09:48:41] HPB : Successfully wrote genesis state database=chaindata hash=9c3704…f39966
步骤七 启动节点
输入docker run -itd --privileged=true --restart=always -v /home/ghpb-bin/node/:/root/node/ -p 8545:8545 -p 30303:30303 -p 8546:8546 --name ghpb1 ghpb:v1.0.2.3 --datadir /root/node/data --networkid 100 --verbosity 3 --rpc --rpcaddr 0.0.0.0 --rpcapi hpb,web3,admin,txpool,debug,personal,net,miner,prometheus --nodetype synnode console
来启动节点
root@iZ8vbgcelr86h0i2rbfshaZ:/# docker run -itd --privileged=true --restart=always -v /home/ghpb-bin/node/:/root/node/ -p 8545:8545 -p 30303:30303 -p 8546:8546 --name ghpb1 ghpb:v1.0.2.3 --datadir /root/node/data --networkid 100 --verbosity 3 --rpc --rpcaddr 0.0.0.0 --rpcapi hpb,web3,admin,txpool,debug,personal,net,miner,prometheus --nodetype synnode console
ccab756a76b13a720b41c0bb7dd35383d36169dc3074e22d0b220170da7826ff
步骤八 进入控制台
输入docker attach ghpb1
可以进入控制台。
root@iZ8vbgcelr86h0i2rbfshaZ:/# docker attach ghpb1
INFO [11-01|09:55:46] HPB : UDP listener up self=hnode://e25f1e2aafcec4525e6c65c5b7dc8fb6e683711aa9b58bee92ab1651f9fa6bbeb37de7b0a61b8b533eb19e2e57f2decfca6bb9eb338e9926dbf8f30e64f1c1b3@[::]:30303
INFO [11-01|09:55:46] HPB : Server start with type. NodeType=SynNode
INFO [11-01|09:55:46] HPB : Start server of bandwidth test. port=30403
INFO [11-01|09:55:46] HPB : IPC endpoint opened url=/root/node/data/ghpb.ipc
INFO [11-01|09:55:46] HPB : HTTP endpoint opened url=http://0.0.0.0:8545 cors= vhosts=localhost,localhost
Welcome to the GHPB JavaScript console!
instance:
coinbase: 0xaed85c944a8a96c2714532b00676337e0d986811
at block: 0 (Thu, 23 Aug 2018 13:45:41 UTC)
datadir: /root/node/data
modules: admin:1.0 debug:1.0 hpb:1.0 miner:1.0 net:1.0 personal:1.0 prometheus:1.0 rpc:1.0 txpool:1.0 web3:1.0
>
步骤九 退出docker控制台
按下键盘Ctrl+p+q
可以退出当前docker容器控制台。
INFO [11-01|10:08:10] HPB : Inserted new block number=656094 hash=67a92f…8b7b1a
INFO [11-01|10:08:10] HPB : Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=7.058ms mgasps=0.000 number=656094 hash=67a92f…8b7b1a
######### peers length is: 2
read escape sequence
步骤十 查看节点日志
输入docker logs -f ghpb1
可以查看节点的日志。
root@iZ8vbgcelr86h0i2rbfshaZ:/# docker logs -f ghpb1