買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > FTT > Info

Chain:星云研究院:Hyperledger Fabric論文分析_Blockchain

Author:

Time:1900/1/1 0:00:00

本文作者:星云研究院資深研究院湯載陽博士。華中科技大學計算機博士,日本會津大學和法國南巴黎國立電信學院訪問學者,研究方向包括分布式系統、無線網絡和區塊鏈共識,在TPDS、ICDCS等頂級期刊會議上發表過論文。前言最近部門開始了Survey的計劃,從Cryptology,Consensus和傳統分布式系統三個方向調研目前業內關于Blockchain的最新進展。在寒冷的冬天,能窩在被窩里看論文也算是不幸中的萬幸。本來一直也有想寫專欄的計劃,剛好借此機會整理下看過的論文。既然是系列開頭,第一篇論文選擇還是比較慎重的,我們最終選擇了發表于EuroSys18的論文《HyperledgerFabric:ADistributedOperatingSystemforPermissionedBlockchains》,該論文介紹了IBM在聯盟鏈方向的最新研究成果。話不多說,開始正文。FabricFabric是屬于Hyperledger的一個子項目,后者是由Linux基金會發起面向區塊鏈技術的開源項目,主要成員包括IBM、R3、Intel等等。Hyperledger實際上還有很多子項目,其中另一個比較著名的是SawtoothLake,由Intel主導,包含了一種全新的共識機制Proof-of-ElapsedTime,該共識策略支持Intel的SGX技術。Fabricv0.6在2016年九月發布,當時的Fabric和其他聯盟鏈沒有太大區別,采用PBFT共識。這篇論文介紹的是最新v1.0Fabric,主要對上述若干問題進行了較大改進,從節點架構上來看,取消了原來的Validating和Non-Validating節點,取而代之的是Endorser節點、Committer節點和全新的Orderer模塊。專有名詞解釋:BFT:Byzantine-faulttolerant拜占庭容錯,即有惡意節點情況下的容錯CFT:crashfaulttolerant無惡意節點情況下的容錯SMR:state-machinereplication狀態機復制,分布式系統中最重要概念MSP:membershipserviceprovider成員管理模塊,負責Fabric中三類節點的認證管理PTM:peertransactionmanager更新最新的交易的狀態,以<k,v>形式存儲VSCC:validationsystemchaincode驗證chaincode,后文會詳細介紹ESCC:endorsementsystemchaincode背書chaincode,后文會詳細介紹Basics關于區塊鏈的劃分,通常包括公鏈、聯盟鏈和私有鏈。最近幾年學術圈給出了更為嚴謹的定義,即permissionlesschain和permissionedchain。在本文中,作者給出publicblockchain和permissionedblockchain的定義如下:Publicblockchainstypicallyinvolveanativecryptocurrencyandoftenuseconsensusbasedon“proofofwork”(PoW)andeconomicincentives.Apermissionedblockchainprovidesawaytosecuretheinteractionsamongagroupofentitiesthathaveacommongoalbutwhichdonotfullytrusteachother.可以看出來兩者最主要的區別在于參與節點的身份是否確定以及是否引入了經濟激勵機制。當然無論publicchain還是permissionedchain,其本質仍然都是狀態機復制,但由于智能合約的出現產生了新的變化。如果我們將智能合約看做一種分布式應用,blockchain和傳統SMR的區別在于:多個智能合約可以同時運行;任何人都可以隨時部署智能合約;智能合約代碼不可信,甚至可能產生惡意后果Order-execute大部分區塊鏈所采用的流程是:將transactions排序打包然后同步到每個節點,每個節點再按順序執行這些交易。在論文中,這種架構被稱之為“order-executearchitecture”,即先“order”再“execute”。如下圖所示:

聲音 | 星云鏈創始人:IEO只是ICO的變種 快速融資對于創業團隊反而不好:星云鏈創始人徐義吉在《玉竹陪你迎牛市》欄目中表示:16年就已初步探索過IEO,只是ICO的變種,快速融資一大筆錢對于創業團隊反而不好,創業公司應該關注自己的核心業務,而不是管理資產。區塊鏈項目應該關注如何讓用戶使用到自己手上的Token,并參與到生態的建設中。在區塊鏈的世界里,每個人的數據和資產都應該是神圣不可侵犯的,所以每個人都應有話語權和投票權。[2019/3/22]

這樣的架構存在一些問題,首先所有節點按照順序執行交易會限制性能,通常將不相關的操作并發執行可以提升性能,但是對智能合約很難做到并發,因為代碼之間的依賴關系很難確定。此外,order-execute最大的限制是,所有節點所執行的交易必須滿足確定性。類似以太坊這樣采用Solidity這樣的編程語言可以一定程度上保證代碼確定性,但對于更流行的語言,則很難保證確定性。在聯盟鏈中,一種可行的做法是,僅讓部分節點運行代碼,然后同步最終狀態至全網。這樣子一方面通過選擇運行代碼的節點從而保證代碼運行的一致性,并且減少了驗證節點數也提升了性能。但論文中也指出現有的聯盟鏈存在一些問題,例如:Fixedtrustmodel:即合約執行背書和共識機制綁定,這種緊耦合的架構不夠靈活;Hard-codedconsensus:共識機制通常為硬編碼的形式固定,但實際上即便是BFT這一類的算法在不同場景下表現也不盡相同Execute-order-validateFabric采用了全新的交易架構,稱之為execute-order-validate,如下圖所示。

