很多朋友可能会发现,从北京时间晚上6:00 到北京时间晚上7:30这段时间,STEEMIT.COM先是无法访问,然后好不容易可以访问了,显示的最新数据竟然是13天以前的。同时busy.org等网站也无法访问。
好几个朋友上来问我,STEEMIT肿么啦,我们这十三天的帖子会不会丢,我们这十三天的收益会不会清零?另外,还有人对STEEM表示的怀疑,是不是数据不安全啊?等等等等。
(图源 :pixabay)
尽管我在微信上答复了这几个朋友,但是我想可能这几个问题也是大家所关心的,恰好STEEMIT刚刚恢复正常,那么就发帖说一下这些问题。
API节点
为了说明这些问题的根源,我们先来说一下STEEMIT.COM、BUSY.ORG等网站都是如何访问STEEM区块链的。
我们可以把STEEM区块链看成一个大数据库(有别于传统的中心化数据库,它是去中心化并且数据不可篡改),那么STEEMIT.COM以及BUSY.ORG等网站就是用于查询和访问STEEM区块链的工具。
STEEM区块链为了便于大家访问,由RPC节点提供了一系列API,比如我们要读取一个区块的信息,那么就向节点发送发送类似如下请求信息即可:
{"jsonrpc": "2.0", "method": "call", "params": ["database_api", "get_block", [21702122]], "id": 1}
比如这个信息就会返回编号21702122区块内的所有数据。同时我们也可以通过给节点发送查询信息来获得当前最新区块编号等区块链信息。
{"jsonrpc": "2.0", "method": "call", "params": ["database_api", "get_dynamic_global_properties", []], "id": 1}
任何人都可以运行和提供RPC节点服务,官网提供的节点为:https://api.steemit.com
节点缓存信息
知道了API节点,我们不难想象,当访问量很多很大时,节点会比较辛苦。每次大家向节点提问,节点都会去做响应的运算,然后返回对应的信息。
以get_dynamic_global_properties
,这个信息对于STEEM区块链而言,每个块(3秒)更新一次。假设这三秒内有1W个查询请求,一种方式是针对每个请求我们都去查区块链并返回信息,另外一种方式是,我们知道数据并没有变化,直接返回我们缓存的信息即可,然后每三秒更新一下缓存。
上述做法保证了返回的数据正确,并且节省了开销,这就是jussi,简单总结就是在steemd之上弄了个缓存层(caching layer)。
换句话说https://api.steemit.com
并非是单纯的steemd节点,而是steemd+jussi。
JUSSI缓存故障
好了,现在我们知道了API节点,也知道JUSSI缓存层。
STEEMIT.COM、BUSY.ORG等网站就是访问官方节点https://api.steemit.com
,来从STEEM区块链查询以及向其内写入信息的。
那么如果JUSSI缓存层出故障了,会是什么效果呢?比如说我向节点询问,当前最新块是多少?正常情况下,节点应该返回当前最新块的信息,比如现在'head_block_number': 21702109,
,但是缓存出问题了,返回的是老旧的数据,返回的信息为:'head_block_number': 21342317
,落后约40W个块,也就是约13天的样子。
这就是STEEMIT.COM以及BUSY.OGR,这段时间不好用的原因。
当这种情况发生时,我们可以通过其它好用的节点访问STEEMIT区块链,比如说:https://gtg.steem.house:8090
结论
网站以及软件等通过RPC NODE API来访问STEEMIT区块链。为了提升效率节省资源,STEEMIT官方节点集成了JUSSI缓存层。
JUSSI缓存层故障导致我们取回的最新区块编号等信息不够新鲜,进而导致STEEMIT和BUSY显示的都是13天以前的帖子😀。
了解了相关原因,我们就会清楚,STEEM区块链的数据还是安全的,我们的帖子和资产都不会消失,大可放心。
STEEMIT官方 @steemitdev 的公告:
Stale Account Info Due to Caching Error
感兴趣的可以去瞧瞧
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
谢谢分享,解释的很清楚
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
我发现了一些微妙的小更新
不知道是我以前没注意,还是有更新
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
我们的大脑也会产生类似的“缓存”问题,比如最近两天发生的某些事情怎么也想不起来,但是几年前的还记得清清楚楚。stemmit出现类似的问题也就不足为奇了。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
你确定还清清楚楚记得几年前偷看刘美女洗澡的事情?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
如果事后被刘美女恼羞成怒爆揍,就记得更清楚。。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
这种辣眼睛的回忆我会主动选择从记忆里清除
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
正解,steem 区域链没事,steemit在处理缓存, 前几天steemit wallet也有类似的问题 :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
昨天吃完饭就看到微信群里还有私信,说steemit怎么了怎么打不开,我就说了句:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
看的真通透!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
最好就是像我这样,看到出问题了,关掉手机,好好的看场戏,看完出来这不就正常了吗。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
👍
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
你有沒見過Steem App與其用的API節點的列表?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
听不懂你丫说的啥意思
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
就像你說steemit busy用官方的API,那其他很多Steem Apps用誰的,有沒人整理。看來你是沒看到過。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
公共Steem Full API 节点列表 / List of Public Steem Full API Nodes
很久以前我整理的部分API列表,但是这个列表已经不新鲜了😀
https://developers.steem.io/
这里应该也列出了一些,但是同样不新鲜了
(这个页面当前我打不开)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
好像正常了
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
谢谢大神解答困惑!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
感覺越來越習慣了,囧
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
有O哥在,Steemit還會有事嗎!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
此風不可長
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
要得
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
現在全靠O哥才能把劉姓禍害平衡著~如果O哥不在,我們就慘了😭😭😭😭😂😂😂
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
当时我还以为被删帖了,钱都被收回去了
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
谢谢O神扫盲,解答了我的疑惑!谢谢!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
这种过度依靠公司服务器,分布式不足的设计,还是有很大缺陷的,这次就暴露出软肋了。
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
技术人,受教了
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit