自从2018年9月23日我的见证人出了第一个块以来,时间已经过去了近六年。这期间我发帖介绍过见证人的选择方、见证人收益等诸多方面的内容,但是如何成为一名见证人呢?

(图源 :pixabay)
如果五六年前有人问我这个问题,趁着自己弄见证人的热乎劲,或许能说上一二;而现在虽然见证人节点跑得还算稳定,但是如何从头做起,我也有点懵圈。
所以努力回想一下自己当初如何去弄的,以及这些年做见证人了解到的信息,简单说一下如何成为一名见证人。
准备服务器
见证人做的最主要的一件事就是运行见证人节点,原则上只要配置够用且能上网的机器就可以拿来跑见证人节点,比如说我家里的大台机。
但是家庭网络的稳定性很难保证,如果不稳定、延迟大,那么轮到自己出块时,丢块就会成为家常便饭。经常丢块的见证人肯定不受欢迎的啦。
所以想运行见证人节点,首先要有一台配置够用、带宽够大、网络稳定的服务器(或者VPS)。
当年我刚开始做见证人时买了两台如下配置的VPS:
16核心E5-2697
64G内存
1280G的SSD存储
为什么要买两台呢,当然是一主一备喽,如果主力见证人出问题(或者升级)就拿备份的顶上。
这两台VPS每月耗费我640美元,因为我的见证人排名较低,做了好久见证人,我都是巨亏的,哭死。
现在回头看,当年一下子上两台VPS简直就是败家,完全可以主力节点用VPS,家里电脑上运行备份节点。而且配置方面,运行节点32G内存也够用。当然了,有条件的话,内存越大越好喽。
我现在主力见证人用的是这个配置:
上述配置每月192美元,目前我的见证人节点收益也就刚刚够支付这个费用的(再跌就又到亏损状态了),这还只是VPS费用,没算人力呀,家里电脑的费用+电费等等,说是为爱发电,一点不假呀。
服务器准备就绪后,需要安装Ubuntu 22.04.4 LTS,然后根据自己的需求,做适当的加固,不然三两天被黑,就成笑话了。
编译 & 运行hived
运行HIVE见证人节点,其实就是运行hived程序,所以我们首先需要编译hived。
编辑hived的具体操作可以参考Building hived (Hive blockchain P2P node),别忘记同时编译命令行钱包,我们需要用它来进行一些设置工作。
这里说一下为什么要自己编译而不是使用网上现成的二进制文件,这是因为hived可能时不时地发布新版本或者硬分叉之类的,自己编译就可以第一时间更新节点,而不用等别人发布新版本的二进制文件。
(顺便插一句,编译可以在其它机器上完成,配置(尤其是CPU主频、线程数)越高的机器,编译起来越快一些。)
编译完成后,我们就可以在服务器上运行自己的HIVE节点啦。
初次运行,我们还需要同步区块链历史数据。
好多年以前,数据量不是很大的时候,我们可以直接从链上同步数据,但是当前未压缩版本的block_log数据已经高达934G(压缩版本当前为488G,这个数据不同机器上可能不同),直接从链上同步将会耗费很长时间。
好在@gtg 大佬提供压缩版本block_log以及block_log.artifacts的直接下载。
我们下载相应的文件到对应的目录,然后replay(重播)区块链即可。
这里着重提两项设置,一个是在内存中replay/run HIVE节点,在设置文件中:
将:shared-file-dir = "blockchain"
修改为:shared-file-dir = /dev/shm
如果使用压缩模式,那么配置文件中需要添加如下设置:
enable-block-log-compression = 1# Block log zstd compression level 0 (fast, low compression) - 22 (slow, high compression)block-log-compression-level = 15
启用见证人
好,现在我们已经有了服务器并将HIVE节点编译&运行起来,这是所有HIVE节点都要做的事情。那么作为见证人节点,又要做些什么呢?
首先我们需要一个账户,这个可以是我们现有的账户也可以是独立的账户,比如我就直接用@oflyhigh,有的见证人则用类似 @oflyhigh.witness这样的账户。
有了见证人账户后,我们还需要给它准备一对出块密钥对,我们可以使用自己习惯的工具生成密钥对,命令行钱包指令如下:
suggest_brain_key
上述指令会生成如下密钥对:
"brain_priv_key": "TANGY VOYAGER SALIVAL BOGGISH REFEREE ARGOTIC AZIMENE JACKASS EMBAR TOILING ENDOW VALGUS BEHOOT SYNEMA BOOD BOOLYA","wif_priv_key": "5KcXsZuHRSxc4R6STHDzg3r8VXu69SuQM7QcRPFW9MoS67D7EUf","pub_key": "STM7TfdVScSioLUbAsj9X5PcpZP8xBigAiYsRUvmZM39iXRzXogKf"
接下来要做的事情就是在节点配置文件中添加见证人相关设置,比如:
witness = "oflyhigh"private-key = 5KcXsZuHRSxc4R6STHDzg3r8VXu69SuQM7QcRPFW9MoS67D7EUf
然后,别忘记启用见证人插件(其它插件则根据个人需要启用):
plugin = witness
接下来,我们在网络上启用 \注册见证人,命令行钱包指令如下(需要对应账户的active key以上权限):
update_witness "username" "见证人网站或者介绍url" "STM7TfdVScSioLUbAsj9X5PcpZP8xBigAiYsRUvmZM39iXRzXogKf" {"account_creation_fee":"3.000 HIVE","maximum_block_size":65536,"hbd_interest_rate":2000} true
做完这些以后,就可以开始拉票,然后等待见证人出块啦。可以使用如下工具查询见证人排名以及出块、丢块情况:
其它信息
以上就是运行一个见证人节点的简单介绍。
除此之外,见证人们还要及时更新区块链系统的一些参数(witness_update)以及发布喂价(feed_publish)等,来维持HIVE区块链的稳定运行。
为了避免见证人节点崩溃导致丢块等,见证人们还需要设置备份节点以及监控\切换脚本来完成故障时主备切换等等。
还有就是及时跟进处理各种版本更新、硬分叉等等,有能力的还要参与代码开发、编写等等等等。
总之,除了运行见证人节点外,还要尽可能地为HIVE区块链做贡献,这样才是一个合格的见证人,才能得到更多用户的投票支持哦。

(图源 :pixabay)
这里顺便求一下见证人票:
欢迎大家支持见证人:@abit 以及 @oflyhigh
更欢迎***设置@oflyhigh 成为你的见证人代理***哦!非常感谢!