Posts /

Fabric的区块信息(结合SDK-java)

15 Jul 2020

Fabric的区块信息


通过Fabric-sdk-java中的End2EndIT.blockwalker中获取的信息

前置条件:知道区块链的Channel。

本文没有列全相关类的方法,某些需要的信息可能还需要查看fabric-sdk-java来确定。

  1. 获取区块链信息
BlockchainInfo channelInfo = channel.queryBlockchainInfo(); 
  1. 区块信息
// 根据区块号获取
BlockInfo returnedBlock = channel.queryBlockByNumber(blockNumber); 
// 根据交易ID获得
BlockInfo returnedBlock = channel.queryBlockByTransactionID(txid);
// 根据Hash获得
BlockInfo returnedBlock = channel.queryBlockByHash(hash);// 根据Hash获得
// 获取Hash
// 数据的Hash
Hex.encodeHexString(returnedBlock.getDataHash())
// 前一个区块的Hash
Hex.encodeHexString(returnedBlock.getPreviousHash()) 
// 计算出当前区块的Hash
// *************BlockHash = cal(blockNumber,block.preHash,DataHash)*****************
Hex.encodeHexString(SDKUtils.calculateBlockHash(client, 
                        blockNumber, returnedBlock.getPreviousHash(), returnedBlock.getDataHash()));
// 获取信封的个数
returnedBlock.getEnvelopeCount();
  1. 交易信息
// 获取信封信息
returnedBlock.getEnvelopeInfos()
for(lockInfo.EnvelopeInfo envelopeInfo : returnedBlock.getEnvelopeInfos())

envelopeInfo = returnedBlock.getEnvelopeInfo(0);

// 获取当前信封的交易ID
String txid = envelopeInfo.getTransactionID();
// 获取当前信封所在的通道
String channelId = envelopeInfo.getChannelId();
// 交易时间戳
out("  Transaction number %d has transaction timestamp: %tB %<te,  %<tY  %<tT %<Tp", i, envelopeInfo.getTimestamp());
// 随机数[生成特定要求的Hash用的]
Hex.encodeHexString(envelopeInfo.getNonce());
// 交易创建者
String MSPID = envelopeInfo.getCreator().getMspid();
// 创建者证书   
String cert = envelopeInfo.getCreator().getId();
  1. 如果交易类型是TRANSACTION_ENVELOPE可以有更多的信息
// 将信封强制转换为(BlockInfo.TransactionEnvelopeInfo)
BlockInfo.TransactionEnvelopeInfo transactionEnvelopeInfo = (BlockInfo.TransactionEnvelopeInfo) envelopeInfo;
// 获取一个交易中action的个数【目前,每个交易只有一个action】
transactionEnvelopeInfo.getTransactionActionInfoCount());
// 交易是否有效,区块链中所有提交的交易都会被放进区块链,只有有效的才会改状态数据库
transactionEnvelopeInfo.isValid());
// 有效码
transactionEnvelopeInfo.getValidationCode())
// 获取所有交易Action信息
transactionEnvelopeInfo.getTransactionActionInfos()
  1. 交易Action信息(目前区块链1.4.4只支持一个action)
// 获取交易状态
transactionActionInfo.getResponseStatus() // 200
// 交易响应信息
transactionActionInfo.getResponseMessageBytes()
// 交易背书者个数
transactionActionInfo.getEndorsementsCount()// 2

// 获取背书者信息
BlockInfo.EndorserInfo endorserInfo = transactionActionInfo.getEndorsementInfo(n);
// 背书者签名
Hex.encodeHexString(endorserInfo.getSignature())
// 背书者MspID和证书
endorserInfo.getMspid() endorserInfo.getId()

// 调用合约的参数
transactionActionInfo.getChaincodeInputArgsCount()// 参数个数
// 获取第z个参数
String arg1 = new String(transactionActionInfo.getChaincodeInputArgs(z), UTF_8)
/*
   Transaction action 1 has 4 chaincode input arguments // 交易参数
     Transaction action 1 has chaincode input argument 0 is: invoke
     Transaction action 1 has chaincode input argument 1 is: a
     Transaction action 1 has chaincode input argument 2 is: b
     Transaction action 1 has chaincode input argument 3 is: 10
*/

// 合约响应
String responce = new String(transactionActionInfo.getProposalResponsePayload())));
// 合约名字
String chaincodeIDName = transactionActionInfo.getChaincodeIDName();
// 合约版本
String chaincodeIDVersion = transactionActionInfo.getChaincodeIDVersion();
// 合约路径
String chaincodeIDPath = transactionActionInfo.getChaincodeIDPath();


