天天看點

Hyperledger Fabric Endorsement policies——背書政策

背書政策

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

所有的背書都是有效的(也就是說,它們是有效的簽名,而不是預期的消息)。

有适當數量的背書

背書來自預期的來源(s)

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

CLI中的背書政策文法

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

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

該語言的文法是:

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”關鍵詞指定政策,然後執行政策。

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

繼續閱讀