自Filecoin开发者测试网上线后,星际鑫航的技术男神们就按捺不住了。都说Filecoin项目复杂,开发量巨大,这些程序猿怀着“代码改变世界”的理想,一直在深度参与测试、bug提交、与协议实验室团队沟通问题。
于是,不安分的星际鑫航开发团队又出来搞事情,推出最新的开发网部署成果:基于Filecoin,搭建自己的开发者测试网。(简称开发网)
下面开始相应的教程,其中涉及大量代码,非开发人员阅读可能会引起不适,请自行决定是否阅读。
1、为什么要搭建自己的开发网?
关于这个问题,就见仁见智了。目前针对不同基础的开发者,协议实验室提供的开发者测试网有三个版本。分别如下:
devnet-user
目前,这是默认使用的网络,用于测试和试验。需要用户从主节点手动部署节点, 我们之前有篇文章介绍: 如何开始测试网络挖矿 | 开发者专区系列02 连接的就是这个网络。
devnet-nightly
构建网络,专门为开发人员准备的,需要从 devnet-nightly 标签下构建, 并且在启动的时候必须将节点配置为使用 small sectors(小扇区),这个网络同步的速度会快一些。 每天 06:00 由 CI 从主节点部署,官方提示你应该尽量避免接入这个网络。
env FIL_USE_SMALL_SECTORS=true go-filecoin daemon
devnet-test
这是专门为 Infra 开发人员部署的网络,一般从 redeploy_test_devnet 标签构建。如果你是一般开发人员或者是普通用户,你也应该避免使用这个网络。
官方既然已经有三个版本的开发者测试网,为什么星际鑫航还要自己搭建呢?
理由1:官方的开发者测试网络,数据同步太慢,耗时太长。
在目前只有 6w 多个区块的情况下,同步一个节点就要耗费一周的时间。参与开发网测试,第一步就是要部署自己的节点,如果在一开始就停滞太久,效率太低。
理由2:有必要部署一条山寨版 Filecoin ,方便国内对Filecoin项目有兴趣的人群深度参与。
基于以上两个理由,星际鑫航推出了自己的开发网,方便业内同行参与,并将完整搭建教程公开。
2、搭建教程
步骤1.搭建主节点(种子节点)
我们需要重新编译 Filecoin, 为了能够清晰的看到整个 Filecoin 从同步数据,挖矿,创建矿工,发布订单到接单的整个流程,建议开启 Debug 模式。 修改方法很简单,在 go-filecoin 根目录下的 main.go 第 22 行改为 n = 5
// TODO fix this in go-log 4 == INFOn, err := strconv.Atoi(os.Getenv(“GO_FILECOIN_LOG_LEVEL”))if err != nil { n = 5}
然后重新 build
go run ./build/*.go build
然后就可以搭建主节点了,如果你之前有运行过 go-filecoin 节点的话,需要把 .filecoin 移除或者备份。
mv ~/.filecoin filecoin-bak
先初始化节点,这里需要用我们刚刚编译的时候生成的 genesisfile, 并且移除 --devnet-user flag
$ ./go-filecoin init --genesisfile=./fixtures/genesis.car$ ./go-filecoin daemon
我们编译的时候程序给我们生成了 5 个初始地址,并为每个地址分配了 1000000000000 个 FIL 币,如果你觉得不够你挥霍, 你还可以改大一些,在 fixtures/setup.json 中。
{ “keys”: 5, “preAlloc”: [ “1000000000000”, “1000000000000”, “1000000000000”, “1000000000000”, “1000000000000” ], “miners”: [{ “owner”: 0, “power”: 1 }]}
然后我们开始导入初始地址,并设置矿工:
$ mineraddr= ( j q − r ′ . M i n e r s [ 0 ] . A d d r e s s ′ . / f i x t u r e s / g e n . j s o n ) (jq -r '.Miners[0].Address' ./fixtures/gen.json) (jq−r