Horo
Horo

目前是 LikeCoin Chain 验证人 Yoitsu 背后的家伙,以及 CDC/CFC 划水组成员(笑)。偶尔会变身成狐狸。( @foobarz )

MLog #20211201

聊聊第 23 号议案,和备份 LikeCoin 验证人节点内容的方法。

以及虽然和主题没什么关系,但是 @RitaShields 前几天决定要隐退了,还是要感谢他/她之前的贡献。

关于 LikeCoin Chain 的第 23 号提案

可以在 BigDipper 查看提案的摘要。

有熟悉 LikeCoin 和赞赏公民的马特市民应该都知道,「化赞为赏」除了有赞赏公民的直接支持(不管是 Classic 的均分还是 2.0 的定点支持)以外,还有一笔每日根据拍手数按比例分配的「创作基金」。

一直以来,创作基金都是由 Liker Land 团队持有的钱包负责派发的(大概是这个意思吧,@黃牛山人 😶),除了广大 Liker 和赞赏公民从官方口径中知道创作基金是按拍手数比例分配,而且赞赏公民的拍手比重更大以外,这个创作基金分配的方法差不多算是个黑箱了。(笑)

当然山人他自己也是想做出些改变的,这个把创作基金分配从 Liker Land 团队向一个非中心的社群间转移的计划也是他想出来的。

出于效率等等的考虑,这个小组的人数不会太多,最好也是奇数。所以原定的计划是三人,但是没想到在 Discord 讨论的时候大家反应激烈,最后有……多达七人有参加的意愿😂

所以就愉快的决定先从七个人开始了,虽然启发这一提案的 @黃牛山人 其实一开始是不想作为这个新小组的成员的,就像 LikeCoin Chain 刚启动时的七大验证人并没有 LikeCoin 自己一样。以及其间 @leafwind 担心自己可能没有那么多时间在这个工作上面。但都被咱们强行留下来了(不是)。

那么这个小组的工作是什么呢,基本上就是下面两点:

  • 决定每月和每日派发的创作基金的金额。
  • 检讨和优化创作基金的分配机制,以及根据分配机制操作创作基金钱包分发创作基金。

例如用什么样的方法计算创作基金的分配比例、不同内容或创作者的权重(例如 Liker.Social 上赞赏键的权重就相对低一些,这是 Liker.Social 运营方面自己主动提出的。后续也可能会考虑用清晰的方法来减少刷拍手对创作基金的影响这样子的。)等等。至于发放创作基金的钱包也正在计划转移到由小组成员共同持有的 Multisign 钱包里。

虽然还有些问题没有考虑到,例如该如何向 Likers 和 赞赏公民们传达小组活动的消息、以及公开分配方式的程度(全藏着掖着又会被骂黑箱,全部公开也许会被不怀好意的家伙学到反制的方法,好难啊……),但毕竟千里之行始于足下嘛。

那么作为初期成员的咱会有啥想法呢?

咱目前能想到的大概就只有想让这个小组的成员更加多元化了吧,目前的七名成员好像都来自大中华地区。虽然也是因为 LikeCoin 的开发者和创作者大部分都在汉字文化圈的缘故。假以时日 LikeCoin 能在其它语系的用户之间流行起来的话,就有必要有能够流畅理解不同语言内容的小组成员了吧,如果有计划以文章的内容作为创作基金分派考虑的因素的话。

备份 LikeCoin 验证人节点的手段

这一切都要从 @碼農日常大小事-裏 的跑路操作说起……

虽然咱后来也差不多干了和他差不多的事情…… (不过还好咱的 Key 没被咱删掉,算不算是删库跑路 Lite 版(笑))

关于备份验证人节点的方法嘛,其实已经有验证人同仁们给出自己的解决方案了。例如 Nukken 有一个脚本每日生成验证人节点数据的快照。

咱的话,因为咱把仓库和验证人数据放在了一个 btrfs 子卷(btrfs 的子卷差不多是一种特殊的目录,可以作为挂载点独立挂载)里,所以很自然的就用 btrfs 的快照和发送/接收命令定期将子卷的数据发回到家里的 NAS 上。

sdc   8:32  0 200G 0 disk 
└─sdc1  8:33  0 200G 0 part /likecoin-chain
                /home/horo/likecoin-chain 

