目錄
基礎介紹
首頁 後端開發 Golang 區塊鏈實戰-Hyperledger Fabric(一) 10分鐘新手入門

區塊鏈實戰-Hyperledger Fabric(一) 10分鐘新手入門

Apr 28, 2020 pm 01:17 PM
區塊鏈

導語

大家好,我是Michael,現在在一家上海的網路公司工作,隨著政府對區塊了專案的重視,人們開始稱2020年將會是區塊鏈發展的元年,我也跟朋友聊了很多次區塊鏈,也想自己實踐一下,於是在研究了以太坊、EOS、NEO等眾多選型之後選擇了聯盟鏈,也就是我們今天的主角Hyperledger fabric。

文章架構

本系列文章將分為三個部分,透過三篇文章幫助大家入門Hyperledger Fabric開發,建立自己的聯盟鏈專案:

一、基礎介紹

二、環境建置

三、應用程式部署與啟動

基礎介紹

Hyperledger fabric——區塊鏈世界的新希望

2015 年12 月,開源世界的旗艦組織- Linux 基金會牽頭,聯合30 家初始企業成員(包括IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、Cisco 等),共同宣布了超級帳本(Hyperledger)聯合專案的成立。超級帳本計畫致力於為透明、公開、去中心化的企業級分散式帳本技術提供開源參考實現,並推動區塊鏈和分散式帳本相關協議、規範和標準的發展。專案官方網站為 hyperledger.org ,Hyperledger fabric 為其重要的專案之一。

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

名詞介紹:

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

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

Zhu Jiang:區塊是一組有序的交易集合,在通道中經過加密(雜湊加密)後與前序區塊連接。

Chain – 鏈chain就是block之間以hash連結為結構的交易日誌。 peer從order service接收交易block,並根據背書策略和並發衝突標記block上的交易是否有效,然後將該block追加到peer檔案系統中的hash chain上。 Z

hu Jiang:帳本的鍊是交易區塊經過「雜湊連接」結構化的交易日誌。對等節點從排序服務收到交易區塊,基於背書策略和並發衝突來標註區塊的交易為有效或無效狀態,並將區塊追加到對等節點檔案系統的哈希鏈中。

Chaincode – 鏈碼鏈碼是一個運行在帳本上的軟體,它可以對資產進行編碼,其中的交易指令(或稱為業務邏輯)也可以用來修改資產。

Channel – 通道通道是建立在「Fabric」網路上的私人區塊鏈,實現了資料的隔離和保密。通道特定的帳本在通道中是與所有對等節點共享的,且交易方必須通過該通道的正確驗證才能與帳本進行互動。通道是由一個「配置區塊」來定義的。

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

Concurrency Control Version Check – 並發控製版本檢查(CCVC)CCVC是保持通道中各對等節點間狀態同步的一種方法。對等節點並行的執行交易,在交易提交至帳本之前,對等節點會檢查交易在執行期間讀到的資料是否已修改。如果讀取的資料在執行和提交之間被改變,就會引發CCVC衝突,該交易就會在帳本中被標記為無效,而且值不會更新到狀態資料庫中。

Configuration Block – 設定區塊包含為系統鏈(排序服務)或通道定義成員和策略的設定資料。對某個通道或整個網路的配置修改(例如,成員離開或加入)都將導致產生一個新的配置區塊並追加到適當的鏈上。這個配置區塊會包含創始區塊的內容加上增量。

Consensus – 共識共識是貫穿整個交易流程的廣義術語,其用於產生一個對於排序的同意書和確認構成區塊的交易集的正確性。

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

Dynamic Membership – 動態成員Fabric支援動態新增-移除members、peers和ordering服務節點,而不會影響整個網路的操作性。當業務關係調整或因各種原因需新增-移除實體時,Dynamic Membership至關重要。

Endorsement – 背書Endorsement 是指一個peer執行一個交易並回傳YES-NO給生成交易proposal的client app 的過程。 chaincode具有對應的endorsement policies,其中指定了endorsing peer。

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

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

Fabric-caFabric-ca是預設的憑證管理元件,它會向網路成員及其使用者頒發基於PKI的憑證。 CA為每個成員頒發一個根憑證(rootCert),為每個授權使用者頒發一個註冊證書(eCert),為每個註冊證書頒發大量交易證書(tCerts)。

Genesis Block – 初始區塊Genesis Block是初始化區塊鏈網路或channel的配置區塊,也是鏈上的第一個區塊。

Gossip Protocol – Gossip協定Gossip資料傳輸協定有三個功能:

