今天说说AE的挖矿算法,这个算法还是挺别致的,也有一段有意思的故事。这个故事有两个,先说哪个挺纠结的。还是先说说ae跟cuckoo的故事,再说布谷鸟的故事吧。
布谷鸟的故事
布谷鸟,顾名思义有一种鸟叫做布谷,因为叫起来布谷布谷的。中文学名杜鹃。所以布谷鸟环算法也叫杜鹃环算法。
布谷鸟很懒,不学作窝,自己生的娃自己不管,它也很聪明,把蛋生别家鸟的鸟窝去,别人家的窝它去一次只生一个,让它们帮它孵化,帮它养。一般冤大头都是画眉跟苇茑,谁让它的蛋像呢?食物链又相似。而且布谷鸟的儿子也老坏了,它就经常大义灭亲,把跟它义兄义妹通通推出巢去,它自己独享美食。
那么AE的算法跟这鸟有什么关系呢?AE的布谷鸟环算法,其实就是大义灭亲前鸟妈妈打补丁的环节,这个窝,程序猿把它变成了64×64或者128×128的一张大图。布谷仔就是其中的一格,而矿工们就是鸟妈妈了,它要在这些里面找出哪一个不是自己的亲生子。根据难度等参数,这里面会给它定义一个最小值,小余这个大小的蛋,才有可能不是它亲生的。
当找出来以后,把它提交公布全网,如果所有鸟都认为这确实不是亲生的,那就是它了。
[例子可能不是很恰当,但是大道理、运行的方式差不多就是这样了。]
某人:说好的先说ae跟cuckoo的故事的,为什么先说布谷鸟?
我写反了,懒得改了。您将就看着,反正先后都是看。
Cuckoo Cycle简介
Cuckoo Cycle是一个开源项目。
其实你如果百度下cuckoo算法,找出来的大部分都是Cuckoo search-布谷鸟搜索算法 ,他们运行的原理相差无几。但是代码上,区别大了去了。布谷鸟环Cuckoo Cycle算法使用了大内存支撑图形,属于内存型算法。
Cuckoo算法目前分C29跟C31,这两套对于不同型号的显卡,显存大小,有明显区别。AE目前主要采用的是C29算法。
Cuckoo算法要求最低显卡显存4G起步,目前主要支持 4G、5G、7G,显卡内存超过7G以后,就是拼GPU效率了,更大的显存不会带来更快的效率。
Cuckoo的发明人是Tromp,当初他发明了[其实不算发明,因为最早提出布谷鸟算法理论的是咱们中国的杨新社教授],不过Tromp是第一个把它以代码实现,并让它能应用于区块链POW算法的。
当初Tromp写完这套算法以后,原打算是适用于他自己发行的grin主链,但是其运行效率非常的低下。当初只能运行于CPU,可能作者对于解密学不够精通?曾多次赏金寻找最佳优化,有名贡献者成功获得奖赏,通过优化算法代码,他将运行效率提升了4倍。
再后来有个贡献团队,将其从CPU移植至GPU,效率提升了10倍。自此CPU算法项目宣布停更,而GPU依然在悬赏状态。大概停了1年没有任何进展。当时Grin项目可以从源码上看到,Tromp也打算放弃Cuckoo,使用以太的Ethash算法。
AE和Cuckoo的故事
Ae项目当初选择了这个独特的算法,或许是为了预防过于早期算力低下容易被攻击,又或者其它原因我就不知道了。
AE团队大约于2018年11月对其CPU和GPU算法部分,再次重写,将运行效率再次提升4倍,并成功运用于主网。
AE运用Cuckoo算法,并成功挽救当初早已因为熊市关机吃灰的N卡矿机。同时也让许许多多的矿池矿工知道,还有一种算法叫 布谷鸟环算法。
或许是出于AE的成功,2018年12月Grin宣布主网同时启用两种算法,Cuckoo及Ethash同时运行。