在咱这个例子里, /likecoin-chain 是整个 btrfs 卷,而 /home/horo/likecoin-chain 是其中一个子卷,所以 /likecoin-chain 目录大概像这个样子:

horo@localhost ~ % ls /likecoin-chain
likecoin-chain likecoin-chain-20211128 likecoin-chain-20211129
...

出于不知道验证人节点运行的时候会更新什么文件,所以在备份之前需要先让节点停下来。然后创建快照:

# btrfs subvolume snapshot 原始子卷 快照子卷
加上 -r 参数的话,就会创建一个只读快照。
date 命令返回今天的日期和时间,也可以指定一个格式字符串来按某个特定的格式输出。
以 $ 包围的命令会以它的结果填充,例如 echo "root_$(date +"%Y%m%d")" 的 结果是 root_20211201 (咱写完这篇文章的时间,汝自己运行的话结果肯定会和咱有变化)。
# btrfs subvolume snapshot -r likecoin-chain likecoin-chain-$(date +"%Y%m%d")

创建完快照以后就可以把节点重新开起来了,以及可以通过 btrfs send 和 btrfs recieve 在两个 btrfs 卷之间传送子卷(或子卷的快照),不过要是只读的才行:

# btrfs send <path/to/your/subvolume> | btrfs recieve <path/to/your/save/place>

如果创建快照时忘记设置只读,可以通过 btrfs property 命令设置上(当然也可以取消只读):

# btrfs property set -ts <path/to/your/subvolume> ro [true|false]

汝也可以传递增量快照,就像这样:

# btrfs send <path/to/your/subvolume> -p <path/to/your/parent_subvolume> | btrfs recieve <path/to/your/save/place>

不过汝要先把父快照传送到目标才行。

这个命令也能和 ssh 命令搭配使用,像这样:

# btrfs send /likecoin-chain/likecoin-chain-20211128 | ssh root@somewhere "btrfs receive /data/backups/"

把上面的内容整理成一个 Shell 脚本,再搭配上 Crontab 或者 Systemd Timer,就可以定时备份了。要点就是 btrfs 的大部分命令需要以 root 用户运行,而定时运行的时候又不太方便输入 root 用户的密码(以及正经人不会允许 root 用密码登录 ssh 的),所以最好是设置一对密钥。

虽然还是没什么关系,在写这篇文章的时候咱也在一边看 Discord 的聊天记录, WeLike 的验证人节点所在的 VPS 服务商似乎出了问题让它的节点 Jailed 了……

One More Thing - 设计和 Discord 搭配使用的 LikeCoin 辅助机器人

前几天 Phoebe 在 Discord 里问有没有方法通过机器人在链上有新提案的时候发消息提醒大家、像是存入保证金或者投票什么的,然后咱就去查了一些资料。

Cosmos SDK 有 REST API 可以拿到链上的提案列表。于是接下来就是找个方法写机器人了。结果咱之前了解到的一个比较流行的 Python 绑定(咱也就稍微多会写一点 Python 了嘛……)因为 Discord 强行要求更新到 APIv2 而决定停止开发了(具体的细节可以看作者的 Gist),后面提及的几个完成实现的绑定里也就只有 JavaScript 咱还能算是用过了。(剩下的都是些什么玩意儿啊……

于是如果咱真的有想法来做的话,大概对咱来说也许是个挑战吧。虽然 Liker.Social 还鼓励咱去申请 Grants 来着。

One More Thing Again

刚才看了眼咱自己的验证人节点的 RPC Status,大概快能赶上大部队了吧(还有几万块的样子,但是同步的速度还算是挺快的)。所以咱大概马上就能再次连线了,如果咱还能再回到活跃验证人的行列的话,咱就去下调佣金率去了。(虽然每天只能变化 10%……)

以及如果咱拿佣金充实自我委托或者拿去 Osmosis 一类的地方提供流动性的话,不知道会不会招来反对意见😢……

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

狼与马特市的幻想物语

Horo

(没错这个围炉目前就是来蹭热度的,所有的文章都不会上锁。当然汝要是真的想支持咱的话订阅也 OK)

066
加载中…
加载中…

发布评论