Hyperledger Fabric 2.0 Chaincode Private Data Sample的一次pr

遇到了什麼問題?

在嘗試fabric-sample中有關private-data的案例中調用 Init 方法初始化鏈碼:init函數不存在。
解決方式,加一個空函數即可。https://github.com/hyperledger/fabric-samples/pull/207已經提了。
https://github.com/hyperledger/fabric-samples/pull/207

總結

正如private data collection案例代碼註釋中闡釋的那樣。
爲了正確的配置和使用private data collection,我們需要collections_config.json裏定義。
爲了正確的使用rich query,我們需要在對應的collection中添加index.json
結構
另外, 感謝david在pr的review中提到的,如果在fabric 2.0中如果我們不添加--init-required參數的話,如https://github.com/hyperledger/fabric/pull/1405,是不需要init函數的。這裏是和1.4版本需要init函數的chaincode的區別。
至於我的兩個pr爲什麼被close,是因爲nikhil550 的comments。大家感興趣可以看一下,https://github.com/hyperledger/fabric-samples/pull/207#issuecomment-644146557

什麼是私有數據?

如果一個通道上的一組組織需要對該通道上的其他組織保持數據私有,則可以選擇創建一個新通道,其中只包含需要訪問數據的組織。但是,在每種情況下創建單獨的通道會產生額外的管理開銷(維護鏈碼版本、策略、MSP等),並且不能在保留一部分數據私有的同時,可以讓所有通道參與者看到該事務。

這就是爲什麼從v1.2開始,Fabric 提供了創建私有數據集合的功能,它允許在通道上定義的組織子集能夠背書、提交或查詢私有數據,而無需創建單獨的通道。

步驟

在 Fabric 中使用私有數據
本教程將演示如何使用集合在區塊鏈網絡中授權的 Peer 節點上存儲和檢索私有數據。

本教程需要你已經掌握私有數據存儲及其使用方法。更多信息,請查看 私有數據。…

驗證2.0的新功能
dataHash
驗證數據庫
db
驗證rich query

test-network % peer chaincode query -C mychannel -n marblesp -c '{"Args":["QueryMarbles","{\"selector\":{\"owner\":\"tom\"}}"]}'
[{"docType":"Marble","name":"marble1","color":"blue","size":35,"owner":"tom"}]

參考:

  • https://hyperledger-fabric.readthedocs.io/en/release-2.1/private_data_tutorial.html
  • https://hyperledger-fabric.readthedocs.io/zh_CN/latest/private-data/private-data.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章