10. Hyperledger Fabric 專題 - Fabric 的重要日志輸出

Hyperledger Fabric 專題 - Fabric 的重要日志輸出

假設(shè)存在下列 docker 容器疚俱。

dev-peer0.org1.example.com-dfgchaincode-1.0
dev-peer1.org1.example.com-dfgchaincode-1.0
dev-peer0.org2.example.com-dfgchaincode-1.0
dev-peer1.org2.example.com-dfgchaincode-1.0

peer0.org1.example.com
peer1.org1.example.com
peer0.org2.example.com
peer1.org2.example.com

我們只監(jiān)控了下列 docker 容器的日志:

dev-peer0.org1.example.com-dfgchaincode-1.0
dev-peer0.org2.example.com-dfgchaincode-1.0

peer0.org1.example.com
peer0.org2.example.com

1. 接口 add(key, value)

當鏈碼接口 add(key, value) 被調(diào)用時靡馁,鏈碼進程和對端節(jié)點進程的重要輸出日志。

1.1 鏈碼重要的日志輸出

當發(fā)生一次鏈碼接口調(diào)用時,會產(chǎn)生如下輸出绵载。最重要的是注意 onChaincodeMessage饲梭,同時 payload 中包含接口名、參數(shù)的 BASE64 編碼格式早歇。

01:31:37:369 FINE    org.hyperledger.fabric.shim.impl.InnvocationTaskManager onChaincodeMessage       [dcfee6e6] {
  "type": "TRANSACTION",
  "payload": "CgNhZGQKBWZpbGUwCiJ7ImtleSI6ICJmaWxlMCIsICJ2YWx1ZSI6ICJmaWxlMCJ9",
  "txid": "dcfee6e6ae088526edb7d645836c7ea12e44276396c76e6b3644fb584e80ab4c",
  "proposal": {
    "proposalBytes": "CvYICpMBCAMQARoMCPmJ/PIFEMCHx6MBIglteWNoYW5uZWwqQGRjZmVlNmU2YWUwODg1MjZlZGI3ZDY0NTgzNmM3ZWExMmU0NDI3NjM5NmM3NmU2YjM2NDRmYjU4NGU4MGFiNGM6EBIOEgxkZmdjaGFpbmNvZGVCIJS7fxl892EaRUBDqyuXkBGk61ePHV5rbgy+rAYKQtJjEt0HCsAHCgdPcmcxTVNQErQHLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNqakNDQWpXZ0F3SUJBZ0lVRTJGWVBWMFE4NzBPcmZnUld0eXB3RjNBQitvd0NnWUlLb1pJemowRUF3SXcKY3pFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4R1RBWEJnTlZCQW9URUc5eVp6RXVaWGhoYlhCc1pTNWpiMjB4SERBYUJnTlZCQU1UCkUyTmhMbTl5WnpFdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpBd016QTBNREV5TmpBd1doY05NakV3TXpBME1ERXoKTVRBd1dqQkNNVEF3RFFZRFZRUUxFd1pqYkdsbGJuUXdDd1lEVlFRTEV3UnZjbWN4TUJJR0ExVUVDeE1MWkdWdwpZWEowYldWdWRERXhEakFNQmdOVkJBTVRCWFZ6WlhJeU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEClFnQUVJeXlJWjVCY0JKWkhGall6ak9ub0tSS0RZUExnbEc0VHFsSjZoWWhpUTQ0L2lQcEtDZ2JVY0tSVlpjc2sKN3FDRjZwNi9BdExvQWNzd095OXduL0J6YmFPQjF6Q0IxREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdEQVlEVlIwVApBUUgvQkFJd0FEQWRCZ05WSFE0RUZnUVUyU3NuazNsV3l6ZllyNFk4ZnNjcG1rUVAxcEF3S3dZRFZSMGpCQ1F3CklvQWdvTlFGRG13eWNHZkEyYVN1U1l4bXN1UTJDc09ZK2ZqS1ZtdWV4dnNBOU9rd2FBWUlLZ01FQlFZSENBRUUKWEhzaVlYUjBjbk1pT25zaWFHWXVRV1ptYVd4cFlYUnBiMjRpT2lKdmNtY3hMbVJsY0dGeWRHMWxiblF4SWl3aQphR1l1Ulc1eWIyeHNiV1Z1ZEVsRUlqb2lkWE5sY2pJaUxDSm9aaTVVZVhCbElqb2lZMnhwWlc1MEluMTlNQW9HCkNDcUdTTTQ5QkFNQ0EwY0FNRVFDSUR3aUlscUZHaDFNWFpQOHg0SHFzeTI0WmZ4YWdIaGxPakl3WkJYRmRCUDIKQWlBZlhyK1JGTzBaMzlqTW9iQytyUGRJR2RCVXNDdTBBM0tXbEoxSnhaWjdYdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEhgPel/w719m9fkiYuuT0AgAkvG6Ka6ua08SSApGCkQIARIOEgxkZmdjaGFpbmNvZGUaMAoDYWRkCgVmaWxlMAoieyJrZXkiOiAiZmlsZTAiLCAidmFsdWUiOiAiZmlsZTAifQ==",
    "signature": "MEUCIQCtmrpr1dJZJt0FD5llNhnAzJ1djqlu8v/G4EEC3jskdQIgbT0msXjUZDMs1GqrwFt1XAafI9UoUvz8ec7k3uXJ0OQ="
  },
  "channelId": "mychannel"
}

