IOTA 私链搭建流程是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
版本说明
目前已经尝试并成功的版本:
V0.5.3 完美兼容
V0.5.6 .... 持续迭代 ING
实现过程
仓库:
官方 : https://github.com/iotaledger/hornet
步骤
编译并加入环境变量
修改配置文件,启用监察者模式
snapshots 模式修改为 global
配置 Coordinator
深度控制,最高可达 24 深度,16/60s 足够跑 45 日
merkleTreeDepth 深度参数
intervalSeconds 出块间隔
mwm 用于 POW 的工作难度 影响 attachToTangle 时的参数
stateFilePath 管理当前的链状态 若出现 db 与 状态不符 则无法启动

基本参数说明
生成监察者种子
cat /dev/urandom |LC_ALL=C tr -dc 'A-Z9' | fold -w 81 | head -n 1
得到类似的占位符
KKSFLBYKDCAVQHDVNCXQLHJXZZJJWLXGY9RNUQSLFEEVYVMGXFMZLKJPNRUNKSBRPCFKFWEUXCVRBBCDB
种子的规则为 A-Z 加上数字 9 的随机 81 位字符
生成Merkle树
由上文会输出 merkle tree 的 root address 需要手动配置到 confing.json
配置 coordinator.address

创建创世数据(对初始币的分配)
例如 9FJYQPJQZGXWLEUZJFFUBHHIEOHRPTCPMBHOBCYPFPWN9YW9YTQ9GYKYNGGYI9OYHCIENGUXTRTHVREBA;2700000000000000
address 必须为 81 位长度的地址,不能是带校验核的 90 位 address
amount 的总量自行决定,但是在官方提供的 sdk 中校验的总量为 2779530283277761
创建一个种子并获取一个有效地址 (具体的种子和地址的规则会在另一篇文档中详细说明)
将该地址和待分配的币填入 snapshots.global.path 中的文件 格式为 address;amount
已监察者引导方式运行
至此已经可以正常的用 SDK 进行 API 的操作
-------------------------------------------
配置对等邻居节点
配置 peering.json

配置好之后重启服务即可
普通节点搭建之后,将监察者检点配置为固定的邻居节点即可完成同步
说一些可能会提示的错误
在计算地址合法性上,0.5.3 的创世文件地址可以支持 90 位的地址,但是 0.5.6 以上不支持了
这个就经常出现了,所以大家就自行解决吧
其实就是 state 与 db 的配置不符了 发生这种情况大多数是因为节点异常退出导致的
想要修复这个其实只要将 db 和 state 文件清除,然后启动
这时就会从邻居节点重新同步之前的数据
这个情况只会出现在带检查者的节点
network aleady bootstrapped
尽量保持至少一个检查者健康,不然数据恢复就是问题我目前也在继续研究官方的数据保存方案
权限问题
V0.5.3 和 V0.5.6 之间有一个很大的算法变更
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注天达云行业资讯频道,感谢您对天达云的支持。