版本说明
目前已经尝试并成功的版本:
V0.5.3 完美兼容
V0.5.6 .... 持续迭代 ING
实现过程
仓库:
官方 : https://github.com/iotaledger/hornet
步骤
- 编译并加入环境变量
- go build -o hornet && mv hornet /use/bin/hornet
- 修改配置文件,启用监察者模式
- node.enablePlugins 添加 Coordinator
-
- snapshots 模式修改为 global
- 配置 Coordinator
- 基本参数说明
- 深度控制,最高可达 24 深度,16/60s 足够跑 45 日
- merkleTreeDepth 深度参数
- intervalSeconds 出块间隔
- mwm 用于 POW 的工作难度 影响 attachToTangle 时的参数
- stateFilePath 管理当前的链状态 若出现 db 与 状态不符 则无法启动
- 生成监察者种子
- 种子的规则为 A-Z 加上数字 9 的随机 81 位字符
- cat /dev/urandom |LC_ALL=C tr -dc 'A-Z9' | fold -w 81 | head -n 1
- 得到类似的占位符
- KKSFLBYKDCAVQHDVNCXQLHJXZZJJWLXGY9RNUQSLFEEVYVMGXFMZLKJPNRUNKSBRPCFKFWEUXCVRBBCDB
- 种子的规则为 A-Z 加上数字 9 的随机 81 位字符
-
生成Merkle树
-
$YOURSEED 为上一步中生成的种子
-
$ HORNETPATH 为项目地址
-
-u hornet 为执行用户
-
## 创建用户
-
sudo -u hornet COO_SEED=$YOURSEED hornet -d $HORNETPATH tool merkle
-
## 得到如下信息视为成功
-
-
生成树的过程长短根据配置而定
-
-
由上文会输出 merkle tree 的 root address 需要手动配置到 confing.json
-
配置 coordinator.address
-
-
-
创建创世数据(对初始币的分配)
-
创建一个种子并获取一个有效地址 (具体的种子和地址的规则会在另一篇文档中详细说明)
-
将该地址和待分配的币填入 snapshots.global.path 中的文件 格式为 address;amount
-
例如 9FJYQPJQZGXWLEUZJFFUBHHIEOHRPTCPMBHOBCYPFPWN9YW9YTQ9GYKYNGGYI9OYHCIENGUXTRTHVREBA;2700000000000000
-
address 必须为 81 位长度的地址,不能是带校验核的 90 位 address
-
amount 的总量自行决定,但是在官方提供的 sdk 中校验的总量为 2779530283277761
-
-
-
已监察者引导方式运行
-
运行
-
sudo -u hornet COO_SEED="$YOURSEED" hornet --cooBootstrap
-
必须等待出第一个块之后才可暂停
-
-
类似以上的输出后即可退出并将程序加入到守护进程之类的作为启动
-
-
-
至此已经可以正常的用 SDK 进行 API 的操作
-
-------------------------------------------
-
配置对等邻居节点
-
配置 peering.json
-
-
配置好之后重启服务即可
-
-
普通节点搭建之后,将监察者检点配置为固定的邻居节点即可完成同步
-
普通的节点其实没有任何的不同
-
只是必须要和监察者检点完全相同的 config.json 然后去掉 Coordinator 插件即可
-
总共需要复制的文件有 config.json 和 snapshots.global.path 中的文件
-
-
说一些可能会提示的错误
-
network aleady bootstrapped
-
其实就是 state 与 db 的配置不符了 发生这种情况大多数是因为节点异常退出导致的
-
想要修复这个其实只要将 db 和 state 文件清除,然后启动
-
这时就会从邻居节点重新同步之前的数据
-
这个情况只会出现在带检查者的节点
-
-
尽量保持至少一个检查者健康,不然数据恢复就是问题我目前也在继续研究官方的数据保存方案
-
权限问题
-
这个就经常出现了,所以大家就自行解决吧
-
-
V0.5.3 和 V0.5.6 之间有一个很大的算法变更
-
在计算地址合法性上,0.5.3 的创世文件地址可以支持 90 位的地址,但是 0.5.6 以上不支持了
-
-
-
来源:oschina
链接:https://my.oschina.net/u/2531762/blog/4878434