hyperledger fabric_鼎诚鬼才|超级账本入门(四):HYPERLEDGER 权限管理
生活随笔
收集整理的這篇文章主要介紹了
hyperledger fabric_鼎诚鬼才|超级账本入门(四):HYPERLEDGER 权限管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
權限管理
權限管理機制是 hyperledger fabric 項目的一大特色。下面給出使用權限管理的一個應用案例。
啟動集群
首先現在相關鏡像。
$ docker pull yeasy/hyperledger:latest $ docker tag yeasy/hyperledger:latest hyperledger/fabric-baseimage:latest $ docker pull yeasy/hyperledger-peer:latest $ docker pull yeasy/hyperledger-membersrvc:latest進入 hyperledger 項目,啟動帶成員管理的 PBFT 集群。
$ git clone https://github.com/yeasy/docker-compose-files $ cd docker-compose-files/hyperledger $ docker-compose -f docker-compose-with-membersrvc.yml up用戶登陸
當啟用了權限管理后,首先需要登錄,例如以內置賬戶 jim 賬戶登錄。
登錄 vp0,并執行登錄命令。
$ docker exec -it pbft_vp0_1 bash# peer network login jim08:23:13.604 [networkCmd] networkLogin -> INFO 001 CLI client login...08:23:13.604 [networkCmd] networkLogin -> INFO 002 Local data store for client loginToken: /var/hyperledger/production/client/Enter password for user 'jim': 6avZQLwcUe9b也可以用 REST 方式:
POST HOST:7050/registrarRequest:
{"enrollId": "jim","enrollSecret": "6avZQLwcUe9b"}Response:
{"OK": "User jim is already logged in."}CHAINCODE 部署
登錄之后,chaincode 的部署、調用等操作與之前類似,只是需要通過 -u 選項來指定用戶名。
在 vp0 上執行命令:
# peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'也可以通過 REST 方式進行:
POST HOST:7050/chaincodeRequest:
{"jsonrpc": "2.0","method": "deploy","params": {"type": 1,"chaincodeID":{"path":"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"},"ctorMsg": {"function":"init","args":["a", "1000", "b", "2000"]},"secureContext": "jim"},"id": 1}Response:
{"jsonrpc": "2.0","result": {"status": "OK","message": "980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"},"id": 1}CHAINCODE 調用
在賬戶 a、b 之間進行轉賬 10 元的操作。
$ peer chaincode invoke -u jim -n 980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'也可以通過 REST 方式進行:
POST HOST:7050/chaincodeRequest:
{"jsonrpc": "2.0","method": "invoke","params": {"type": 1,"chaincodeID":{"name":"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"},"ctorMsg": {"function":"invoke","args":["a", "b", "100"]},"secureContext": "jim"},"id": 3}Response:
{"jsonrpc": "2.0","result": {"status": "OK","message": "66308740-a2c5-4a60-81f1-778dbed49cc3"},"id": 3}CHAINCODE 查詢
查詢 a 賬戶的余額。
也可以通過 REST 方式進行:
POST HOST:7050/chaincodeRequest:
{"jsonrpc": "2.0","method": "query","params": {"type": 1,"chaincodeID":{"name":"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"},"ctorMsg": {"function":"query","args":["a"]},"secureContext": "jim"},"id": 5}Response:
{"jsonrpc": "2.0","result": {"status": "OK","message": "900"},"id": 5}區塊信息查詢
URL:
GET HOST:7050/chain/blocks/2Response:
{"transactions": [{"type": 2,"chaincodeID": "EoABMjhiYjJiMjMxNjE3MWE3MDZiYjI4MTBlYzM1ZDA5NWY0MzA4NzdiZjQ0M2YxMDYxZWYwZjYwYmJlNzUzZWQ0NDA3MDBhNTMxMmMxNjM5MGQzYjMwMTk5ZmU5NDY1YzNiNzVkNTk0NDM1OGNhYWUwMWNhODFlZjI4MTI4YTFiZmI=","payload": "Cp0BCAESgwESgAEyOGJiMmIyMzE2MTcxYTcwNmJiMjgxMGVjMzVkMDk1ZjQzMDg3N2JmNDQzZjEwNjFlZjBmNjBiYmU3NTNlZDQ0MDcwMGE1MzEyYzE2MzkwZDNiMzAxOTlmZTk0NjVjM2I3NWQ1OTQ0MzU4Y2FhZTAxY2E4MWVmMjgxMjhhMWJmYhoTCgZpbnZva2USAWESAWISAzEwMA==","uuid": "2b3b6cf3-9887-4dd5-8f2e-3634ec9c719a","timestamp": {"seconds": 1466577447,"nanos": 399637431},"nonce": "5AeA6S1odhPIDiGjFTFG8ttcihOoNNsh","cert": "MIICPzCCAeSgAwIBAgIRAMndnS+Me0G6gs4J9/fb8HcwCgYIKoZIzj0EAwMwMTELMAkGA1UEBhMCVVMxFDASBgNVBAoTC0h5cGVybGVkZ2VyMQwwCgYDVQQDEwN0Y2EwHhcNMTYwNjIyMDYzMzE4WhcNMTYwOTIwMDYzMzE4WjAxMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLSHlwZXJsZWRnZXIxDDAKBgNVBAMTA2ppbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDLd2W8PxzgB4A85Re2x44BApbOGqP05tnkygbXSctLiqi5HVfwRAACS6znVA9+toni59Yy+XAH3w2offdjFW3mjgdwwgdkwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBAECAwQwDwYDVR0jBAgwBoAEAQIDBDBNBgYqAwQFBgcBAf8EQAfASTE6bZ0P5mrEzTa5r1UyKFv+dKezBiGU0V3l2iWzk9evlGMvaC2pwhEKfKDdKxs7YSMYe/7cLq/oF++GBVowSgYGKgMEBQYIBEBEO3TKXuORl5Geuco8Gnn5TkoIl4+b96aPGDGvKbmDjMXR9vEBuUXTnsbDL53j7kC8/XQs1kZboC1ojLeUSN03MAoGCCqGSM49BAMDA0kAMEYCIQCZqyANMFcu1WiMe2So0pC7eRU95F0+qUXLAKZsPWv/YQIhALmNaglP7CoMOe2qxehucmffDlu0BRLSYDHyV9xcxmkH","signature": "MEYCIQDob3NqdrfwlSGhi+zz+Ypl7S9QQ07RIFr8nV92e8KDNgIhANIljz4tRS8vwQk01hTemNQFJX2zMI6DhSUFZivbbtoR"}],"stateHash": "7YUoVvYnMLHbLf47uTixLtkjF6xM9DuvgSWC92MbOUzk09xhcRBBLZqe5FvJElgZemELBOcuIFnubL0LiGH0yw==","previousBlockHash": "On4BlpqCYNpugUKluqvOcbvkr3TAQxmlISLdd6qrONtIgmQ4iUDeWxAA9lUCceZfF8tke8A0Wy7m9tksNpKodw==","consensusMetadata": "CAI=","nonHashData": {"localLedgerCommitTimestamp": {"seconds": 1466577447,"nanos": 653618964},"transactionResults": [{"uuid": "2b3b6cf3-9887-4dd5-8f2e-3634ec9c719a"}]}}總結
以上是生活随笔為你收集整理的hyperledger fabric_鼎诚鬼才|超级账本入门(四):HYPERLEDGER 权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 燕山大学数字通信计算机仿真代码,燕山大学
- 下一篇: 多个字段条件相同进行分组并过滤拼装SQL