知名區塊鏈評測機構InCodeWeTrust對MagnaChain進行代碼審查,給出高度評價區塊鏈
【譯注】海外區塊鏈評測機構InCodeWeTrust 近日在CryptoDiffer 發布了對區塊鏈公有鏈MagnaChain項目的評測報告,對MagnaChain給出了高度...
【譯注】海外區塊鏈評測機構InCodeWeTrust 近日在CryptoDiffer 發布了對區塊鏈公有鏈MagnaChain項目的評測報告,對MagnaChain給出了高度的評價。
報告指出:“從開發的角度來看,我們認為該項目進展順利,并認為該產品已經處于后期測試階段,非常接近實際發布。”
InCodeWeTrust同時對MagnaChain的代碼進行了詳細的檢測評估,以下是代碼評測報告的中文譯文。
原文地址:https://cryptodiffer.com/magnachain-code-review-and-functional-test
MagnaChain希望解決目前即使是在最受歡迎的區塊鏈平臺都存在的兩個問題:吞吐率過低以及數據累積過多。為解決這兩個問題,他們引入了新的支鏈架構以及PoS(股權證明)共識算法的全新變體。
MagnaChain的最終目標是將區塊鏈打造成為一個多場景多用途平臺,盡管其最初只是用作游戲平臺。
通過查看這個團隊成員過去的工作履歷,我們發現其成員們有足夠的能力應對游戲行業的挑戰——他們曾參與過包括Sony Playstation、Blizzard和The9在內的多個項目。(我們將從這里開始討論MagnaChain的技術細節,不感興趣的讀者可以直接跳到最后看結論)
在MagnaChain的實現中,整個網絡有一條唯一的主鏈,所有貨幣只在主鏈的區塊中發行。同時可以有任意多條支鏈,每個支鏈的前一個塊,可以是主鏈中的某個塊,也可以是另一條支鏈中的某個塊。整體數據架構是一棵樹,而不是一條鏈。
MagnaChain的支鏈技術在系統中添加了多條支鏈。這些支鏈可以自由生成并且可以根據需要進行修剪,由此主鏈不會過度擴展。對于節點而言,只需要主鏈,而支鏈則可以根據需要下載和處理,更便于進行驗證和節省磁盤空間。
礦工可以自由地選擇在哪一條鏈上進行挖礦,或者是在多條鏈上進行挖礦。支鏈上雖然沒有新代幣發行,但還是會有交易費作為獎勵。交易越多,則費用也會越多。當某條鏈的礦工(實際上是權益人,因為沒有涉及PoW工作量證明)比較少時,挖礦將更有利可圖,就會吸引新礦工加入。如果某條鏈中有許多礦工,但交易很少,那么礦工人數就會減少。
MagnaChain的代幣輸出機制嚴格遵循比特幣的輸出機制,即如果挖礦量達到總量的一半時,則日輸出量將減少一半。
MagnaChain技術架構
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有很大機會成為基于區塊鏈的游戲平臺,并且可能在其他用例中也能取得類似的成功。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。