"payload": "CgNhZGQKBWZpbGUwCiJ7ImtleSI6ICJmaWxlMCIsICJ2YWx1ZSI6ICJmaWxlMCJ9" BASE64 解碼后為:

?add
?file0
"{"key": "file0", "value": "file0"}

同時倾芝,還會輸出下列重要的日志,注意與接口 add(file,value) 相關(guān)的部分以及一些格式化的日志箭跳,如 Got invoke routing request 等:

01:31:37:380 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got invoke routing request
01:31:37:383 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got the invoke request for:add [file0, {"key": "file0", "value": "file0"}]
01:31:37:384 FINE    org.hyperledger.fabric.contract.execution.impl.ContractInvocationRequest <init>  add
01:31:37:384 FINE    org.hyperledger.fabric.contract.execution.impl.ContractInvocationRequest <init>  default add [[B@82c3141f, [B@90b5ba3b]
01:31:37:387 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got routing:add:org.union.chaincode.CaojiaduContract
01:31:37:389 FINE    org.hyperledger.fabric.contract.execution.impl.ContractExecutionService executeR Routing Requestadd @2eb669a6

還有調(diào)用成功的日志輸出:

01:31:37:624 FINE    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask call                   [dcfee6e6] Invoke succeeded. Sending COMPLETED

1.2 節(jié)點 peer 的重要輸出

1.2.1 直接組織的節(jié)點 peer 的輸出

注意晨另,包含通道名稱 mychannel,鏈碼名稱 dfgchaincode谱姓。同時借尿,還包含一個區(qū)塊產(chǎn)生的流程:Received blockValidated block屉来、Committed block路翻。

2020-03-04 01:31:37.362 UTC [endorser] callChaincode -> INFO 07f [mychannel][dcfee6e6] Entry chaincode: name:"dfgchaincode"
2020-03-04 01:31:37.627 UTC [endorser] callChaincode -> INFO 080 [mychannel][dcfee6e6] Exit chaincode: name:"dfgchaincode"  (265ms)
2020-03-04 01:31:37.628 UTC [comm.grpc.server] 1 -> INFO 081 unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.28.0.1:51944 grpc.code=OK grpc.call_duration=266.444284ms
2020-03-04 01:31:39.692 UTC [gossip.privdata] StoreBlock -> INFO 082 [mychannel] Received block [5] from buffer
2020-03-04 01:31:39.694 UTC [committer.txvalidator] Validate -> INFO 083 [mychannel] Validated block [5] in 1ms
2020-03-04 01:31:39.709 UTC [kvledger] CommitWithPvtData -> INFO 084 [mychannel] Committed block [5] with 1 transaction(s) in 14ms (state_validation=0ms block_and_pvtdata_commit=9ms state_commit=1ms) commitHash=[c62657a8ce62191b8a1961faf5ebe4e9e11c4876d8717b988c626b4456e26722]

1.2.2 相關(guān)組織的節(jié)點 peer 的輸出

注意,這里只包含一個區(qū)塊產(chǎn)生的流程:Received block茄靠、Validated block茂契、Committed block。而不包含鏈碼調(diào)用相關(guān)的信息嘹黔。

2020-03-04 01:31:39.687 UTC [gossip.privdata] StoreBlock -> INFO 069 [mychannel] Received block [5] from buffer
2020-03-04 01:31:39.689 UTC [committer.txvalidator] Validate -> INFO 06a [mychannel] Validated block [5] in 2ms
2020-03-04 01:31:39.701 UTC [kvledger] CommitWithPvtData -> INFO 06b [mychannel] Committed block [5] with 1 transaction(s) in 11ms (state_validation=0ms block_and_pvtdata_commit=6ms state_commit=3ms) commitHash=[c62657a8ce62191b8a1961faf5ebe4e9e11c4876d8717b988c626b4456e26722]

2. 接口 query(key)

當鏈碼接口 query(key) 被調(diào)用時账嚎,鏈碼進程和對端節(jié)點進程的重要輸出日志。

下面的日志大部分和上面的日志類似部分就不再作解釋了儡蔓,獨特的部分會指出來郭蕉。

2.1 鏈碼重要的日志輸出

01:53:43:563 FINE    org.hyperledger.fabric.shim.impl.InnvocationTaskManager onChaincodeMessage       [b14f5a0a] {
  "type": "TRANSACTION",
  "payload": "CgVxdWVyeQoFZmlsZTA=",
  "txid": "b14f5a0a2413a378c4d4f52e4d5624f95b59f9953c0d95ac7abc2fc57df0ae1e",
  "proposal": {
    "proposalBytes": "CvYICpMBCAMQARoMCKeU/PIFEICZrYQCIglteWNoYW5uZWwqQGIxNGY1YTBhMjQxM2EzNzhjNGQ0ZjUyZTRkNTYyNGY5NWI1OWY5OTUzYzBkOTVhYzdhYmMyZmM1N2RmMGFlMWU6EBIOEgxkZmdjaGFpbmNvZGVCIECI5w6scNo144zC14H9lQRnMocC3+2zL6Q4/b8AGMgHEt0HCsAHCgdPcmcxTVNQErQHLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNqakNDQWpXZ0F3SUJBZ0lVRTJGWVBWMFE4NzBPcmZnUld0eXB3RjNBQitvd0NnWUlLb1pJemowRUF3SXcKY3pFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4R1RBWEJnTlZCQW9URUc5eVp6RXVaWGhoYlhCc1pTNWpiMjB4SERBYUJnTlZCQU1UCkUyTmhMbTl5WnpFdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpBd016QTBNREV5TmpBd1doY05NakV3TXpBME1ERXoKTVRBd1dqQkNNVEF3RFFZRFZRUUxFd1pqYkdsbGJuUXdDd1lEVlFRTEV3UnZjbWN4TUJJR0ExVUVDeE1MWkdWdwpZWEowYldWdWRERXhEakFNQmdOVkJBTVRCWFZ6WlhJeU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEClFnQUVJeXlJWjVCY0JKWkhGall6ak9ub0tSS0RZUExnbEc0VHFsSjZoWWhpUTQ0L2lQcEtDZ2JVY0tSVlpjc2sKN3FDRjZwNi9BdExvQWNzd095OXduL0J6YmFPQjF6Q0IxREFPQmdOVkhROEJBZjhFQkFNQ0I0QXdEQVlEVlIwVApBUUgvQkFJd0FEQWRCZ05WSFE0RUZnUVUyU3NuazNsV3l6ZllyNFk4ZnNjcG1rUVAxcEF3S3dZRFZSMGpCQ1F3CklvQWdvTlFGRG13eWNHZkEyYVN1U1l4bXN1UTJDc09ZK2ZqS1ZtdWV4dnNBOU9rd2FBWUlLZ01FQlFZSENBRUUKWEhzaVlYUjBjbk1pT25zaWFHWXVRV1ptYVd4cFlYUnBiMjRpT2lKdmNtY3hMbVJsY0dGeWRHMWxiblF4SWl3aQphR1l1Ulc1eWIyeHNiV1Z1ZEVsRUlqb2lkWE5sY2pJaUxDSm9aaTVVZVhCbElqb2lZMnhwWlc1MEluMTlNQW9HCkNDcUdTTTQ5QkFNQ0EwY0FNRVFDSUR3aUlscUZHaDFNWFpQOHg0SHFzeTI0WmZ4YWdIaGxPakl3WkJYRmRCUDIKQWlBZlhyK1JGTzBaMzlqTW9iQytyUGRJR2RCVXNDdTBBM0tXbEoxSnhaWjdYdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEhiDzZOFXK9VrlV2gOldrfOI6zLvPTsTvZoSJgokCiIIARIOEgxkZmdjaGFpbmNvZGUaDgoFcXVlcnkKBWZpbGUw",
    "signature": "MEUCIQDSjj6G4jKfCKT8jBLHpN5TwNviVTkKFlHa+sy3Eh11XgIgCYKRbr5aX4FEVQMz3oMZPGomL5BxZadLwZbi9Agt4Gk="
  },
  "channelId": "mychannel"
}

其中,"payload": "CgVxdWVyeQoFZmlsZTA=" BASE64 解碼為:

?query
?file0
01:53:43:569 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got invoke routing request
01:53:43:570 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got the invoke request for:query [file0]
01:53:43:571 FINE    org.hyperledger.fabric.contract.execution.impl.ContractInvocationRequest <init>  query
01:53:43:572 FINE    org.hyperledger.fabric.contract.execution.impl.ContractInvocationRequest <init>  default query [[B@650a2fdb]
01:53:43:572 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got routing:query:org.union.chaincode.CaojiaduContract
01:53:43:573 FINE    org.hyperledger.fabric.contract.execution.impl.ContractExecutionService executeR Routing Requestquery @93bcc8d7

注意喂江,這里竟然還會包含查詢結(jié)果的內(nèi)容日志:

01:53:43:592 INFO    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask invoke                 Got response back from the peertype: RESPONSE
payload: "{\"key\":\"file0\",\"value\":\"file0\",\"timestamp\":1583285497343,\"txHash\":\"dcfee6e6ae088526edb7d645836c7ea12e44276396c76e6b3644fb584e80ab4c\",\"extraValue\":null}"
txid: "b14f5a0a2413a378c4d4f52e4d5624f95b59f9953c0d95ac7abc2fc57df0ae1e"
channel_id: "mychannel"
01:53:43:595 FINE    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask invoke                 [b14f5a0a] RESPONSE response received.
01:53:43:595 FINE    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask invoke                 [b14f5a0a] Successful response received.
01:53:43:597 FINE    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask call                   [b14f5a0a] Invoke succeeded. Sending COMPLETED

2.2 節(jié)點 peer 的重要輸出

2.2.1 直接組織的節(jié)點 peer 的輸出

2020-03-04 01:53:43.559 UTC [endorser] callChaincode -> INFO 088 [mychannel][b14f5a0a] Entry chaincode: name:"dfgchaincode"
2020-03-04 01:53:43.600 UTC [endorser] callChaincode -> INFO 089 [mychannel][b14f5a0a] Exit chaincode: name:"dfgchaincode"  (40ms)

2.2.2 相關(guān)組織的節(jié)點 peer 的輸出

查詢接口無日志輸出召锈。

3. 接口 queryList(keys)

當鏈碼接口 queryList(keys) 被調(diào)用時,鏈碼進程和對端節(jié)點進程的重要輸出日志获询。

下面的日志大部分和上面的日志類似部分就不再作解釋了涨岁,獨特的部分會指出來。

3.1 鏈碼重要的日志輸出

3.2 節(jié)點 peer 的重要輸出

02:38:44:279 FINE    org.hyperledger.fabric.shim.impl.InnvocationTaskManager onChaincodeMessage       [0bc74105] {
  "type": "TRANSACTION",
  "payload": "CglxdWVyeUxpc3QKH1siZmlsZTEwMCIsImZpbGUxMDEiLCJmaWxlMTAyIl0=",
  "txid": "0bc74105b9b5e358faf774e57ec57facfdc1856149aa98928cc20a46c1b2fe24",
  "proposal": {
    "proposalBytes": "CvUICpIBCAMQARoLCLSp/PIFEMCWunwiCW15Y2hhbm5lbCpAMGJjNzQxMDViOWI1ZTM1OGZhZjc3NGU1N2VjNTdmYWNmZGMxODU2MTQ5YWE5ODkyOGNjMjBhNDZjMWIyZmUyNDoQEg4SDGRmZ2NoYWluY29kZUIgYXjB01DstzzhUMwpATu7d6Cwt3fx3qD8CcMYIvrZdRwS3QcKwAcKB09yZzFNU1AStActLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ2pqQ0NBaldnQXdJQkFnSVVFMkZZUFYwUTg3ME9yZmdSV3R5cHdGM0FCK293Q2dZSUtvWkl6ajBFQXdJdwpjekVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oCmJpQkdjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVQKRTJOaExtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NakF3TXpBME1ERXlOakF3V2hjTk1qRXdNekEwTURFegpNVEF3V2pCQ01UQXdEUVlEVlFRTEV3WmpiR2xsYm5Rd0N3WURWUVFMRXdSdmNtY3hNQklHQTFVRUN4TUxaR1Z3CllYSjBiV1Z1ZERFeERqQU1CZ05WQkFNVEJYVnpaWEl5TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0QKUWdBRUl5eUlaNUJjQkpaSEZqWXpqT25vS1JLRFlQTGdsRzRUcWxKNmhZaGlRNDQvaVBwS0NnYlVjS1JWWmNzawo3cUNGNnA2L0F0TG9BY3N3T3k5d24vQnpiYU9CMXpDQjFEQU9CZ05WSFE4QkFmOEVCQU1DQjRBd0RBWURWUjBUCkFRSC9CQUl3QURBZEJnTlZIUTRFRmdRVTJTc25rM2xXeXpmWXI0WThmc2NwbWtRUDFwQXdLd1lEVlIwakJDUXcKSW9BZ29OUUZEbXd5Y0dmQTJhU3VTWXhtc3VRMkNzT1krZmpLVm11ZXh2c0E5T2t3YUFZSUtnTUVCUVlIQ0FFRQpYSHNpWVhSMGNuTWlPbnNpYUdZdVFXWm1hV3hwWVhScGIyNGlPaUp2Y21jeExtUmxjR0Z5ZEcxbGJuUXhJaXdpCmFHWXVSVzV5YjJ4c2JXVnVkRWxFSWpvaWRYTmxjaklpTENKb1ppNVVlWEJsSWpvaVkyeHBaVzUwSW4xOU1Bb0cKQ0NxR1NNNDlCQU1DQTBjQU1FUUNJRHdpSWxxRkdoMU1YWlA4eDRIcXN5MjRaZnhhZ0hobE9qSXdaQlhGZEJQMgpBaUFmWHIrUkZPMFozOWpNb2JDK3JQZElHZEJVc0N1MEEzS1dsSjFKeFpaN1h3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGEIjwk38juxcvi8wkCn9MkiIRIGqlvRoChJECkIKQAgBEg4SDGRmZ2NoYWluY29kZRosCglxdWVyeUxpc3QKH1siZmlsZTEwMCIsImZpbGUxMDEiLCJmaWxlMTAyIl0=",
    "signature": "MEUCIQCHH5sg6yqFIKE6hhVahdQxhQPQj5fAHn3mpK+B++Hz7gIgfF1v1qf5lBNS/XxzYCz0fPENuaWKcTZ8x6+sh2XV7QA="
  },
  "channelId": "mychannel"
}
02:38:44:280 FINE    org.hyperledger.fabric.shim.impl.InnvocationTaskManager handleMsg                [0bc74105] Received TRANSACTION
02:38:44:284 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got invoke routing request
02:38:44:285 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got the invoke request for:queryList [["file100","file101","file102"]]
02:38:44:286 FINE    org.hyperledger.fabric.contract.execution.impl.ContractInvocationRequest <init>  queryList
02:38:44:286 FINE    org.hyperledger.fabric.contract.execution.impl.ContractInvocationRequest <init>  default queryList [[B@7da4e556]
02:38:44:287 INFO    org.hyperledger.fabric.contract.ContractRouter processRequest                    Got routing:queryList:org.union.chaincode.CaojiaduContract
02:38:44:288 FINE    org.hyperledger.fabric.contract.execution.impl.ContractExecutionService executeR Routing RequestqueryList @c3eac85

需要注意是吉嚣,查詢根據(jù)每個 key 返回一個內(nèi)部結(jié)果梢薪,而不是一次返回所有 key 的結(jié)果:

02:38:44:323 INFO    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask invoke                 Got response back from the peertype: RESPONSE
payload: "{\"key\":\"file100\",\"value\":\"file100\",\"timestamp\":1583289329851,\"txHash\":\"2226025767f705b705fa9c106cc4a96097c77b64cd61b53f31d9fba4c5e45e46\",\"extraValue\":null}"
txid: "0bc74105b9b5e358faf774e57ec57facfdc1856149aa98928cc20a46c1b2fe24"
channel_id: "mychannel"

...

02:38:44:331 INFO    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask invoke                 Got response back from the peertype: RESPONSE
payload: "{\"key\":\"file101\",\"value\":\"file101\",\"timestamp\":1583289332112,\"txHash\":\"ee4bc37d866a06cec2071c711ca76b0901e4981419c038609b0796b767e2025c\",\"extraValue\":null}"
txid: "0bc74105b9b5e358faf774e57ec57facfdc1856149aa98928cc20a46c1b2fe24"
channel_id: "mychannel"

...

02:38:44:349 INFO    org.hyperledger.fabric.shim.impl.ChaincodeInnvocationTask invoke                 Got response back from the peertype: RESPONSE
payload: "{\"key\":\"file102\",\"value\":\"file102\",\"timestamp\":1583289334309,\"txHash\":\"9c38f269fa0a433417a5d792b78982561422a3776827dbc8178d14f82ce2e58e\",\"extraValue\":null}"
txid: "0bc74105b9b5e358faf774e57ec57facfdc1856149aa98928cc20a46c1b2fe24"
channel_id: "mychannel"

3.2.1 直接組織的節(jié)點 peer 的輸出

2020-03-04 02:38:44.275 UTC [endorser] callChaincode -> INFO 0ab [mychannel][0bc74105] Entry chaincode: name:"dfgchaincode"
2020-03-04 02:38:44.366 UTC [endorser] callChaincode -> INFO 0ac [mychannel][0bc74105] Exit chaincode: name:"dfgchaincode"  (91ms)

3.2.2 相關(guān)組織的節(jié)點 peer 的輸出

查詢接口無日志輸出。

4. 涉及私有數(shù)據(jù)

需要注意的是尝哆,當涉及私有數(shù)據(jù)的存儲操作時候秉撇,另一個組織的鏈碼節(jié)點也會有相類似的日志輸出。

對應(yīng)鏈碼節(jié)點返回的私有數(shù)據(jù),仍然是私有數(shù)據(jù)本身琐馆,而非私有數(shù)據(jù)的哈希规阀。這也是容易理解的,因為具有權(quán)限的組織本身就存儲私有數(shù)據(jù)本身瘦麸。

Reference

項目源代碼

項目源代碼會逐步上傳到 Github谁撼,地址為 https://github.com/windstamp

Contributor

  1. Windstamp, https://github.com/windstamp
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末滋饲,一起剝皮案震驚了整個濱河市厉碟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌了赌,老刑警劉巖墨榄,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玄糟,死亡現(xiàn)場離奇詭異勿她,居然都是意外死亡,警方通過查閱死者的電腦和手機阵翎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門逢并,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人郭卫,你說我怎么就攤上這事砍聊。” “怎么了贰军?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵玻蝌,是天一觀的道長。 經(jīng)常有香客問我词疼,道長俯树,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任贰盗,我火速辦了婚禮许饿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舵盈。我一直安慰自己陋率,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布秽晚。 她就那樣靜靜地躺著瓦糟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赴蝇。 梳的紋絲不亂的頭發(fā)上菩浙,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音,去河邊找鬼芍耘。 笑死址遇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的斋竞。 我是一名探鬼主播倔约,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坝初!你這毒婦竟也來了浸剩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鳄袍,失蹤者是張志新(化名)和其女友劉穎绢要,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拗小,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡重罪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哀九。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剿配。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖阅束,靈堂內(nèi)的尸體忽然破棺而出呼胚,到底是詐尸還是另有隱情,我是刑警寧澤息裸,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布蝇更,位于F島的核電站,受9級特大地震影響呼盆,放射性物質(zhì)發(fā)生泄漏年扩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一宿亡、第九天 我趴在偏房一處隱蔽的房頂上張望常遂。 院中可真熱鬧,春花似錦挽荠、人聲如沸克胳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漠另。三九已至,卻和暖如春跃赚,著一層夾襖步出監(jiān)牢的瞬間笆搓,已是汗流浹背性湿。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留满败,地道東北人肤频。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像算墨,于是被迫代替她去往敵國和親宵荒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容