当前位置:首页 > 资讯 > 区块链新闻 > 正文

InCodeWeTrust区块链评测:对游戏公链MagnaChain进行代码审查

发布:中币网   时间:2018-09-09 00:55:14   加入收藏 打赏

海外区块链评测机构InCodeWeTrust 近日在CryptoDiffer 发布了对区块链公有链MagnaChain项目的评测报告,对MagnaChain给出了高度的评价。 报告指出:“从开发的角度来看,我们认为该项目进展顺利,并认为该产品已经处于后期测试阶段,非常接近实际发布。” InCodeWeTrust同时对MagnaChain的代码进行了详细的检测评估,以下是代码评测报告的中文译文。

海外区块链评测机构InCodeWeTrust 近日在CryptoDiffer 发布了对区块链公有链MagnaChain项目的评测报告,对MagnaChain给出了高度的评价。
报告指出:“从开发的角度来看,我们认为该项目进展顺利,并认为该产品已经处于后期测试阶段,非常接近实际发布。”
InCodeWeTrust同时对MagnaChain的代码进行了详细的检测评估,以下是代码评测报告的中文译文。

MagnaChain希望解决目前即使是在最受欢迎的区块链平台都存在的两个问题:吞吐率过低以及数据累积过多。为解决这两个问题,他们引入了新的支链架构以及PoS(股权证明)共识算法的全新变体。
MagnaChain的最终目标是将区块链打造成为一个多场景多用途平台,尽管其最初只是用作游戏平台。
通过查看这个团队成员过去的工作履历,我们发现其成员们有足够的能力应对游戏行业的挑战——他们曾参与过包括Sony Playstation、Blizzard和The9在内的多个项目。(我们将从这里开始讨论MagnaChain的技术细节,不感兴趣的读者可以直接跳到最后看结论)
在MagnaChain的实现中,整个网络有一条唯一的主链,所有货币只在主链的区块中发行。同时可以有任意多条支链,每个支链的前一个块,可以是主链中的某个块,也可以是另一条支链中的某个块。整体数据架构是一棵树,而不是一条链。
MagnaChain的支链技术在系统中添加了多条支链。这些支链可以自由生成并且可以根据需要进行修剪,由此主链不会过度扩展。对于节点而言,只需要主链,而支链则可以根据需要下载和处理,更便于进行验证和节省磁盘空间。
矿工可以自由地选择在哪一条链上进行挖矿,或者是在多条链上进行挖矿。支链上虽然没有新代币发行,但还是会有交易费作为奖励。交易越多,则费用也会越多。当某条链的矿工(实际上是权益人,因为没有涉及PoW工作量证明)比较少时,挖矿将更有利可图,就会吸引新矿工加入。如果某条链中有许多矿工,但交易很少,那么矿工人数就会减少。
MagnaChain的代币输出机制严格遵循比特币的输出机制,即如果挖矿量达到总量的一半时,则日输出量将减少一半。
MagnaChain技术架构