行情 | 區塊鏈概念股七星云連續三日大漲:中概區塊鏈概念股七星云上漲22%,連續第三日大漲,截至目前,本周漲幅接近140%。[2018/8/25]

在上述架構中,智能合約這種分布式應用包括了兩個部分:chaincode:即原來的smartcontractcode,在execute階段可以運行,值得注意的是,還有一種特殊的systemchaincodes,這類chaincodes定義了整個鏈的底層設置,包括validationsystemchaincode和endorsementsystemchaincode。endorsementpolicy:這個概念理解起來就有點繞了,可以理解為獨立于共識模塊的一種驗證或者背書機制。傳統consensus包括了驗證節點是否作惡以及交易本身是否正確兩個任務,而在Fabric中,將后者抽離成為endorsementpolicy。實際上這個模塊也是可以替換的,比如“五個endorser節點中只要有三個執行結果一致則完成驗證”這種策略完全可以換成“只需要XXXendorser節點完成執行則通過驗證”。如下圖所示,在Fabric中有三類節點,包括:

Clients:這類節點即發起交易或者調用智能合約的普通節點;Peers:執行驗證交易的節點,這類節點需要有全量ledger數據,在這類節點中,只有一部分負責執行交易,即endorsingpeers;OSNs:上述所有節點都需要認證,由MSP統一發放,形式可以為offline也可以為online。詳細的交易流程如下圖所示:

現場 | 星云鏈徐義吉:下一代區塊鏈的三個明確訴求:金色財經現場報道,今日中本聰團隊見面會暨第一屆區塊鏈技術與行業落地研討會在上海舉行,在圓桌論壇《下一代區塊鏈技術展望》上嘉賓圍繞“下一代區塊鏈技術機會在哪里、挑戰在哪里”展開了討論,星云鏈創始人徐義吉表示,展望下一代區塊鏈,三個明確的訴求或者是當前仍舊面對的問題:

第一,是一個價值尺度。我們有幾千條區塊鏈,甚至更多的地方我們沒有一個基于去中心化的價值把這些鏈進行打通和交互,這是現在非常嚴重的問題;

第二,我們說叫自凈化,這個系統我們說因為區塊鏈還在高速發展,但是它是一個分布式系統,所以你面對的這種錯、漏、BUG,系統升級是非常痛苦的,在去年5月份之后有重大的事件出來,系統需要有一個自凈化的能力;

第三,是區塊鏈世界原生的激勵,我們現在討論很多的還是說幣價,還是我們很多的投資者,大家有沒有想過區塊鏈真正發展起來一定來自于用戶和開發者之間的一種良性互動,這種良性互動一定是需要系統內升有一種制度的保證,和內升激勵的保證,這是我們非常看重的問題。

我覺得區塊鏈更多的是需要有一些耐心,需要我們更理性去看待它。相對于我們說九幾年的互聯網,相對于我們早期的那些創新的事物,還是有很長一段時間來走,但是我們還是對于這些有不變的初心和熱情,這里面我覺得非常開心。[2018/6/27]

1.client發起交易,首先將交易信息發給定義好的若干endorsers,注意此處的endorsers是由交易本身的chaincode和其中的endorsementpolicy共同決定;此處proposemessage包括信息如下:tx=<clientID,chaincodeID,txPayload,timestamp,clientSig>clientID:提交交易的client的IDchaincodeID:交易所屬的chaincode的IDtxPayload:交易本體信息timestamp:時間戳clientSig:client簽名endorser收到message后,用client公鑰驗證clientSig,然后運行交易并驗證輸出結果。如果該endorser被選擇為背書節點,則把結果發回給提交的client;該client收集每個endorser返回的信息,當滿足endorsementpolicy后,則進入ordering階段,反之該交易失敗;client將通過endorsement的交易廣播至所有orderers,后者通過某種共識機制對所有通過endorsement的交易進行排序,保證所有節點的數據滿足時序一致性;orderers再將排序后的交易廣播至其他peers,這里廣播的實際上就是一個包含了若干交易的block和一個sequencenumber;所有peers驗證block之后,更新自身的ledger,即完成上鏈。當然上述流程中有一些較強的假設,比如對于P2P傳輸而言,需要滿足liveness,即broadcast(tx)操作在有限的時間內一定可以到達所有其他節點。關于ordering,可采用不同的共識機制,目前支持Kafka,BFT-SMaRt和Solo。Kafka是基于ZooKeeper的Paxos實現,可以實現50%的CFT;BFT-SMaRt則是PBFT的實現,可以實現33%的BFT;Solo是單order節點的ordering,主要用于開發測試。P2P傳輸,采用的是epidemicmulticast,包括了push和pull兩種模式。Chaincode每一條鏈的配置位于特殊的configurationblocks中,包括了:MSPs定義OSNs地址consensus和ordering的部分參數,例如batchsize、timeoutsordering中的基本操作定義通過channelconfigurationupdatetransaction可以更新channel的配置每個application的chaincode包括了endorsementsystemchainco和validationsystemchainc。Evaluation為了測試,Fabric設計了一種UTXO模型的代幣,簡稱Fabcoin。通過一個chaincode不斷產生SPEND和MINTtransactions,分別模擬Fabcoin的產生和銷毀。實驗1:測試blocksize和Throughput關系,結論是在blocksize超過2MB之后TPS不再顯著提升;不同transaction的size略有差別,比如MINTtransaction因為需要帶有CB驗證所以更大。