// 交易读写集
TxReadWriteSetInfo rwsetInfo = transactionActionInfo.getTxReadWriteSet();
// 迭代获得每个name space read write set
rwsetInfo.getNsRwsetInfos();
// 迭代器获得单个命名空间
String namespace = nsRwsetInfo.getNamespace();
// 读写集
KvRwset.KVRWSet rws = nsRwsetInfo.getRwset();
rws.getReadsList()
rws.getWritesList()

//out("Namespace %s read set %d key %s  version [%d:%d]", namespace, rs, readList.getKey(),readList.getVersion().getBlockNum(), readList.getVersion().getTxNum());
//     Namespace mycc read set 0 key a  version [3:0]
KvRwset.KVRead readList. : rws.getReadsList()
readList.getVersion().getBlockNum(); //区块号
readList.getVersion().getTxNum()); //交易号
/*获取某个版本下某个key对应的值,如在启动完byfn:a has value 90 */
//out("Namespace %s write set %d key %s has value '%s' ", namespace, rs,writeList.getKey(),valAsString);
//     Namespace mycc write set 0 key a has value '90' 
writeList.getKey()
new String(writeList.getValue().toByteArray(), UTF_8)

byfn启动后的区块信息

/**
*	byfn样例前四个区块信息。
*/
// =======================区块4==================================
current block number 4 has data hash: 
af10f896e9ee54513706206ab9aa443c1fa6a067224c8bbe05a01d4df676f785

current block number 4 has previous hash id: 
d814ede0966b9be0d8e41f9915f34466d5464d07cf2cebd6e54c5945801238ab

current block number 4 has calculated block hash is 
66f98bd234933abba42be6483ca59912f328b46e5e170af9e70479a5e1441ef5

current block number 4 has 1 envelope count:// byfn up执行结束只有一个信封
  Transaction number 1 has transaction id: 
0c4931a2cca2f51b466bca9ed8c5d1a554e5364dfe1df71a745a478344746cfa
  Transaction number 1 has channel id: mychannel
  Transaction number 1 has epoch: 0
  Transaction number 1 has transaction timestamp: 七月 14,  2020  20:15:52 下午
  Transaction number 1 has type id: TRANSACTION_ENVELOPE //TRANSACTION_ENVELOPE交易类型
  Transaction number 1 has nonce : 2554c44420c91cf85bc659aa323e28a939ffa1c88ef91d7d
  Transaction number 1 has submitter mspid: Org2MSP,  certificate: 
-----BEGIN CERTIFICATE-----
MIICKTCCAc+gAwIBAgIQG8LbJwCh772CL6r0qTkVTzAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTQxMjA2MDBaFw0zMDA3MTIxMjA2MDBa
MGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn
Mi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKbYHtGHVbC+
EIJaybVLdbK9LZJ1VQOl5ifctBzU+OfVG7k6WhT1BCdKA1r55POxKSpe8qTIbsjZ
TKX3r5fBmh2jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud
IwQkMCKAICsQDwxFO7VGN3OcTaS7lrN8cG5s+mgPu95SxlK3cpmnMAoGCCqGSM49
BAMCA0gAMEUCIQD+KhgZg5INCLxrWptTA7zYHSMI+In5XHfbzAoZnRGF3AIgAK00
BLFfbgMVnZ48EzKi/RySXhP4QjMD64ZxRC9zZlY=
-----END CERTIFICATE-----

  Transaction number 1 has 1 actions
  Transaction number 1 isValid true
  Transaction number 1 validation code 0
   Transaction action 1 has response status 200
   Transaction action 1 has response message bytes as string: 
   Transaction action 1 has 2 endorsements
Endorser 0 signature: 3044022002063874e37e4fa764ecf7463292acc7f364d0ce87ec1992905c74e0edb9ed8f02206fa680a9d608434b831d9f0aea3d77102c28995060ffa8c1bc141f7655dd4c90
Endorser 0 endorser: mspid Org1MSP 
 certificate 
