久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      區(qū)塊鏈實戰(zhàn)-Hyperledger Fabric(一) 10分鐘新手入門

      導語

      大家好,我是Michael,現(xiàn)在在一家上海的互聯(lián)網(wǎng)公司工作,隨著政府對區(qū)塊了項目的重視,人們開始稱2020年將會是區(qū)塊鏈發(fā)展的元年,我也跟朋友聊了很多次區(qū)塊鏈,也想自己實踐一下,于是在調(diào)研了以太坊、EOS、NEO等眾多選型之后選擇了聯(lián)盟鏈,也就是我們今天的主角 Hyperledger fabric。

      文章結(jié)構(gòu)

      本系列文章將分為三部分,通過三篇文章幫助大家入門Hyperledger Fabric開發(fā),搭建自己的聯(lián)盟鏈項目:

      一、基礎介紹

      二、環(huán)境搭建

      三、應用部署與啟動

      基礎介紹

      Hyperledger fabric——區(qū)塊鏈世界的新希望

      2015 年 12 月,開源世界的旗艦組織 —— Linux 基金會牽頭,聯(lián)合 30 家初始企業(yè)成員(包括 IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、Cisco 等),共同宣布了超級賬本(Hyperledger)聯(lián)合項目的成立。超級賬本項目致力為透明、公開、去中心化的企業(yè)級分布式賬本技術(shù)提供開源參考實現(xiàn),并推動區(qū)塊鏈和分布式賬本相關(guān)協(xié)議、規(guī)范和標準的發(fā)展。項目官方網(wǎng)站為 hyperledger.org ,Hyperledger fabric 是其重要的項目之一。

      很多新同學對區(qū)塊鏈很多專屬名詞可能不是太了解,所以第一節(jié)跟大家先介紹一下Hyperledger fabric 中涉及到的名詞。

      名詞介紹:

      Anchor Peer – 錨節(jié)點錨節(jié)點是通道中能被所有對等節(jié)點探測、并能與之進行通信的一種對等節(jié)點。通道中的每個成員都有一個(或多個,以防單點故障)錨節(jié)點,允許屬于不同成員身份的節(jié)點來發(fā)現(xiàn)通道中存在的其它節(jié)點。

      Block – 區(qū)塊在一個通道上,(區(qū)塊是)一組有序交易的集合。區(qū)塊往往通過密碼學手段(Hash 值)連接到前導區(qū)塊。

      Zhu Jiang:區(qū)塊是一組有序的交易集合,在通道中經(jīng)過加密(哈希加密)后與前序區(qū)塊連接。

      Chain – 鏈chain就是block之間以hash連接為結(jié)構(gòu)的交易日志。peer從order service接收交易block,并根據(jù)背書策略和并發(fā)沖突標記block上的交易是否有效,然后將該block追加到peer文件系統(tǒng)中的hash chain上。Z

      hu Jiang:賬本的鏈是一個交易區(qū)塊經(jīng)過“哈希連接”結(jié)構(gòu)化的交易日志。對等節(jié)點從排序服務收到交易區(qū)塊,基于背書策略和并發(fā)沖突來標注區(qū)塊的交易為有效或者無效狀態(tài),并且將區(qū)塊追加到對等節(jié)點文件系統(tǒng)的哈希鏈中。

      Chaincode – 鏈碼鏈碼是一個運行在賬本上的軟件,它可以對資產(chǎn)進行編碼,其中的交易指令(或者叫業(yè)務邏輯)也可以用來修改資產(chǎn)。

      Channel – 通道通道是構(gòu)建在“Fabric”網(wǎng)絡上的私有區(qū)塊鏈,實現(xiàn)了數(shù)據(jù)的隔離和保密。通道特定的賬本在通道中是與所有對等節(jié)點共享的,并且交易方必須通過該通道的正確驗證才能與賬本進行交互。通道是由一個“配置塊”來定義的。

      Commitment – 提交一個通道中的每個對等節(jié)點都會驗證交易的有序區(qū)塊,然后將區(qū)塊提交(寫或追加)至該通道上賬本的各個副本。對等節(jié)點也會標記每個區(qū)塊中的每筆交易的狀態(tài)是有效或者無效。

      Concurrency Control Version Check – 并發(fā)控制版本檢查(CCVC)CCVC是保持通道中各對等節(jié)點間狀態(tài)同步的一種方法。對等節(jié)點并行的執(zhí)行交易,在交易提交至賬本之前,對等節(jié)點會檢查交易在執(zhí)行期間讀到的數(shù)據(jù)是否被修改。如果讀取的數(shù)據(jù)在執(zhí)行和提交之間被改變,就會引發(fā)CCVC沖突,該交易就會在賬本中被標記為無效,而且值不會更新到狀態(tài)數(shù)據(jù)庫中。

      Configuration Block – 配置區(qū)塊包含為系統(tǒng)鏈(排序服務)或通道定義成員和策略的配置數(shù)據(jù)。對某個通道或整個網(wǎng)絡的配置修改(比如,成員離開或加入)都將導致生成一個新的配置區(qū)塊并追加到適當?shù)逆溕?。這個配置區(qū)塊會包含創(chuàng)始區(qū)塊的內(nèi)容加上增量。

      Consensus – 共識共識是貫穿整個交易流程的廣義術(shù)語,其用于產(chǎn)生一個對于排序的同意書和確認構(gòu)成區(qū)塊的交易集的正確性。

      Current State – 當前狀態(tài)ledger的current state表示其chain交易log中所有key的最新值。peer會將處理過的block中的每個交易對應的修改value提交到ledger的current state,由于current state表示channel所知的所有最新的k-v,所以current state也被稱為World State。Chaincode執(zhí)行交易proposal就是針對的current state。

      Dynamic Membership – 動態(tài)成員Fabric支持動態(tài)添加-移除members、peers和ordering服務節(jié)點,而不會影響整個網(wǎng)絡的操作性。當業(yè)務關(guān)系調(diào)整或因各種原因需添加-移除實體時,Dynamic Membership至關(guān)重要。

      Endorsement – 背書Endorsement 是指一個peer執(zhí)行一個交易并返回YES-NO給生成交易proposal的client app 的過程。chaincode具有相應的endorsement policies,其中指定了endorsing peer。

      Endorsement policy – 背書策略Endorsement policy定義了依賴于特定chaincode執(zhí)行交易的channel上的peer和響應結(jié)果(endorsements)的必要組合條件(即返回Yes或No的條件)。

      Endorsement policy可指定對于某一chaincode,可以對交易背書的最小背書節(jié)點數(shù)或者最小背書節(jié)點百分比。背書策略由背書節(jié)點基于應用程序和對抵御不良行為的期望水平來組織管理。在install和instantiate Chaincode(deploy tx)時需要指定背書策略。

      Fabric-caFabric-ca是默認的證書管理組件,它向網(wǎng)絡成員及其用戶頒發(fā)基于PKI的證書。CA為每個成員頒發(fā)一個根證書(rootCert),為每個授權(quán)用戶頒發(fā)一個注冊證書(eCert),為每個注冊證書頒發(fā)大量交易證書(tCerts)。

      Genesis Block – 初始區(qū)塊Genesis Block是初始化區(qū)塊鏈網(wǎng)絡或channel的配置區(qū)塊,也是鏈上的第一個區(qū)塊。

      Gossip Protocol – Gossip協(xié)議Gossip數(shù)據(jù)傳輸協(xié)議有三項功能:

      1)管理peer發(fā)現(xiàn)和channel成員;

      2)channel上的所有peer間廣播賬本數(shù)據(jù);

      3)channel上的所有peer間同步賬本數(shù)據(jù)。

      Initialize – 初始化一個初始化chaincode程序的方法。

      Install – 安裝將chaincode放到peer的文件系統(tǒng)的過程。(譯注:即將ChaincodeDeploymentSpec信息存到chaincodeInstallPath-chaincodeName.chainVersion文件中)

      Instantiate – 實例化啟動chaincode容器的過程。(譯注:在lccc中將ChaincodeData保存到state中,然后deploy Chaincode并執(zhí)行Init方法)Invoke – 調(diào)用用于調(diào)用chaincode內(nèi)的函數(shù)。

      Chaincode invoke就是一個交易proposal,然后執(zhí)行模塊化的流程(背書、共識、 驗證、 提交)。invoke的結(jié)構(gòu)就是一個函數(shù)和一個參數(shù)數(shù)組。

      Leading Peer – 主導節(jié)點每一個Member在其訂閱的channel上可以擁有多個peer,其中一個peer會作為channel的leading peer代表該Member與ordering service通信。ordering service將block傳遞給leading peer,該peer再將此block分發(fā)給同一member下的其他peer。

      Ledger – 賬本A ledger is a channel’s chain and current state data which is maintained by each peer on the channel.Ledger是個channel的chain和由channel中每個peer維護的world state。(這個解釋有點怪)

      Member – 成員擁有網(wǎng)絡唯一根證書的合法獨立實體。像peer節(jié)點和app client這樣的網(wǎng)絡組件會鏈接到一個Member。

      Membership Service Provider – MSPMSP是指為client和peer提供證書的系統(tǒng)抽象組件。

      Client用證書來認證他們的交易;peer用證書認證其交易背書。該接口與系統(tǒng)的交易處理組件密切相關(guān),旨在使已定義的成員身份服務組件以這種方式順利插入而不會修改系統(tǒng)的交易處理組件的核心。

      Membership Services – 成員服務成員服務在許可的區(qū)塊鏈網(wǎng)絡上認證、授權(quán)和管理身份。

      在peer和order中運行的成員服務的代碼都會認證和授權(quán)區(qū)塊鏈操作。它是基于PKI的MSP實現(xiàn)。fabric-ca組件實現(xiàn)了成員服務,來管理身份。特別的,它處理ECert和TCert的頒發(fā)和撤銷。ECert是長期的身份憑證;TCert是短期的身份憑證,是匿名和不可鏈接的。

      Ordering Service – 排序服務或共識服務將交易排序放入block的節(jié)點的集合。

      ordering service獨立于peer流程之外,并以先到先得的方式為網(wǎng)絡上所有的channel作交易排序。ordering service支持可插拔實現(xiàn),目前默認實現(xiàn)了SOLO和Kafka。ordering service是整個網(wǎng)絡的公用binding,包含與每個Member相關(guān)的加密材料。Peer – 節(jié)點一個網(wǎng)絡實體,維護ledger并運行Chaincode容器來對ledger執(zhí)行read-write操作。peer由Member擁有和維護。

      Policy – 策略有背書策略,校驗策略,區(qū)塊提交策略,Chaincode管理策略和網(wǎng)絡-通道管理策略。

      Proposal – 提案一種針對channel中某peer的背書請求。每個proposal要么是Chaincode instantiate要么是Chaincode invoke。

      Query – 查詢對于current state中某個key的value的查詢請求。

      Software Development Kit – SDKSDK為開發(fā)人員提供了一個結(jié)構(gòu)化的庫環(huán)境,用于編寫和測試鏈碼應用程序。

      SDK完全可以通過標準接口實現(xiàn)配置和擴展,像簽名的加密算法、日志框架和state存儲這樣的組件都可以輕松地實現(xiàn)替換。SDK API使用gRPC進行交易處理,成員服務、節(jié)點遍歷以及事件處理都是據(jù)此與fabric通信。目前SDK支持Node.js、Java和Python。

      State Database – stateDB為了從Chaincode中高效的讀寫,Current state 數(shù)據(jù)存儲在stateDB中,包括levelDB和couchDB。

      System Chain – 系統(tǒng)鏈包含在系統(tǒng)級定義網(wǎng)絡的配置區(qū)塊。

      系統(tǒng)鏈存在于ordering service中,與channel類似,具有包含以下信息的初始配置:MSP信息、策略和信息配置。對整個網(wǎng)絡的任何變化(例如新的Org加入或者添加新的Ordering節(jié)點)將導致新的配置區(qū)塊被添加到系統(tǒng)鏈。

      系統(tǒng)鏈可看做是一個channel或一組channel的公用binding。例如,金融機構(gòu)的集合可以形成一個財團(以system chain表示),然后根據(jù)其相同或不同的業(yè)務創(chuàng)建channel。

      Transaction – 交易Chaincode的invoke或instantiate操作。Invoke是從ledger中請求read-write set;Instantiate是請求在peer上啟動Chaincode容器。

      小結(jié):

      贊(0)
      分享到: 更多 (0)
      ?
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號