汪晓明对区块链、以太坊的思考

记录创业、生活的所思所感,探讨去中心化思想,推动区块链的发展。

HPB64:HPB-Docker节点搭建指南

在进入HPB开发之前,利用docker搭建一个节点来进行后续的代码调试,是个不错的注意,本节我们为大家展示如何搭建。

步骤0 切换成root用户

切换root,根据提示输入root权限密码

1
root@iZ8vbgcelr86h0i2rbfshaZ:/# su root
步骤一 下载镜像

通过docker pull hpbbc/go-hpb下载镜像。

1
2
3
4
5
6
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是否已经安装好。

1
2
3
4
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
1
root@iZ8vbgcelr86h0i2rbfshaZ:~# vi gensis.json

在弹出的页面按下字母I键即可切换至INSERT输入状态,然后用鼠标右键粘贴入下方代码。 完成后按一下ESC键,并输入:wq即可保存文件并退出。 提示:按一下ESC键,并输入:q!为不保存文件并退出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 {

 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命令完成,也可后台完成。

1
2
root@iZ8vbgcelr86h0i2rbfshaZ:/# mkdir -p /home/ghpb-bin/node/
root@iZ8vbgcelr86h0i2rbfshaZ:/# 
步骤五 新建keystore目录

输入mkdir -p /home/ghpb-bin/node/datafull/keystore,上传一个keystore文件到该目录下(任何keystore文件,该加密私钥文件用于启动节点,没任何用途,可以任意新建一个)。

1
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 来初始化创世配置。

1
2
3
4
5
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=9c3704f39966
步骤七 启动节点

​ 输入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来启动节点

1
2
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可以进入控制台。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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容器控制台。

1
2
3
4
INFO [11-01|10:08:10]  HPB : Inserted new block                number=656094 hash=67a92f8b7b1a
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=67a92f8b7b1a
######### peers length is: 2
read escape sequence
步骤十 查看节点日志

​ 输入docker logs -f ghpb1可以查看节点的日志。

1
root@iZ8vbgcelr86h0i2rbfshaZ:/# docker logs -f ghpb1

感谢HPB技术团队整理。

关于我

蓝莲花(汪晓明):HPB芯链(hpb.io)创始人,巴比特专栏作家。十余年金融大数据、区块链技术开发经验,曾参与创建银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并作为主要作者编写了《区块链开发指南》,在中国区块链社区以ID“蓝莲花”知名。2018年6月9日, HPB芯链荣登《2018胡润区块链企业排行榜》区块链创新企业TOP50。

公众号
小明微思考公众号

HPB

« HPB63:HPB私有链搭建指南 HPB65:HPB节点安全加固指南 »