-----BEGIN CERTIFICATE-----
MIICKTCCAc+gAwIBAgIRAP5JTshqKWwUu+mBF5xI7bQwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwNzE0MTIwNjAwWhcNMzAwNzEyMTIwNjAw
WjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn
MS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJEzPhiApsIe
soedVM9suKadzLGZKkWaLNq1eDqriXvPsyW/QP8Kgtx0r7/Xh/sVSh8kZ0kuL3js
psiL5RXUkAejTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud
IwQkMCKAINLc3Vxwm+iOCqrJBz+jzu6Russd5AVg3XJd2AqErAyiMAoGCCqGSM49
BAMCA0gAMEUCIQDZmqnudaZpz+MU5078Ijou5461moX6BlRUfE2QOP2BSQIgMtw5
B44as7PHBmX7b6MPTr4i4mrD+oGpocEea9BGE1Q=
-----END CERTIFICATE-----

Endorser 1 signature: 304402200e51aa37ae529311d452bb06402b80fa88af8fe19b65a306a9051888ef37717702200daef3f41cf7ff9dba6725bcde751b3e47f87361814ba8299c1b0405391ce504
Endorser 1 endorser: mspid Org2MSP 
 certificate -----BEGIN CERTIFICATE-----
MIICJzCCAc6gAwIBAgIQBwPbGtYTeQgMUNLUN29aODAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTQxMjA2MDBaFw0zMDA3MTIxMjA2MDBa
MGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcy
LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIXy4DLf/Q1G5
lP9vu4bo/GXpefxM0KALcY5udAjrfX66WjfOvSvQ15J+B9i5mE22r4yGz6shJOOM
SbKasiLat6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j
BCQwIoAgKxAPDEU7tUY3c5xNpLuWs3xwbmz6aA+73lLGUrdymacwCgYIKoZIzj0E
AwIDRwAwRAIgHUv7JJOsLYwvJbNWUAVHew245PtmM7WOp1cVM4MAjI0CIDqBBGnX
n4kQQgOxiY4WXuFRfxyeeQdPmfyN8eKeO5Bu
-----END CERTIFICATE-----

   Transaction action 1 has 4 chaincode input arguments // 交易参数
     Transaction action 1 has chaincode input argument 0 is: invoke
     Transaction action 1 has chaincode input argument 1 is: a
     Transaction action 1 has chaincode input argument 2 is: b
     Transaction action 1 has chaincode input argument 3 is: 10
   Transaction action 1 proposal response status: 200
   Transaction action 1 proposal response payload: 
   Transaction action 1 proposal chaincodeIDName: mycc, chaincodeIDVersion: 1.0,  chaincodeIDPath:  
   Transaction action 1 has 2 name space read write sets
     Namespace lscc read set 0 key mycc  version [3:0]
     Namespace mycc read set 0 key a  version [3:0]
     Namespace mycc read set 1 key b  version [3:0]
     Namespace mycc write set 0 key a has value '90' 
     Namespace mycc write set 1 key b has value '210' 
       
// =======================区块3==================================
current block number 3 has data hash: 4b556be695f75c53531218e7ee56555e25ff3bfff6c8fb708afe426430f13dee

current block number 3 has previous hash id: 1870eabee280e985c3393c6602bb30f6e73b5b8591419d39aa9c986b679f4bb4

current block number 3 has calculated block hash is d814ede0966b9be0d8e41f9915f34466d5464d07cf2cebd6e54c5945801238ab

current block number 3 has 1 envelope count:
  Transaction number 1 has transaction id: da9201d1e7f0a47f88f81c6fdcd5f2d5c9e6268d87eadb57c5142afeee5f1f0c
  Transaction number 1 has channel id: mychannel
  Transaction number 1 has epoch: 0
  Transaction number 1 has transaction timestamp: 七月 14,  2020  20:12:02 下午
  Transaction number 1 has type id: TRANSACTION_ENVELOPE //TRANSACTION_ENVELOPE交易类型
  Transaction number 1 has nonce : ea18222ff3cc86aea50f8608bcd1e340336f5e00db047040
  Transaction number 1 has submitter mspid: Org2MSP,  certificate: -----BEGIN CERTIFICATE-----
MIICKTCCAc+gAwIBAgIQG8LbJwCh772CL6r0qTkVTzAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTQxMjA2MDBaFw0zMDA3MTIxMjA2MDBa
MGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn
Mi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKbYHtGHVbC+
EIJaybVLdbK9LZJ1VQOl5ifctBzU+OfVG7k6WhT1BCdKA1r55POxKSpe8qTIbsjZ
TKX3r5fBmh2jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud
IwQkMCKAICsQDwxFO7VGN3OcTaS7lrN8cG5s+mgPu95SxlK3cpmnMAoGCCqGSM49
BAMCA0gAMEUCIQD+KhgZg5INCLxrWptTA7zYHSMI+In5XHfbzAoZnRGF3AIgAK00
BLFfbgMVnZ48EzKi/RySXhP4QjMD64ZxRC9zZlY=
-----END CERTIFICATE-----

  Transaction number 1 has 1 actions
  Transaction number 1 isValid true
  Transaction number 1 validation code 0
   Transaction action 1 has response status 200
   Transaction action 1 has response message bytes as string: 
   Transaction action 1 has 1 endorsements
