日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hyperledger Fabric Peer的内部工作原理和实现方法

發布時間:2023/12/20 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hyperledger Fabric Peer的内部工作原理和实现方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在每個組織內部跑的幾個模塊
(1)CA:為組織內的成員(用戶和節點)簽發證書(一對公私鑰以及能標識身份相應的證書),節點與用戶使用各自的私鑰與證書,作為身份標識參與到網絡當中;
(2)節點:fabric中的節點分為Peer,Orderer;?
????① Orderer節點(Ordering-Service):排序服務節點,接收包含背書簽名的交易,對未打包的交易進行排序生成區塊;
?? ?② Peer節點:
?? ??? ?1.根據在交易中的不同角色,可分成背書節點(Endorser)和記賬節點(Committer);
?? ??? ?????1.背書節點(Endorsers peer):背書節點是模擬執行交易的節點;
?? ??? ?????2.記賬節點(Committing peers):記賬節點只負責記賬,來維護賬本和Worldstate狀態;
?? ??? ?2.根據功能的不同peer可分為:
?? ??? ?????1.領導節點(Leader Peer):當有新的交易產生的時候,領導節點就會與Orderer排序服務節點通信,從排序服務節點處獲取最新的區塊,并隨機的傳播給其他的記賬節點(Committer Peer),記賬節點獲取到之后也會繼續的往外散播;
?? ??? ???????領導節點(Leader Peer)的選舉方式有2種:靜態指定Static,動態指定Dynatic;
?? ??? ?????2.錨節點(Anchor Peer):每個組織可以指定Anchor Peer,其他組織的節點就可以將Gossip消息發送到這個Anchor Peer上,進而Anchor Peer將獲得整個網絡信息,區塊廣播到本組織內;

Peer在Fabric中承擔了維護賬本,背書簽名,驗證交易,執行鏈碼等重要功能。本講深入Fabric Peer這個模塊內部,從主要功能入手,剖析Peer的工作原理和實現方法:

1、peer節點:是賬本和智能合約的載體,通過智能合約,賬本會以不可篡改的方式記錄交易的全過程

2、fabric的交易流程(Hyperledger Fabric Transaction Flow)

背書節點(Endorsers peer):背書節點是模擬執行交易的,當收到交易請求的時候它會去模擬執行這個交易請求,執行結果不管是同意還是拒絕,都會把這個執行結果加密,簽名返給Client端;
記賬節點(Committing peers):記賬節點只負責記賬,來維護賬本和Worldstate狀態;
(1)Application proposes transaction:Client端提出一個交易請求;
(2)Endorsers Execute Proposals:背書節點收到交易請求后,會模擬執行這個交易;
(3)Application receives responses:背書節點會把模擬執行這個交易的結果加密,簽名,返回給Client端;
(4)Responses submitted for ordering:Client端收到返回結果以后會把這個,交易模擬執行結果,提交給Orderer節點;
(5)Orderer delivers to committing peers:Orderer節點收到提交上來的,交易模擬執行結果,會把它打包到block里,然會把它發送給記賬節點;
(6)Committing peers validate transactions:記賬節點收到請求之后,就會做一系列validate工作,驗證工作結束之后,就會把這個交易transaction,記到賬本里,更新區塊鏈DB,更新Worldstate數據;
(7)Committing peers notify application:記賬節點committing peers,通知Client端交易成功還是失敗;

3、Endorsers Policy背書策略背書策略語法(Endorsement Policy Syntax):背書策略是在chaincode實例化的時候指定
Endorsement Policy Syntax
============================
$ peer chaincode instantiate
# channel名
-C mychannel ??
# chaincode名
-n mycc
# 版本
-v 1.0
# 初始化數據的內容
-c '{"": ["init","a", "100", "b","200"]}'
# 指定條件,這里表達式的意思-這個交易只要是Org1的member簽名,簽字認可了,我們就認為這個交易合法
-p "AND(Org1MSP.member)"
============================
-p 后面跟的表達式舉例,AND-與,OR-或:
?? ?AND('Org1.member', 'Org2.member', 'Org3.member')
?? ?OR('Org1.member', 'Org2.member')
?? ?OR('Org1.member', AND('Org2.member', 'Org3.member'))

4、Fabric賬本和狀態數據數據庫(Fabric Ledger and State DB)


Fabric賬本:有序的,不可修改的歷史交易記錄;
Fabric賬本由兩部分組成(Fabric Ledger):
(1)區塊部分(Blockchain)
?? ?通道的配置信息(Channel configurations);
?? ?歷史交易記錄打包成的Block,串成的串;

每個塊的組成:


① Block header區塊頭由3部分組成:
?? ?區塊號,block number;
?? ?CH2,當前區塊的hash碼,(通過對data里的所有的交易transaction數據進行加密處理,計算出一個hash碼保存在CH2里);
?? ?PH1,上一個塊的hash碼;
② Block data:交易數據;

Header-區塊頭:存著chaincode的名字,version等信息;
Signature-簽名:client端的簽名,誰發的請求,誰簽的名;
Proposal:client端發送的一些輸入參數,背書節點用來模擬執行交易使用;
Response: 智能合約執行的結果(執行前的數據,執行后的數據都會存在Response里);
Endorsements:每個背書節點返回的結果,是個list(如果你在背書策略里指定3個公司,這個里面就存著3個Endorsements);


③ Block Metadata:這個區塊寫入的時間,寫入的人以及簽名;

(2)Worldstate:維護賬本的當前狀態,它是key-value的形式,方便Application快速查詢;

總結

以上是生活随笔為你收集整理的Hyperledger Fabric Peer的内部工作原理和实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。