1)管理peer發現和channel成員;

2)channel上的所有peer間廣播帳本資料;

3)channel上的所有peer間同步帳本資料。

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

Install – 安裝將chaincode放到peer的檔案系統的過程。 (譯註:即將ChaincodeDeploymentSpec資訊儲存到chaincodeInstallPath-chaincodeName.chainVersion檔案)

Instantiate – 實例化啟動chaincode容器的過程。 (譯註:在lccc中將ChaincodeData儲存到state中,然後deploy Chaincode並執行Init方法)Invoke – 呼叫用於呼叫chaincode內的函數。

Chaincode invoke就是一個交易proposal,然後執行模組化的流程(背書、共識、 驗證、 提交)。 invoke的結構就是一個函數和一個參數數組。

Leading Peer – 主導節點每一個Member在其訂閱的channel上可以擁有多個peer,其中一個peer會作為channel的leading peer代表該Member與ordering service通訊。 ordering service將block傳遞給leading peer,該peer再將此block分發給同一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 – 成員擁有網路唯一根憑證的合法獨立實體。像peer節點和app client這樣的網路元件會連結到一個Member。

Membership Service Provider – MSPMSP是指為client和peer提供憑證的系統抽像元件。

Client用憑證來認證他們的交易;peer用憑證認證其交易背書。此介面與系統的交易處理元件密切相關,旨在使已定義的成員資格服務元件以這種方式順利插入而不會修改系統的交易處理元件的核心。

Membership Services – 成員服務成員服務在許可的區塊鏈網路上認證、授權和管理身分。

在peer和order中運行的成員服務的程式碼都會認證和授權區塊鏈操作。它是基於PKI的MSP實作。 fabric-ca元件實現了成員服務,來管理身分。特別的,它處理ECert和TCert的頒發和撤銷。 ECert是長期的身份憑證;TCert是短期的身份憑證,是匿名和不可連結的。

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

ordering service獨立於peer流程之外,並以先到先得的方式為網路上所有的channel作交易排序。 ordering service支援可插拔實現,目前預設實作了SOLO和Kafka。 ordering service是整個網路的公共binding,包含與每個Member相關的加密資料。 Peer – 節點一個網路實體,維護ledger並執行Chaincode容器來對ledger執行read-write操作。 peer由Member擁有和維護。

Policy – 策略有背書策略,校驗策略,區塊提交策略,Chaincode管理策略和網路-通道管理策略。

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

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

Software Development Kit – SDKSDK為開發人員提供了一個結構化的函式庫環境,用於編寫和測試鏈碼應用程式。

SDK完全可以透過標準介面實現配置和擴展,像是簽署的加密演算法、日誌框架和state儲存這樣的元件都可以輕鬆實現替換。 SDK API使用gRPC進行交易處理,成員服務、節點遍歷以及事件處理都是據此與fabric通訊。目前SDK支援Node.js、Java和Python。

State Database – stateDB為了從Chaincode中高效率的讀寫,Current state 資料儲存在stateDB中,包括levelDB和couchDB。

System Chain – 系統鏈包含在系統層級定義網路的設定區塊。

系統鏈存在於ordering service中,與channel類似,具有包含以下資訊的初始配置:MSP資訊、策略和資訊配置。對整個網路的任何變化(例如新的Org加入或添加新的Ordering節點)將導致新的配置區塊被添加到系統鏈。

系統鏈可看做是一個channel或一組channel的公用binding。例如,金融機構的集合可以形成一個財團(以system chain表示),然後根據其相同或不同的業務創建channel。

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

小結:

以上就是我們第一節為大家介紹的區塊鏈的基礎知識,這些可能比較枯燥,但是我們需要對這些名詞和內容進行初步的了解,這好比我們寫程式碼需要了解函數名稱與關鍵字一樣,只有掌握了這些才能更好的開始我們的工作。

以上是區塊鏈實戰-Hyperledger Fabric(一) 10分鐘新手入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

量子鍊是什麼?量子鏈交易所有哪些? 量子鍊是什麼?量子鏈交易所有哪些? Apr 21, 2025 pm 11:51 PM

量子鏈(Qtum)是一個開源的去中心化智能合約平台和價值傳輸協議。 1. 技術特點:兼容BIP的POS智能合約平台,結合比特幣和以太坊優勢,引入鏈下因素,增強共識機制靈活性。 2. 設計原則:通過主控合約實現鏈上鍊下數據交互,兼容不同區塊鏈技術,靈活共識機制,考慮行業合規性。 3. 團隊與發展:由帥初領導的國際化團隊,80%的量子幣用於社區,20%獎勵團隊和投資者。量子鏈可在幣安、Gate.io、OKX、Bithumb和抹茶交易所交易。

