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

in cn •  5 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!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  ·  5 years ago 

恭喜你!您的这篇文章入选 @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!