星云創始人兼CEO徐義吉出席了貴州國家數博會“區塊鏈應用高峰論壇暨DemoDay對話”:5月28日星云鏈創始人徐義吉在貴州舉辦的中國國際大數據產業博覽會區塊鏈應用高峰論壇參與對話。他和其他與會嘉賓一同針對“怎么發現并打造優秀的區塊鏈應用項目”進行了討論。在發言中他提到,區塊鏈本質是對數據的確權,有些項目是重資本的,并不特別側重真正的開發者和用戶。一個區塊鏈系統想要真正的發展,一定要在用戶和開發者身上發生變化。星云認同數據的價值和應用的價值,并圍繞這一點打造了星云的價值尺度、原生激勵和自進化三個特點,希望能讓更多真正有趣有用的應用在星云鏈上產生。星云鏈(NAS)是致力于構建可持續升級的良性生態3.0公鏈。(已于3月29號主網上線)[2018/5/28]

實驗2:性能測試,

結論是validation是主要瓶頸,但隨著vCPU增加得到了緩解,但是endorsement由于很難并行因此提升有限。32-vCPUpeers可以達到3560tps和3420tps;實驗3:RAMdisk,tmpfs相比SSD提升了9%;實驗4:Scalability,

關于GDEX上線NAS(星云鏈)的公告:GDEX將于2018年5月15日下午14:00正式上線 GDEX.NAS(星云鏈),用戶可在GDEX官網、鼓鼓錢包、比特股官網等渠道進行充值、提現和交易。[2018/5/15]

Tags:CHAChainAINHAICHAINGOLDBlockchainblockchain.infowalletIDvirtualrealitychain

FTT
區塊鏈:師太說區塊鏈|2.3 智能合約,為區塊鏈打開了一扇門,開啟應用鴻途_區塊鏈dapp開發語言

智能合約的使命是:在區塊鏈上可以開發應用程序。區塊鏈不再是單純的一個賬本,鑄幣、交易、記賬,而是可以建立各種好玩和好用的應用程序,使自組織的分布式商業成為可能.

1900/1/1 0:00:00
COIN:飛雪迎春:市場冰封,行業不冷——區塊鏈行業2018年度盤點_Cropcoin

通證通研究院×FENBUSHIDIGITAL聯合出品文:宋雙杰,CFA;田志遠特別顧問:沈波,Rin導讀本文系統回顧了2018年區塊鏈行業發展情況.

1900/1/1 0:00:00
OIN:焦點解讀 | 最害怕“摩根幣”的應該是Ripple,如果銀行們都發幣會怎樣?_COIN

2019年2月14日,美國最大的商業銀行摩根大通宣布發行加密貨幣JPMCoin,主要用來實現跨銀行和跨境即時支付,但只有其大客戶才能使用.

1900/1/1 0:00:00
ETF:瑞士證券交易所上市以太坊ETP,美國SEC批準ETF還會遠嗎?_比特幣

在整個加密社區等待美國證券交易委員會對比特幣ETF的決定之際,瑞士已經新批準上市了第三款加密貨幣ETP.

1900/1/1 0:00:00
APP:336億的生意——你所不了解的Dapp這一年(下)_EOS

編者按:本文來自DappReview,作者:DR小伙伴,odaily星球日報經授權轉載。Vincent:如果說2018年上半年是群魔亂舞的黑暗中世紀,那么從7月份開始,Dapp則開始迎來了文藝復.

1900/1/1 0:00:00
NEC:SEC 新指導:ICO 的未來只能是 STO_比特幣

在美國法域內進行的合規的ICO,究其本質是有具體法規的STO。對此,美國證券交易委員會(SEC)近日在網頁上最新發布了「關于ICO的5點必知」等指導意見,不僅對此詮釋得更通俗易懂,也進一步推進了.

1900/1/1 0:00:00
ads