Endorser 0 signature: 3045022100bbb91a90591824df7aa048117746f98b8d7618c8fe940f35d6f67639885404eb022017268078faac34c7049cd797b28d7ee039475f3d5137c884ad67ba4ee812dedf
Endorser 0 endorser: mspid Org2MSP 
 certificate -----BEGIN CERTIFICATE-----
MIICJzCCAc6gAwIBAgIQBwPbGtYTeQgMUNLUN29aODAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTQxMjA2MDBaFw0zMDA3MTIxMjA2MDBa
MGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcy
LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIXy4DLf/Q1G5
lP9vu4bo/GXpefxM0KALcY5udAjrfX66WjfOvSvQ15J+B9i5mE22r4yGz6shJOOM
SbKasiLat6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j
BCQwIoAgKxAPDEU7tUY3c5xNpLuWs3xwbmz6aA+73lLGUrdymacwCgYIKoZIzj0E
AwIDRwAwRAIgHUv7JJOsLYwvJbNWUAVHew245PtmM7WOp1cVM4MAjI0CIDqBBGnX
n4kQQgOxiY4WXuFRfxyeeQdPmfyN8eKeO5Bu
-----END CERTIFICATE-----

   Transaction action 1 has 6 chaincode input arguments // lscc 生命周期合约交易参数
     Transaction action 1 has chaincode input argument 0 is: deploy
     Transaction action 1 has chaincode input argument 1 is: mychannel
     //初始化参数
     Transaction action 1 has chaincode input argument 2 is: ?'??????mycc??1.0????init??a??100??b??200  
     Transaction action 1 has chaincode input argument 3 is: ????????????????????Org1MSP????????Org2MSP??
     Transaction action 1 has chaincode input argument 4 is: escc
     Transaction action 1 has chaincode input argument 5 is: vscc
   Transaction action 1 proposal response status: 200
   Transaction action 1 proposal response payload: ??mycc??1.0??escc"?vscc*,????????????????????Org1MSP????????Org2...
   Transaction action 1 proposal chaincodeIDName: lscc, chaincodeIDVersion: 1.4.4,  chaincodeIDPath:  
   Transaction action 1 has 2 name space read write sets
     Namespace lscc read set 0 key mycc  version [0:0]
     Namespace lscc write set 0 key mycc has value '??mycc??1.0??escc"?vscc*,????????????????????Org1MSP????????Org2...' 
     Namespace mycc write set 0 key a has value '100' 
     Namespace mycc write set 1 key b has value '200' 

// =======================区块2==================================
current block number 2 has data hash: bb2e6ef83e9c33229225b9e12c0a2f480f270a25fc511e69abfac49700b0f13d
current block number 2 has previous hash id: edcbd214efa7047be77dd9876c5b2ae6fbe36f54fdf3726a59ee7fd67ae8984a
current block number 2 has calculated block hash is 1870eabee280e985c3393c6602bb30f6e73b5b8591419d39aa9c986b679f4bb4
current block number 2 has 1 envelope count:
  Transaction number 1 has transaction id: 
  Transaction number 1 has channel id: mychannel
  Transaction number 1 has epoch: 0
  Transaction number 1 has transaction timestamp: 七月 14,  2020  20:11:55 下午
  Transaction number 1 has type id: ENVELOPE
  Transaction number 1 has nonce : ab3cb626425776c7e9259ca379fe89d12eb04d6792b51d7a
  Transaction number 1 has submitter mspid: OrdererMSP,  certificate: -----BEGIN CERTIFICATE-----