跨鏈交易什麼意思?跨鏈交易所有哪些? 跨鏈交易什麼意思?跨鏈交易所有哪些? Apr 21, 2025 pm 11:39 PM

支持跨鏈交易的交易所有:1. Binance,2. Uniswap,3. SushiSwap,4. Curve Finance,5. Thorchain,6. 1inch Exchange,7. DLN Trade,這些平台通過各種技術支持多鏈資產交易。

推薦幾款買主流幣的app軟件2025年最新發布 推薦幾款買主流幣的app軟件2025年最新發布 Apr 21, 2025 pm 11:54 PM

可以購買主流幣的APP軟件包括:1. 幣安(Binance),全球領先,交易量大,速度快;2. OKX,創新產品,低費用,安全性高;3. Gate.io,多種資產和交易選項,注重安全;4. 火幣(HTX),低費用,用戶體驗好;5. Coinbase,適合新手,安全性高;6. Kraken,安全合規,提供多種服務;7. KuCoin,低費用,適合專業交易者;8. Gemini,強調合規性,提供託管服務;9. Crypto.com,提供多種優惠和服務;10. Bitstamp,老牌交易所,流動性強,

適合新手的數字貨幣交易App有哪些?一文了解幣圈 適合新手的數字貨幣交易App有哪些?一文了解幣圈 Apr 22, 2025 am 08:45 AM

選擇適合新手的數字貨幣交易平台需考慮安全性、易用性、教育資源和費用透明度:1. 優先選擇提供冷存儲、雙重驗證和資產保險的平台;2. 界面簡潔、操作清晰的App更適合新手;3. 平台應提供教程和市場分析等學習工具;4. 注意交易手續費和提現費等隱性成本。

虛擬幣最老的幣排行榜最新更新 虛擬幣最老的幣排行榜最新更新 Apr 22, 2025 am 07:18 AM

虛擬貨幣“最老”排行榜如下:1. 比特幣(BTC),發行於2009年1月3日,是首個去中心化數字貨幣。 2. 萊特幣(LTC),發行於2011年10月7日,被稱為“比特幣的輕量版”。 3. 瑞波幣(XRP),發行於2011年,專為跨境支付設計。 4. 狗狗幣(DOGE),發行於2013年12月6日,基於萊特幣代碼的“迷因幣”。 5. 以太坊(ETH),發行於2015年7月30日,首個支持智能合約的平台。 6. 泰達幣(USDT),發行於2014年,是首個與美元1:1錨定的穩定幣。 7. 艾達幣(ADA),發

meme幣交易所排行榜 meme幣主流交易所top10盤點 meme幣交易所排行榜 meme幣主流交易所top10盤點 Apr 22, 2025 am 09:57 AM

最適合交易Meme幣的平台包括:1. 幣安(Binance),全球最大,流動性高,低手續費;2. 歐意(OKX),高效交易引擎,支持多種Meme幣;3. XBIT,去中心化,支持跨鏈交易;4. 雷迪姆(Solana DEX),低成本,結合Serum訂單簿;5. PancakeSwap(BSC DEX),交易費用低,速度快;6. Orca(Solana DEX),用戶體驗優化;7. Coinbase,安全性高,適合新手;8. 火幣(Huobi),亞洲知名,交易對豐富;9. DEXRabbit,智能

混合型區塊鏈交易平台有哪些 混合型區塊鏈交易平台有哪些 Apr 21, 2025 pm 11:36 PM

選擇加密貨幣交易所的建議:1. 流動性需求,優先選擇幣安、Gate.io或OKX,因其訂單深度與抗波動能力強。 2. 合規與安全,Coinbase、Kraken、Gemini具備嚴格監管背書。 3. 創新功能,KuCoin的軟質押和Bybit的衍生品設計適合進階用戶。

幣圈行情實時數據免費平台推薦前十名發布 幣圈行情實時數據免費平台推薦前十名發布 Apr 22, 2025 am 08:12 AM

適合新手的加密貨幣數據平台有CoinMarketCap和非小號。 1. CoinMarketCap提供全球加密貨幣實時價格、市值、交易量排名,適合新手與基礎分析需求。 2. 非小號提供中文友好界面,適合中文用戶快速篩選低風險潛力項目。

See all articles