第一层是底层,由基础库组成,包括加密与共识算法、P2P网络、内存管理、线程和进程管理等。
第二层是基本功能模块。在这一层,主要是实现了基本帐户与钱包管理、区块链的生成与同步以及基本交易功能等。在这一层基本完成了传统区块链系统的所有功能。
第三层为扩展功能,包括基于VM的智能合约以及多链管理系统。这一层主要提供智能合约以及一套通过多链实现的高TPS解决方案。
第四层为API层,主要提供了一套供APP创新的API及系统集成式SDK。
MagnaChain引入了自主开发的强化型PoS共识协议VirtualHash-PoS,该协议兼具PoW / PoS协议的要素,同时还可以阻止DDoS并阻断51%的攻击途径。引入该协议的主要目的是降低委派股权证明(DPoS)模式的可预测性。在该模式下,通常只有有限数量的代表负责验证交易。在MagnaChain VH-PoS模式下,攻击者无法预先计算成功攻击的成本,因此实际上会使其无法进行攻击。
即使确定了MagnaChain的日输出量,该输出量也只是与币天数(Coindays)有关,而与哈希率无关。从这个角度来说,其与比特币PoW类似。虽然比特币挖矿取决于节点的哈希率,但MagnaChain则将比较特定时间段内持有的币数量。共识算法中Coindays的权重是有上限的,这样一来,人们就无法预测区块奖励的选择。
这种模式有一个好处,矿工必须至少将一部分新的采矿收益重新投入下一轮采矿中,否则就会在竞争中失败,而产出减少。这就降低了矿工交换挖矿收益的积极性,并且有利于维持相对稳定的代币价格。
在应用程序方面,MagnaChain选择了游戏开发中最常用的脚本语言,并将它们用于在平台上开发智能合约。这使得智能合约的开发尽可能接近传统游戏的后端编码工作。
此外,MagnaChain还提供开发者最常使用的游戏开发工具插件,使得游戏和区块链的结合更为方便。对于有经验的游戏开发者来说,这个过程就像他们已经熟悉的日常工作一样简单。
二进制(已编译)代码的下载、安装和功能测试
MagnaChain提供的可执行代码已经下载完毕,并安装在一台InCodeWeTrust服务器上。
Ubuntu 17.10虚拟机(Virtual Box)用作在Windows Server上运行的目标平台,具有典型的开发环境,包括对C++、Python、Go和其他编程语言库的支持。
代码包已部署到我们的下载文件夹,执行权限已添加到文件中,并且第一个脚本已开始运行。
./loadlib.sh
此脚本设置了文件权限,并将文件复制到了lib文件夹。在我们的测试机器和Ubuntu版本上,没有发生任何安装问题。
面向Windows和centOS部署提供的其他可执行版本的表现显示与Ubuntu版本同样可靠(在此我们需要指出,所有发行版都非常适合其各自的目标操作系统)。
我们创建了文件夹L1_1,并添加了一个名为bitcoin.conf的文件来,进一步对系统进行了配置。
主链的后台进程(守护进程)开始时没有出现问题:


随后创建了一个分支和一条分支链,也没有出现事故:


之后挖矿开始,因为我们需要资金来运行支链。由于rpcport 8201的使用效果不佳,因此需要进行资金挖矿,并且最初的挖矿失败了。在执行VM安装时8201可能会被阻止,因此需要另一个端口作为标准。

在验证可执行文件后,我们继续尝试直接从获得的源代码文件构建(编译)项目。源代码构建没有遇到任何问题,而经过验证,我们确定可执行文件与我们测试的可执行文件完全相同。
源代码审查
C ++代码干净且易于理解,但缺乏代码文档。某些C ++文件完全没有注释,例如./chain/branchdb.cpp(参见下面的摘录)。


该代码给人的印象是其得到了良好的开发和测试。它部分使用了比特币作为代码基,并包含多项增强功能。例如./key/pubkey.h

大多数核心功能都是完整且有效的(如上文运行时测试部分中所述)。
整体而言,代码看起来全面有序。项目的文件夹结构同样如此。我们使用了一致的编码标准,除了缺少部分代码注释之外,质量也很高。
总体来说,我们认为代码处于高级测试阶段。
总结:从开发的角度来看,我们认为该项目进展顺利,并且该产品处于后期测试阶段,非常接近实际发行(实际上,通过小幅度修改,该产品现在已经可以发行)。
MagnaChain团队已经制作了一个针对多个平台(如MS Windows和Linux)的稳定运行产品,进一步提高开发人员采用该产品的可能性。但是,我们建议团队为云服务器实施一键部署功能,以更方便地访问开发人员和验证程序节点。鉴于产品的成熟度,目前这个步骤是合理的。
作为游戏分布式应用(dApp)的开发平台,MagnaChain提供了与专业游戏开发人员日常使用的环境非常相似的环境,因此具备很强的吸引力。基于这一优势,以及团队在游戏行业的强大背景,我们相信MagnaChain有很大机会成为基于区块链的游戏平台,并且可能在其他用例中也能取得类似的成功。


来源:区块网




来源:中币网  https://www.zhongbi.net/news/blocknews/108560.html
声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。