最近几天,Steemit的不稳定性给用户带来了不少麻烦。
在我看来,主要原因是,Steemit的 Public RPC full node承受了太多请求压力。
Steem节点介绍
Steem的底层是个巨大的P2P网络,主要由三种节点构成:
Witness Node: 由见证人运行,用来验证交易,确保steem底层网络安全,并发行steem加密货币
Seed Node: 类似于传统P2P的种子节点,主要用来广播交易,并提供了基本的登录和数据库API
Full Node: 类似于传统web服务器,主要提供了对于数据访问的API,比如tags, followers, market history, exchange,Steemit, Busy, Chinabb,以及Cnsteem, Steemkr, 只有依靠这类节点才能运行。
上述三种Node, 有些功能是重叠的,可以通过节点的config进行控制。
节点数量和运行成本
运行成本: Witness Node < Seed Node < Full Node , 也就造成了相应的节点数量依次递减
Full Node的运行成本到底有多大?
运行一个Full Node所需机器至少要 > 100GB 内存
首先市场上满足这种要求的云服务商不多
最便宜的应该是 Privex (见证人@someguy123的公司), 一个月要200刀,初装费200刀
同等配置,使用其他云服务商,一个月费用要500刀-1000刀
相比之下,一台witness服务器月花费大约60刀
贴一张价格配置图:
可用公共Full Node
目前只有这5个可用full node, 主要由见证人提供,而且大部分在欧洲,我的cnsteem服务器在香港,使用官网的steemd.steemit.com比较稳定
现在steemit日活跃用户大约3万,日发帖约8.5万,日投票40多万
结果90%的请求压力集中在官网的full node上了
另外Busy.org, ChainBB 这几天之所以运行稳定, 应该是他们有自己的私有full node.
解决
我自己想到的有以下三点
前30名见证人提供更多可用full node, 不管是Public 还是 Private 的,都可以减少steemit node的压力
大家自己的机器人修改一下node的节点,gtg.steem.house:8090 就非常稳定,可靠
优化一下steem底层,减少内存的使用,这点难度应该很大...
结尾
https://cnsteem.com 是我个人维护的一个steemit 中文前端界面,其是steemit官网UI的克隆,主要针对中文区进行开发,代码已完全开源,欢迎大家使用,在一定程度上也能减轻steemit官网的压力..
我有计划,把自己目前运行的一台witness node 升级成为 private full node, 供 cnsteem.com使用, 就先不再号召大家选我当见证人了。。