Steem的源码中普通版本和和不带(No MIRA)字样版本的区别?

in #cn5 years ago

STEEMIT的官方github最近每次发布新版本都至少同时发布两个。


(图源 :pexels.com)

比如最近一次HardFork的版本就分别为:

  • Steem 0.22.0
  • Steem 0.22.0 (No MIRA)

MIRA我知道是啥,其实是Multi Index RocksDB Adapter首字母的缩写,简单来讲就是通过数据库技术,降低节点的内存等开销。

DENABLE_MIRA = [OFF/ON] 选项

那么这两套代码是完全不同的东西嘛?显然是不可能的,其实就是通过一些宏定义开关或者选择一些功能,比如这段代码:

那么既然如此,steem直接发布一套代码,然后提供一个编译选项让大家自己设定是否开启就可以了啊?事实上steem的代码中确实可以设置这样的选型,那就是:

DENABLE_MIRA = [OFF/ON]

比如我们想编译带MIRA支持的程序,那么就要传入DENABLE_MIRA = ON;反之,传入DENABLE_MIRA = OFF或者不传任何参数即可,因为OFF是默认选项,这个选项所作的工作如下:

简单来讲就是在编译过程中,给编译程序传入DENABLE_MIRA,其实就是相当于代码中加入了如下语句:

#define ENABLE_MIRA

v0.22.0 v0.22.0-no-mira 版本区别

好了,我们知道了MIRA是什么,也知道了开启MIRA支持的神奇选项(DENABLE_MIRA = [OFF/ON]),那么问题来了,STEEMIT发布的两套源代码到底有什么区别?

莫非是一套里边默认启用了MIRA(DENABLE_MIRA = ON),另一套里边默认关闭的了MIRA(DENABLE_MIRA = OFF),我一直是这么认为的,不过不确认一下不放心啊!

如何确认呢?只需使用如下命令即可:

git diff v0.22.0 v0.22.0-no-mira --stat

返回信息如下:

原来就差了一个文件啊,也就是下图中箭头指向处文件:

我们可以直接用如下命令查看具体差异:

git diff v0.22.0 v0.22.0-no-mira -- Dockerfile

返回如下:

也就是说v0.22.0的Dockerfile中启用了MIRA(DENABLE_MIRA = ON),而v0.22.0-no-mira中默认关闭的了MIRA(DENABLE_MIRA = OFF)

不过好像对不使用Docker的用户没啥影响,那些用Docker的用户,要好好研究喽,毕竟弄错Mira是否启用,可能会导致长时间的Replay啊,哈哈。

总算搞懂了困扰已久的问题。

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

Sort:  

恭喜你!您的这篇文章入选 @justyy 今日 (2019-08-31) 榜单 【优秀的文章】, 回复本条评论24小时内领赏,点赞本评论将支持 @dailychina 并增加将来您的奖赏。
@justyy 是CN区的见证人,请支持他,给他投票,或者设置justyy为见证人代理。感谢!@justyy的主要贡献:https://steemyy.com

Congratulations! This post has been selected by @justyy as today's (2019-08-31) 【Good Posts】, Steem On! Reply to this message in 24 hours to get rewards. Upvote this comment to support the @dailychina and increase your future rewards! ^_^

SteemIt 工具、API接口、机器人和教程
SteemIt Tools, Bots, APIs and Tutorial



If you believe what I am doing, please consider a spare vote voting me here, thank you very much indeed.

@justyy - the author of https://SteemYY.com and I have been a Steem Witness for more than a year now.

区块链中文第一大银行简介:你的比特币拿不了利息,但是你把比特币换成steem后就能拿利息了!

昨天差点就在这上面凉凉了。。。

哈哈,还好结果暖暖的

Thank you so much for participating in the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.01% upvote! Together, let’s change the world!

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 62871.45
ETH 3479.64
USDT 1.00
SBD 2.53