Hyperledger Fabric Endorsement policies——背書策略


背書策略

背書策略用於指導peer如何確定交易是否得到了的認可。當一個peer接收到一個事務時,它會調用與事務的Chaincode相關聯的VSCC(驗證系統鏈代碼),作為事務驗證流程的一部分,以確定交易的有效性。一個交易包含了一個或多個peer背書節點中的背書支持。VSCC的任務是做出以下決定:

  • 所有的背書都是有效的(也就是說,它們是有效的簽名,而不是預期的消息)。
  • 有適當數量的背書
  • 背書來自預期的來源(s)

背書策略指的是第二和第三點其中的一種方式。

 

CLI中的背書策略語法

在CLI中,使用一種簡單的布爾表達式語言來表達對主體的背書策略。

一個主體被描述為MSP,它的任務是驗證簽名者的身份,以及簽名者在MSP中所扮演的角色。目前,支持兩個角色,即成員和管理員。角色組成,MSP必須承載MSP ID,角色是成員和管理員兩個字符串之一。例如一個有效的主體是“Org0.admin”(任何組織的任何管理員)或是Org1.member(任何組織的成員)。

該語言的語法是:

EXPR(E[, E...])

EXPR使用AND或者OR其中之一作為表達式,E要么是一個主體(上面描述的是語法),要么是另一個對EXPR的嵌套調用。

例如:

  • AND('Org1.member', 'Org2.member', 'Org3.member')三個主體必須同時背書並認可簽名
  • OR('Org1.member', 'Org2.member')兩個主體中的任意一個背書並認可簽名
  • OR('Org1.member', AND('Org2.member', 'Org3.member'))主體1背書並認可簽名或者主體2和主體3同時背書並認可簽名

 

為chaincode指定背書策略

使用這種語法,chaincode部署人員可以請求對chaincode的背書在指定的策略上進行驗證。注意-默認策略需要一個來自默認MSP的成員的簽名。如果在實例化chaincode時,在CLI中沒有指定策略,則使用此方法。

可以在實例化時使用“-P”關鍵詞指定策略,然后執行策略。

例如:

peer chaincode instantiate -C <channelid> -n mycc -P "AND('Org1.member', 'Org2.member')"

這個命令使用 AND('Org1.member', 'Org2.member') 背書策略來部署chaincode mycc,該策略要求Org1和Org2的成員兩個都必須簽署事務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM