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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Hyperledger Fabric 私有数据(2)操作流程

發布時間:2025/3/21 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hyperledger Fabric 私有数据(2)操作流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 私有數據資產轉移的案例

collections_config.json文件定義了3個私有數據集合定義:assetCollection、Org1MSPPrivateCollection和Org2MSPPrivateCollection。

eg. collections_config.json文件內容

[{"name": "assetCollection","policy": "OR('Org1MSP.member', 'Org2MSP.member')","requiredPeerCount": 1,"maxPeerCount": 1,"blockToLive":1000000,"memberOnlyRead": true,"memberOnlyWrite": true},{"name": "Org1MSPPrivateCollection","policy": "OR('Org1MSP.member')","requiredPeerCount": 0,"maxPeerCount": 1,"blockToLive":3,"memberOnlyRead": true,"memberOnlyWrite": false,"endorsementPolicy": {"signaturePolicy": "OR('Org1MSP.member')" }},{"name": "Org2MSPPrivateCollection","policy": "OR('Org2MSP.member')","requiredPeerCount": 0,"maxPeerCount": 1,"blockToLive":3,"memberOnlyRead": true,"memberOnlyWrite": false,"endorsementPolicy": {"signaturePolicy": "OR('Org2MSP.member')" }}]

2. 數據結構

2.1 chaincode內部結構體

2.2 物理存儲結構

3. 操作流程

3.1. 鏈碼流程

step1. base64格式化編碼私有數據參數

export private_create=$(echo -n “{“assetID”:“10004” , “objectType”:“1” , “color” : “red” , “appraisedValue” : 1000 , “size”:100 }” | base64 | tr -d \n)

step2. 安裝智能合約

peer lifecycle chaincode install /opt/gopath/src/github.com/chaincode/private.tar.gz

step3. 配置合約參數ID

export CC_PACKAGE_ID=private:939ab0bae5f72a707fffac97f38600db7d4fb116d3d7c45bc0be2082c58f33c0

step4. 導入私有參數的配置路徑

export CC_COLL_CONFIG=/opt/gopath/src/github.com/chaincode/collections_config.json

step5. 節點授權安裝合約

peer lifecycle chaincode approveformyorg --signature-policy “OR(‘Org1MSP.member’,‘Org2MSP.member’,‘Org3MSP.member’)” -o orderer.xxx.com:7050 --channelID mychannel --name private --version 1.0 --package-id $CC_PACKAGE_ID --sequence 10 --collections-config $CC_COLL_CONFIG --tls --cafile $ORDERER_TLSCA

step6. 提交合約

peer lifecycle chaincode commit --signature-policy “OR(‘Org1MSP.member’,‘Org2MSP.member’,‘Org3MSP.member’)” -o orderer.xxx.com:7050 --channelID mychannel --name private --version 1.0 --sequence 11 --tls --cafile $ORDERER_TLSCA --collections-config $CC_COLL_CONFIG --peerAddresses peer0.org1.xxx.com:7051 --tlsRootCertFiles ${PWD}/config/crypto-config/peerOrganizations/org1.xxx.com/peers/peer0.org1.xxx.com/tls/ca.crt --peerAddresses peer0.org2.xxx.com:7051 --tlsRootCertFiles ${PWD}/config/crypto-config/peerOrganizations/org2.xxx.com/peers/peer0.org2.xxx.com/tls/ca.crt --peerAddresses peer0.org3.xxx.com:7051 --tlsRootCertFiles ${PWD}/config/crypto-config/peerOrganizations/org3.xxx.com/peers/peer0.org3.xxx.com/tls/ca.crt

step7. 通過以上參數的設置好后,調用合約的命令就會非常簡潔

peer chaincode invoke -o orderer.xxx.com:7050 --tls --cafile KaTeX parse error: Can't use function '\"' in math mode at position 84: … --transient "{\?"?asset_propertie…private_create"}"

step8. 實例化chaincode時需要指定定義的json文件

注意–collections-config參數
peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n marblesp -v 1.0 -c ‘{“Args”:[“init”]}’ -P “OR(‘Org1MSP.member’,‘Org2MSP.member’)” --collections-config $GOPATH/src/github.com/chaincode/marbles02_private/collections_config.json

3.2. 鏈碼相關操作

step1. 初始化私有數據,不是執行init而是執行invoke的initMarble

peer chaincode invoke -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n marblesp -c ‘{“Args”:[“initMarble”,“marble1”,“blue”,“35”,“tom”,“99”]}’

step2.在org1上查詢私有數據

eg.
peer chaincode query -C mychannel -n marblesp -c ‘{“Args”:[“readMarble”,“marble1”]}’