MIICHTCCAcSgAwIBAgIQONEfXTGwJRoNfdBmxfwmhjAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTIwMDcxNDEyMDYwMFoXDTMwMDcxMjEyMDYwMFowajELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xEDAOBgNVBAsTB29yZGVyZXIxHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5j
b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATLO5RBDYiauJ+TEbYNSgIT65BF
oZBKX2C0t8NzazE6v0mAtYv3ZnbWi77PVWEcbfObv547SEtHmy9v8BzXyeaXo00w
SzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCDjufH5
UPc1qkGqOqxxFLULiU5C6uE0r6JcEmxbYPqzyjAKBggqhkjOPQQDAgNHADBEAiBo
x9A2j6B5AlRwUqgsG1+FB9nC63MJl6EJJbKpuWHLHgIgegLQL8BarkSS27/Df/+X
w1ej0jjFw/2c9VjXhug+yK0=
-----END CERTIFICATE-----
// =======================区块1==================================
current block number 1 has data hash: 35321a24ef3af920294de8591f3998ec6d44a41ff2ac5ffeb65d2796b7f934a6
current block number 1 has previous hash id: 742898e692aae23fb40e94ef57030a279f3633989ac73bf8e839d7f26e0e597a
current block number 1 has calculated block hash is edcbd214efa7047be77dd9876c5b2ae6fbe36f54fdf3726a59ee7fd67ae8984a
current block number 1 has 1 envelope count:
  Transaction number 1 has transaction id: 
  Transaction number 1 has channel id: mychannel
  Transaction number 1 has epoch: 0
  Transaction number 1 has transaction timestamp: 七月 14,  2020  20:11:52 下午
  Transaction number 1 has type id: ENVELOPE // ENVELOPE交易类型
  Transaction number 1 has nonce : 42eb01613dd8fac79334652894df6a931c83c78d71d31f82
  Transaction number 1 has submitter mspid: OrdererMSP,  certificate: -----BEGIN CERTIFICATE-----
MIICHTCCAcSgAwIBAgIQONEfXTGwJRoNfdBmxfwmhjAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTIwMDcxNDEyMDYwMFoXDTMwMDcxMjEyMDYwMFowajELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xEDAOBgNVBAsTB29yZGVyZXIxHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5j
b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATLO5RBDYiauJ+TEbYNSgIT65BF
oZBKX2C0t8NzazE6v0mAtYv3ZnbWi77PVWEcbfObv547SEtHmy9v8BzXyeaXo00w
SzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCDjufH5
UPc1qkGqOqxxFLULiU5C6uE0r6JcEmxbYPqzyjAKBggqhkjOPQQDAgNHADBEAiBo
x9A2j6B5AlRwUqgsG1+FB9nC63MJl6EJJbKpuWHLHgIgegLQL8BarkSS27/Df/+X
w1ej0jjFw/2c9VjXhug+yK0=
-----END CERTIFICATE-----

current block number 0 has data hash: 3be464bc9d3b26f68996856d5ab4dce1ee766eac70838b7699d5998528452a15
current block number 0 has previous hash id: 
current block number 0 has calculated block hash is 742898e692aae23fb40e94ef57030a279f3633989ac73bf8e839d7f26e0e597a
current block number 0 has 1 envelope count:
  Transaction number 1 has transaction id: 
  Transaction number 1 has channel id: mychannel
  Transaction number 1 has epoch: 0
  Transaction number 1 has transaction timestamp: 七月 14,  2020  20:11:38 下午
  Transaction number 1 has type id: ENVELOPE // ENVELOPE交易类型
  Transaction number 1 has nonce : 4d281908aff6c10d2b4e88cc78f31284f9e7f82517568d77
  Transaction number 1 has submitter mspid: OrdererMSP,  certificate: -----BEGIN CERTIFICATE-----
MIICHTCCAcSgAwIBAgIQONEfXTGwJRoNfdBmxfwmhjAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTIwMDcxNDEyMDYwMFoXDTMwMDcxMjEyMDYwMFowajELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xEDAOBgNVBAsTB29yZGVyZXIxHDAaBgNVBAMTE29yZGVyZXIuZXhhbXBsZS5j
b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATLO5RBDYiauJ+TEbYNSgIT65BF
oZBKX2C0t8NzazE6v0mAtYv3ZnbWi77PVWEcbfObv547SEtHmy9v8BzXyeaXo00w
SzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCDjufH5
UPc1qkGqOqxxFLULiU5C6uE0r6JcEmxbYPqzyjAKBggqhkjOPQQDAgNHADBEAiBo
x9A2j6B5AlRwUqgsG1+FB9nC63MJl6EJJbKpuWHLHgIgegLQL8BarkSS27/Df/+X
w1ej0jjFw/2c9VjXhug+yK0=
-----END CERTIFICATE-----