小白也能自学挖矿|2021年最后一个月我也加入了 likecoin 验证人行列
注册马特市时,我是连以太坊都没听说过的小白。然而命运是神奇的,马特市不但带我入币圈,还让我在币圈折腾得越来越深入。
当初折腾liker land 发奖金实验时,@碼農日常大小事-裏 给了我一段代码。看了一眼又是node又是服务器,还cosmoJS。
反正都研究到一半了,不如顺便看看cosmos SDK??研究cosmos SDK目前对我来说就是开启新世界大门,和当初注册马特市知道以太坊一样。基于以上原理,我觉得还是先折腾likecoin验证人节点好了,毕竟折腾验证人不需要会编程,照着文档敲命令就行。连验证人逻辑都走不顺,还想研究cosmos SDK??!!
今年11月和同学聊天说起最近的币价,同学冒一句:你为什么不去搞个服务器挖矿?
基于以上背景烘托,我决定也去研究研究当PoS验证人的事。
目前市面上基于PoS机制的币那么多,我要选哪种币来当自己的验证人试水热身?第一个进入脑海的当然是likecoin。选择likecoin作为第一个挖坑币的原因也是经过深思熟虑的:
- likecoin是我真正实际接触过的第一个加密货币,对likecoin了解最深。据我观察,在马特市发文吐槽一年多时间里,likecoin币价有上涨但是基本属于健康上涨。另外likecoin有实用价值,likecoin的推广可以切实解决文字创意工作者收益问题。既然要架节点挖矿,我当然不想挖一堆一文不值的破币出来,所以要选一个自己了解并认为有前景的币挖,不然就是浪费时间浪费精力浪费租服务器的钱。
- 对比了2-3种PoS机制的币,likecoin是对硬件要求最低的,很明显作为第一次架节点的小白如我,选likecoin作为起步是比较稳妥和保险的。
- likecoin不但对硬件要求低,还有docker image。比较了包括likecoin在内的几种币,明显搭建likecoin是最简单的。按照likecoin文档说明,好像随便跑两下docker-compose就完事。所以小白如我,当然选likecoin起步。
当然了,现实和官方文档总是有点差距。在小白第一次摸石头过河的过程中,我大小问题还是遇上了一些。所以实战才是王道。
以下是我这些天折腾likecoin验证人的心得体会,还有踩坑步骤:
花大约一天时间阅读likecoin文档后,对成为likecoin验证人的几大基本步骤和逻辑心中大致有数后,开始琢磨上手开动。
按照官方指示,小白要成为likecoin验证人,需要经历的主要步骤如下:
1 。 Setup local test node:在本地跑顺测试代码
https://docs.like.co/developer/likecoin-chain-api/setup-local-test-node
这一步基本就是把代码在本地跑跑体验体验流程,为后续热身。如果你具备基本linux操作系统和docker基础,完成这一步很容易。照着官方文档做,1~2小时后就会看到height在终端+1+1往上跳了。
如果你在折腾likecoin之前已经折腾过其他基于cosmos SDK开发的币种,想节省时间跳过这一步也没问题。
而摸石头过河的小白如我,当然是花了1~2小时在本地小心翼翼折腾过的。
2 。 买服务器准备加入testnet链
本地折腾顺后,准备加入测试链。
加入public testnet和加入mainnet,步骤差不多,所以官方文档都写在一页上。
https://docs.like.co/validator/likecoin-chain-node/setup-a-node
目前我的服务器选在digital ocean上,选digital ocean的原因当然是因为便宜。
我按官方文档要求去digital ocean上搞了个1核 2G RAM的droplet,感觉跑得挺顺畅的。
因为 likecoin 需要 docker-compose,所以安装前可以要求 digital ocean 在 ubuntu 上预装docker。
droplet 跑起来后,可以检查一下 docker 有没有安装。
docker version docker-compose version
很遗憾,目前 digital ocean 预装的 docker-compose 版本貌似只有 1.27,不符合 likecoin 要求的 >= 1.28,所以还需要自己升升级。
如何升级docker compose,参考官方文档。
3 。 加入节点
docker 版本环境检查无误后,开始照着官方文档加入 testnet。likecoin 的节点步骤真的算简单的:如果 Setup local test node 这一步热身训练开展得比较好的话,这里可以直接加入 mainnet 了。
这里我就直接偷懒了,跳过 testnet 直接搞 mainnet。所以磨刀不误砍柴工,玩玩 local test node 没错。
官方的步骤写得真的超简单,照着敲就好。然而过于简单的文档难免有疏漏,在 init 那一步我就遇上麻烦了。
按照官方文档跑 docker-compose run --rm init
时,死活弹出没有权限不能在项目文件夹下创建.liked……
看到没有权限,我立马反应是用户权限问题。
这一点我百思不得其解,到处上网搜“为什么root用户没权限”。当然了遇到问题可以去discord,但是我又不好意思去问一个linux权限问题(显得自己太小白,怕被 discord 大佬们鄙视)。
于是我在这个问题上思考了两天两夜,但还是没想明白……服务器是很贵的,不容许我这样没有效率地思考下去,所以最后还是厚起脸皮去 discord 群咨询了这个问题。然后 @JohnShao 大神冒出来告诉我配置 .env 文件还需要修改 uid。
官方文档教你如何配置 .env 时,貌似忘了写 uid 的问题(貌似另一个文档页面有提,但此乃后话)。
被大神提醒后,我赶紧跑去看 .env——果然人家白纸黑字写着 root 用户权限问题,都怪自己不仔细,白白浪费 2 天时间折腾 root 权限,解决方向都弄错了。
把 uid 设为 0 后,我的节点瞬间跑起来了。有了 uid 权限瞎折腾的经验教训后,我意识到配置文件没有一行代码是白写了。所以趁着节点跑起来间隙,感紧研究研究 config 的各种配置都在说啥。
4 。 同步节点
节点跑起来后,需要等待节点和 likecoin chain 的最新节点同步。同步完成后,才可以创建validator,加入验证人行列。
当然同步节点是需要时间的。按照官方说法,貌似通过设置 [state-sync] 可以快速跟上大部队。我又照着 [state-sync] 指示做了一次,貌似不好用,这时 William C 大神又跳出来告诉我另一个比较简单的办法:抄近道把已有节点数据下载下来,快速同步。
按照 William C 提供的教程,只要把最新数据下载并解压到 .liked 就可以了。然鹅我去查了一眼最新数据,貌似要下载几十G呢。
看了一眼最新数据有 79G,下载估计也要不少时间。万一我的节点就差一点就同步好了,这时再去折腾下载解压不是劳民伤财嘛。所以对于这个解决方案我持比较被动接受态度。
但是 William C 大神告诉我如果不这样做,等节点自己 catch up 要很久。不听老人言吃亏在眼前,既然大神都说了,就照做吧。
于是我开始下载数据,按照教程 readme 步骤解压到 .liked,然后继续 sync,果然我的节点瞬间从 9 月跳到了 11 月,整整前进了 2 个月。
下载 79G 数据大约耗时 2~3 小时,比节点自己 catch up 快了很多很多很多倍。睡一觉起来后,用 curl localhost:26657/status 查状态,万年不变的true终于变成false了。
所以大神说啥就是啥,早点听大神的话我应该2天前就可以完成同步了。
5 。 创建validator
当 catching_up 状态变成美妙的 false 后,终于可以创建validator,加入验证人行列了。
按照官方说法,再来一次 create-validator 就大功告成啦。然鹅实际情况总是比理论要困难些。这时我又遇上了gas 费不足的问题:
那个 delegator 钱包,我明明有钱啊,为什么????
刚刚状态变 false 的好心情瞬间跌入谷底,继续看文档是不是又忘了什么。看完 likecoin 又去看 github,怎么看我都觉得自己这次操作无误。
郁闷 1 小时后,思考:是不是官方文档又像忘了补充 uid 一样,忘了什么……这种小白问题 discord 群多半讨论过,于是上 discord 搜搜聊天记录。
还果然被我搜到了:貌似加入--fees 即可。
--fees 200000nanolike
指定 fees 后,gas 不足问题貌似解决了,然鹅我又得到了另一个错误——timed out。
既然timed out,不然过两分钟撞撞运气再来一次,然鹅依旧error,这次 error 说 validator 已创建:
看到validator已创建错误,赶紧把 txhash 值拿到 big dipper上去查:
哈哈,原来已经创建成功了,“potato”大名也出现在了验证人行列。虽然还是 inactive 状态,但还是超级开心。赶紧 stake 几个币给自己:
弄到这一步,特别感谢 @JohnShao 给予我很多提示,我才走到这一步。
在这个时候加入 likecoin 验证人可能不是明智的决定,inactive 的验证人名单有四十多个,要挤进前 50 竞争激烈。但不排除未来会增加验证人数量,到时候我说不定有机会呢。
作为从 pwd 开始自学的野路子业余程序员,我不会忽悠大家把币投给我。这个问题比别人凭什么给你拍手一样(就因为抱团抱得好??!!),所以别人凭什么要把币投给我——因为我是一个野路子出身的业余程序员??
目前 50 个 active 验证人里面,很大一部分应该都是做技术出身的专业人士。我不知道他们是怎么 pick 技能的,我的大部分 IT 技能都是通过自学看 视频 / 文档 / 教材 / 问大神 自学的。如果我能成为一个 active 的验证人,我希望我的实际经历可以鼓励更多没有 CS 背景的同学投入到自学大军中——只要肯自学,人人都能当验证人。
有了第一次折腾 likecoin 节点,未来我可能还会去玩玩其他币种的验证人,或者折腾折腾Cosmos SDK,或者忽悠那个叫我去挖坑的同学也来了解 likecoin,会把这些经历也写成技术笔记,帮助更多的和我一样的小白了解技术。
近期我会写一个小白自学 linux + docker 的大方向教学文。折腾 PoS 机制挖矿,基本默认矿工是一个具备 linux 基础的人士,不然连文档方向都找不到。希望我的野路子自学经历可以让更多小白不再对技术望而却步,同时也能 pick 一些技术。
当然了,之前我写的教学文基本以失败告终,如果这次继续失败,就当自己记笔记了。
Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!