結果
{“color”:“blue”,“docType”:“marble”,“name”:“marble1”,“owner”:“tom”,“size”:35}

eg2.
peer chaincode query -C mychannel -n marblesp -c ‘{“Args”:[“readMarblePrivateDetails”,“marble1”]}’
結果
{“docType”:“marblePrivateDetails”,“name”:“marble1”,“price”:99}

step3. 在org2上查詢私有數據

eg1.
peer chaincode query -C mychannel -n marblesp -c ‘{“Args”:[“readMarble”,“marble1”]}’

結果
{“docType”:“marble”,“name”:“marble1”,“color”:“blue”,“size”:35,“owner”:“tom”}

eg2.
peer chaincode query -C mychannel -n marblesp -c ‘{“Args”:[“readMarblePrivateDetails”,“marble1”]}’

{“Error”:“Failed to get private details for marble1: GET_STATE failed:
transaction ID: b04adebbf165ddc90b4ab897171e1daa7d360079ac18e65fa15d84ddfebfae90:
Private data matching public hash version is not available. Public hash
version = &version.Height{BlockNum:0x6, TxNum:0x0}, Private data version =
(*version.Height)(nil)”}"

step4. 刪除數據

私有數據可以復制到離線數據庫中,同時,可以通過blockToLive這個屬性指定產生幾個塊以后,刪除私有數據,在鏈上只保存hash值。當數據被刪除的時候,再查詢數據時,會發生下面的錯誤

Error: endorsement failure during query. response: status:500
message:"{“Error”:“Marble private details does not exist: marble1”}"

總結

以上是生活随笔為你收集整理的Hyperledger Fabric 私有数据(2)操作流程的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久艹精品视频 | 日韩精品xxxx | 国产第5页 | 久久国产乱子伦精品 | 九九热色 | 久久精品国产免费 | 日韩免费福利 | 亚洲一区二区偷拍 | 国产美女网 | 男女羞羞动态图 | 欧美日韩成人一区 | 91性 | 国产免费av片在线观看 | 日韩福利网 | 亚洲av永久纯肉无码精品动漫 | √资源天堂中文在线视频 | 日本性生活一级片 | av播放在线| 中文字幕在线资源 | 久久特级毛片 | 天天射天天拍 | 91中文视频 | 国产精品9 | 18性xxxxx性猛交 | 欧美精品欧美精品系列 | 免费看黄网站在线 | 好吊色青青草 | 三上悠亚在线一区二区 | 一区二区三区有限公司 | 日本成人在线播放 | 久久中文字幕一区二区 | www.中文字幕| 中文字幕免费在线视频 | 污黄网站在线观看 | 自拍一区在线 | 日韩视频在线观看视频 | wwwww国产 | 国产资源免费 | 免费看色| 国产精品夜夜夜爽阿娇 | 韩国午夜激情 | 中文字幕一区二区三区精华液 | 狠狠操网| 欧美人妻精品一区二区免费看 | 日一区二区 | 国产伦精品一区二区三区视频痴汉 | 亚洲xxxxxx| 综合视频| 免费观看av的网站 | 成年人在线播放 | 天天做天天摸天天爽天天爱 | 97精品熟女少妇一区二区三区 | 丰满少妇一区 | 精品无码久久久久成人漫画 | 国产性xxx| 国产亚洲毛片 | 国产综合影院 | 亚洲xxxxxx| 日韩欧美99 | 中国少妇初尝黑人巨大 | 日本黄色片免费看 | 超碰免费人人 | 77777av| 日本一区不卡 | 日韩成人在线看 | 精品一区二区在线视频 | 国产a国产片 | 国产破处视频 | 国产精选一区二区三区 | 天天干,天天操 | 久草毛片 | 囯产精品一品二区三区 | 91一区 | 性欧美大战久久久久久久 | 国产欧美激情 | www精品国产| √天堂 | 欧美一区二区人人喊爽 | 一级片久久久 | 婷婷伊人综合中文字幕 | 丰满少妇一区二区三区专区 | 老司机午夜精品视频 | 亚洲免费天堂 | 日韩视频在线免费播放 | 九九热视频在线播放 | 天堂网8| 黄色av网页 | 免费看av网| 极品白嫩的小少妇 | 欧美日韩卡一卡二 | 天天综合天天干 | 操操操操操操 | 特级一级片 | 国产日本在线播放 | jizz成熟丰满日本少妇 | 国产精品乱码妇女bbbb | 超碰在线视屏 | 中文字幕av播放 | 国产成人免费av一区二区午夜 |