判断一个区块链是否靠谱有一个指标就是看链跑的时间久不久, 还有就是上线率/Uptime和宕机时间/Downtime, 有点类似计算服务器的上线时间.
不靠谱的链一般没几多久就停了(Halted). STEEM区块链不算新链了, 已经跑了有7年之久, 我很好奇STEEM链的上线时间和故障率, 本文就来计算一下.
STEEM在过去因为链的BUG停过几次, 我记得有一次是STEEM在硬分叉的时候引起了新的资源计算模型, 但有BUG, 导致链停了, 虽然当时Steem Inc组织程序员紧急改BUG, 再号召见证人同时重启链, 不过那几天折腾过程中停了有2-3次吧.
比特币BTC据说到现在为止历史上一共停过两次.
创世纪块和时间 Steem Genesis Block and Time
每条区块链都有一个创世纪块, 也就是第一块, STEEM上的创世纪块是在 2016-03-24 16:05:00.
产生一块所需要的时间
这个每条链不一样, STEEM是基于DPOS共识算法(Delegated Proof of Stake), 每3秒产生一个块.
最新块和时间 Head Block
我们可以通过 Steem JS 库来获得链上的最新块 (Head Block):
1 2 3 4 5 6 | steem.api.getDynamicGlobalProperties(function(err, result) { var latestBlock = result.head_block_number; var latestBlockTime = result.time; console.log(`STEEM区块链上的最新块/Head Block是 ${latestBlock}.`); console.log(`STEEM区块链上的最新块/Head Block时间是 ${latestBlockTime}.`); } |
steem.api.getDynamicGlobalProperties(function(err, result) { var latestBlock = result.head_block_number; var latestBlockTime = result.time; console.log(`STEEM区块链上的最新块/Head Block是 ${latestBlock}.`); console.log(`STEEM区块链上的最新块/Head Block时间是 ${latestBlockTime}.`); }
STEEM区块链的长度时间(Chain Age)
有了最新块的时间, 还有第一块的时间(创世纪块/Genesis Block), 我们做一下减法, 就可以得出链的时间长度.
其中 A 就是链的长度, T是最新头步块的时间戳/Time Stamp, 而T’是创世纪块的时间戳.
通过Javascript函数来计算两个时间字符串的间隔时间/秒
我们需要计算两个时间字符串间隔时间/秒数, 日期时间的格式为 “YYYY-MM-DD HH:MM:SS”. 比如: “2016-03-24 16:05:00”, 链上的都是UTC时区.
1 2 3 4 5 6 7 8 9 | function secondsBetweenDates(dateStr1, dateStr2) { const date1 = new Date(dateStr1); const date2 = new Date(dateStr2); // 毫秒差另 const diffMilliseconds = Math.abs(date2 - date1); // 转成秒数 const diffSeconds = diffMilliseconds / 1000; return diffSeconds; } |
function secondsBetweenDates(dateStr1, dateStr2) { const date1 = new Date(dateStr1); const date2 = new Date(dateStr2); // 毫秒差另 const diffMilliseconds = Math.abs(date2 - date1); // 转成秒数 const diffSeconds = diffMilliseconds / 1000; return diffSeconds; }
有了秒数就可以推算出其它时间单位, 如: 分时天年.
STEEM区块链的宕机时间
利用最新的块号和每个块所需的时间(即 3 秒), 我们可以计算生成所有块所需的总时间(头块号) – 令其为 t.
然后通过简单的数学:
总宕机时间为
我们可以用下面的JAVASCRIPT函数来计算STEEM区块链的宕机时间:
1 2 3 4 5 6 7 8 | function compute_down_time_for_steem_blockchain(latestBlock, latestBlockTime) { latestBlockTime = latestBlockTime.replace("T", " "); const genesisBlockTime = "2016-03-24 16:05:00"; const timePerBlock = 3; const secondsBetween = secondsBetweenDates(genesisBlockTime, latestBlockTime); const downTime = secondsBetween - (latestBlock * timePerBlock); return downTime; } |
function compute_down_time_for_steem_blockchain(latestBlock, latestBlockTime) { latestBlockTime = latestBlockTime.replace("T", " "); const genesisBlockTime = "2016-03-24 16:05:00"; const timePerBlock = 3; const secondsBetween = secondsBetweenDates(genesisBlockTime, latestBlockTime); const downTime = secondsBetween - (latestBlock * timePerBlock); return downTime; }
更新: Steem 区块链信息概况
我已经把上面的信息计算集成到了 Steem 区块链信息概况, 打开工具你就可以看到STEEM区块链实时的上线率(Uptime)/总宕机时间(Downtime)/总宕机率/链总时间(Chain Age).
Steem 坐火箭🚀!
- 您可以通过 rentsp 来租赁Steem Power!
- 您可以通过 tron2steem 交换 波场币/TRX/USDT/USDD 到 STEEM!
- 您可以通过 steem2sui 交换 STEEM/SBD 到 SUI!
- 您可以通过 steem2sol 交换 STEEM/SBD 到 SOL Solana 索拉纳!
- 您可以通过 steem2eth 交换 STEEM/SBD 到 ETH Ethereum 以太网!
- 您可以通过 steem2usdt 交换 STEEM/SBD 到 Tether USDT (波场U, TRC-20)!
- 您可以通过 steem2trx 交换 STEEM/SBD 到 波场 TRX (TRON)!
- 您可以通过 steem2bts 交换 STEEM/SBD 到 比特股 BTS (BitShares)!
- 在 SteemYY 免费注册 STEEM 帐户!
- Steem 区块链浏览器
- ChatGPT/Steem 机器人: 命令 !ask
- Steem 见证人排名/API
- 其它 Steem 工具
支持我的工作 支持我成为 见证人
我的一些贡献: SteemIt 工具, API接口, 机器人和教程Steem/Steemit区块链
- 如何构建一个具有重试机制的 Steem 区块链见证人投票检查器
- STEEM区块链上帐号等级80并且超100万SP - 终于成为了大户(大鲸鱼)
- STEEM兑换ETH以太网工具上线两个月一共兑换了10个ETH!
- 怎么样计算STEEM区块链的上线率(UpTime)和宕机时间(DownTime)
- 系统设计: Steem区块链ChatGPT机器人
- 《steem 指南》- 查看踩人与被踩的记录
- SteemIt Finally Reputation = 70! 盼星星盼月亮, 总算盼来70级!
- STEEMIT cn区最低保障系统 上线了! Introduction to the CN Wechat Group Voting Robot @justyy
- SteemIt 好友微信群排行榜 支持显示数据统计和API了!
- 数据初步分析系列 STEEM中文微信群排行榜单 - 中位数, 平均, 和标准方差
- 大家好才是真的好, YY银行足球队, 你还有啥理由不加入银行?
- YY 银行开启互抱大腿模式 (mutually-beneficial voting scheme)
- 哇哈哈, 我已经是 utopian-io 的 moderator 团队的一员了!
- 返璞归真, 重新成为小鱼 - 祭奠逝去的1万SP
英文: How to Compute the Chain Age, Uptime and Downtime for Steem Blockchain?
强烈推荐
- 英国代购-畅购英伦
- TopCashBack 返现 (英国购物必备, 积少成多, 我2年来一共得了3000多英镑)
- Quidco 返现 (也是很不错的英国返现网站, 返现率高)
- 注册就送10美元, 免费使用2个月的 DigitalOcean 云主机(性价比超高, 每月只需5美元)
- 注册就送10美元, 免费使用4个月的 Vultr 云主机(性价比超高, 每月只需2.5美元)
- 注册就送10美元, 免费使用2个月的 阿里 云主机(性价比超高, 每月只需4.5美元)
- 注册就送20美元, 免费使用4个月的 Linode 云主机(性价比超高, 每月只需5美元) (折扣码: PodCastInit2022)
- PlusNet 英国光纤(超快, 超划算! 用户名 doctorlai)
- 刷了美国运通信用卡一年得到的积分 换了 485英镑
- 注册就送50英镑 – 英国最便宜最划算的电气提供商
- 能把比特币莱特币变现的银行卡! 不需要手续费就可以把虚拟货币法币兑换
微信公众号: 小赖子的英国生活和资讯 JustYYUK