diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block index ca9ac52f..db8f3e71 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json index d24bf9c4..33a98d0d 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json @@ -1057,13 +1057,13 @@ }, "signatures": [ { - "signature": "MEUCIQDXOdgXyHgXM6sqibAuGi1CNMTD+o4Zy/RiZnkb6qv9SAIgHIZ/D7CvT8emrEEvw6DT0qPqkxcFnuD7c3ou0JsFdz8=", + "signature": "MEQCIEhM2lXwMWkiHvgLTV4fzucmRFM3ndPf3LQm5+PKYq17AiAYbsnVxUn6qhQ15OuK2rlE48CsLa7szTD3Cncif6HMyA==", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "McNiQKZEFcOdr88NCDrvDZ94n3026Dpu" + "nonce": "BwKJAVK8lpbdGQ7mRSIiJKRYDuV6dBdI" } } ] @@ -1073,7 +1073,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:25Z", + "timestamp": "2021-03-03T21:48:10Z", "tls_cert_hash": null, "tx_id": "", "type": 2, @@ -1084,11 +1084,11 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "2dSe0bDcXj5kQjDVMQTR1c5vNktRQSTe" + "nonce": "wqaYZPHSLWgfOtWlND+uEqpSvDe/k2+x" } } }, - "signature": "MEUCIQDBpNjy5Xz+sGpkpLuFcE3JnvF5qscUG54wRfK/fRoGiwIgS23cSRfXBF+bM5d7xwCY/TEMJ7MCX3mX59sSBEammA8=" + "signature": "MEQCICr5YMzytULintH5LpvFkZntf9cYRv9ON+SXQ1Yrhs9NAiAPgI0zpgZ62moAdFeaBXsoKebFVT7IS3Vwb7IdJdaw1A==" } }, "header": { @@ -1096,7 +1096,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:25Z", + "timestamp": "2021-03-03T21:48:10Z", "tls_cert_hash": null, "tx_id": "", "type": 1, @@ -1107,16 +1107,16 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "OrdererMSP" }, - "nonce": "LW+Nh1InbFwwXduACfJDSD0+bGCcD9B8" + "nonce": "7bLWvAeppKBi+2lZ+X+wNae/Tjb3Zcmk" } } }, - "signature": "MEQCIHNf4DL+Vc2MBdvyH7pfSb0++Khj9InMNGJPP/F5EW5aAiBH7L0VyAK/gF64G13kcyn5GCX41pZFQ6ktYxZiTU0Eow==" + "signature": "MEQCIFw2ChNvqrHXXHHw6v2u6rsq8weNm3SdYYXEJWgoAOnAAiA9y+buRYS3MwiZ/+bHuzFNt3PqWU9S1Zsg4+OZGScwxA==" } ] }, "header": { - "data_hash": "fJolYfXMFU8xVFLGpTmIbpOo2P5Ab1lSycSu4UaRy5Q=", + "data_hash": "yt7EagEgAWtfbz3qWFcG/N10sG8+LVwhuKm5u30PYP0=", "number": "0", "previous_hash": null }, diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json-flat.json index 01ba7c19..bf83e004 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_0.block.json-flat.json @@ -373,35 +373,35 @@ .data.data[0].payload.data.last_update.payload.data.config_update.write_set.values.Consortium.value.name=SampleConsortium .data.data[0].payload.data.last_update.payload.data.config_update.write_set.values.Consortium.version=0 .data.data[0].payload.data.last_update.payload.data.config_update.write_set.version=0 -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEUCIQDXOdgXyHgXM6sqibAuGi1CNMTD+o4Zy/RiZnkb6qv9SAIgHIZ/D7CvT8emrEEvw6DT0qPqkxcFnuD7c3ou0JsFdz8= +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEQCIEhM2lXwMWkiHvgLTV4fzucmRFM3ndPf3LQm5+PKYq17AiAYbsnVxUn6qhQ15OuK2rlE48CsLa7szTD3Cncif6HMyA== .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=McNiQKZEFcOdr88NCDrvDZ94n3026Dpu +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=BwKJAVK8lpbdGQ7mRSIiJKRYDuV6dBdI .data.data[0].payload.data.last_update.payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.data.last_update.payload.header.channel_header.epoch=0 .data.data[0].payload.data.last_update.payload.header.channel_header.extension=None -.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2020-12-07T20:41:25Z +.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2021-03-03T21:48:10Z .data.data[0].payload.data.last_update.payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.data.last_update.payload.header.channel_header.tx_id= .data.data[0].payload.data.last_update.payload.header.channel_header.type=2 .data.data[0].payload.data.last_update.payload.header.channel_header.version=0 .data.data[0].payload.data.last_update.payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.header.signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=2dSe0bDcXj5kQjDVMQTR1c5vNktRQSTe -.data.data[0].payload.data.last_update.signature=MEUCIQDBpNjy5Xz+sGpkpLuFcE3JnvF5qscUG54wRfK/fRoGiwIgS23cSRfXBF+bM5d7xwCY/TEMJ7MCX3mX59sSBEammA8= +.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=wqaYZPHSLWgfOtWlND+uEqpSvDe/k2+x +.data.data[0].payload.data.last_update.signature=MEQCICr5YMzytULintH5LpvFkZntf9cYRv9ON+SXQ1Yrhs9NAiAPgI0zpgZ62moAdFeaBXsoKebFVT7IS3Vwb7IdJdaw1A== .data.data[0].payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.header.channel_header.epoch=0 .data.data[0].payload.header.channel_header.extension=None -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:41:25Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:48:10Z .data.data[0].payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.header.channel_header.tx_id= .data.data[0].payload.header.channel_header.type=1 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICHzCCAcagAwIBAgIRAL4YNn5rsM0bOw0v0SHKpIEwCgYIKoZIzj0EAwIwaTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt\ncGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBaMGsxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp\nc2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl\nLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNl8pFl0CUzuVi9/9+dudtsg\n7QBJXLiI1+5aViSe1WMgbJFbFLU6CWg1wj2UgJKpqGjnH+NUlyfcrcai0oBxuGCj\nTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDC2\nkvrXbmyUVnAB41QAmmMSh3SFaWoBLRcD49bQBdwNMAoGCCqGSM49BAMCA0cAMEQC\nIEcXjHMLW9H5KPDRm8NZqjNzQM2lA3/xMo9HYGLUt1DNAiAbVf1xeXjzzKUqE7iH\nprmB5CA9JjV5aQgcHRTusg3Hiw==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=OrdererMSP -.data.data[0].payload.header.signature_header.nonce=LW+Nh1InbFwwXduACfJDSD0+bGCcD9B8 -.data.data[0].signature=MEQCIHNf4DL+Vc2MBdvyH7pfSb0++Khj9InMNGJPP/F5EW5aAiBH7L0VyAK/gF64G13kcyn5GCX41pZFQ6ktYxZiTU0Eow== -.header.data_hash=fJolYfXMFU8xVFLGpTmIbpOo2P5Ab1lSycSu4UaRy5Q= +.data.data[0].payload.header.signature_header.nonce=7bLWvAeppKBi+2lZ+X+wNae/Tjb3Zcmk +.data.data[0].signature=MEQCIFw2ChNvqrHXXHHw6v2u6rsq8weNm3SdYYXEJWgoAOnAAiA9y+buRYS3MwiZ/+bHuzFNt3PqWU9S1Zsg4+OZGScwxA== +.header.data_hash=yt7EagEgAWtfbz3qWFcG/N10sG8+LVwhuKm5u30PYP0= .header.number=0 .header.previous_hash=None .metadata.metadata[0]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block index 26502e77..caf34fe1 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json index c1a5a659..4acbecc6 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json @@ -976,13 +976,13 @@ }, "signatures": [ { - "signature": "MEUCIQDtPeQIKeC0bJUpGEA+Ps7N7Ry9DvJLn/fmjH/24mIMlwIgK8XdkRCVrouEsiqLwqN14rxMUFmRfBB2Wg5XnMm9Vcw=", + "signature": "MEUCIQDGS3upTl8qjTn6k7RMs58GLWHCS/SofChuHehMLxSl/gIgWGfjhMIvlE8Q2Nzvb4HRP5oYrkur0GpotJD1SH+203Q=", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "OKE2sjO4IRU5ODnnH4VaivKtQej+oF5a" + "nonce": "of2FkBYMo9ryW2fMOPJwWv14MFRtr5n0" } } ] @@ -992,7 +992,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:30Z", + "timestamp": "2021-03-03T21:48:15Z", "tls_cert_hash": null, "tx_id": "", "type": 2, @@ -1003,11 +1003,11 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "eo5eEyTrzwY1MjynqnS/cUz18jf/K4XB" + "nonce": "KBrycpanPCEAGP6rgh5vdCEJqYkysJ1/" } } }, - "signature": "MEUCIQC+IgC4/4cFMOT3xKYatbdnyXXoky2awFES/V+tA9TwbgIgA9XecP9xEuMOnn6n2TNs5n3WPVpr+kOjs2y9WdAn0XI=" + "signature": "MEUCIQDElGW+NlIQ9NYaN0yVq/ZJTThTcDUbudfYoFWonu0ETwIgKFOHS7ay2JeY19P1qAMf+c14+ju8DYbcvqvTImvdbUY=" } }, "header": { @@ -1015,7 +1015,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:31Z", + "timestamp": "2021-03-03T21:48:15Z", "tls_cert_hash": null, "tx_id": "", "type": 1, @@ -1026,22 +1026,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "OrdererMSP" }, - "nonce": "0cDn4YeynErSi/x+7XRO9SiIiTFS2iJ6" + "nonce": "Li/SRZXsfggUvzTNneOsXQfx//LRVMQc" } } }, - "signature": "MEUCIQCpnJrAJ+bUGhN1OxamYB5M11uIsny2260ApyiXMXeQVQIgHdkp4Zy74Vbeq4uEnSc9S/kMiWEq/twVZ4Ig6M2Ce4E=" + "signature": "MEQCIBwHAmnv/N7D9PpEcewqbGpLW5enwuX03AOpVTKKbkn8AiA7aH0uSleVXuE/REF+nrwWET03O33LavtT/+903C5P5w==" } ] }, "header": { - "data_hash": "OjEsrHbjt5SKgVFmngZW5lL5gaJCJho2/9sCkNGLwwg=", + "data_hash": "bw6S+vbqtAe8Mvx1QzV5X/M8Ghsmcv96NqCxVcIixRY=", "number": "1", - "previous_hash": "GeRzisfsSwqgisOlKGGDq4In1eZ31E50mXk4LL2iVm8=" + "previous_hash": "DYdYFZRC3fHKVrJy8HlqeWqXhA8aEslx/PWIb0M8G3s=" }, "metadata": { "metadata": [ - "ChEKAggBEgsKCQoDAQIDEAQYBRKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYgDzc9OObeAGY1rO1Ohvg7r5HYuWJNcc+EkcwRQIhAJrwHwSM36/cUA2p0FDWY8NWYdVoIX9lJhV8AMmS2xjAAiAXvtVzS854UljuilDG6Hil4uHwkVQFIiSJbn+tq6UYlg==", + "ChEKAggBEgsKCQoDAQIDEAQYBRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY2jY/11MxUznfIVEV1y24CkJhy4jjFPv0EkYwRAIgU12csakQb4n0VXGADMnOhPPOT+Phg959UWojCG9JT04CIAeV8FjJT/t5nhUzbi0zUZRTOHbD2EZGfhTd4FWynjB8", "CgIIAQ==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json-flat.json index 4dc08a98..b437d33e 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_1.block.json-flat.json @@ -353,38 +353,38 @@ .data.data[0].payload.data.last_update.payload.data.config_update.write_set.groups.Application.version=1 .data.data[0].payload.data.last_update.payload.data.config_update.write_set.mod_policy= .data.data[0].payload.data.last_update.payload.data.config_update.write_set.version=0 -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEUCIQDtPeQIKeC0bJUpGEA+Ps7N7Ry9DvJLn/fmjH/24mIMlwIgK8XdkRCVrouEsiqLwqN14rxMUFmRfBB2Wg5XnMm9Vcw= +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEUCIQDGS3upTl8qjTn6k7RMs58GLWHCS/SofChuHehMLxSl/gIgWGfjhMIvlE8Q2Nzvb4HRP5oYrkur0GpotJD1SH+203Q= .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=OKE2sjO4IRU5ODnnH4VaivKtQej+oF5a +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=of2FkBYMo9ryW2fMOPJwWv14MFRtr5n0 .data.data[0].payload.data.last_update.payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.data.last_update.payload.header.channel_header.epoch=0 .data.data[0].payload.data.last_update.payload.header.channel_header.extension=None -.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2020-12-07T20:41:30Z +.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2021-03-03T21:48:15Z .data.data[0].payload.data.last_update.payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.data.last_update.payload.header.channel_header.tx_id= .data.data[0].payload.data.last_update.payload.header.channel_header.type=2 .data.data[0].payload.data.last_update.payload.header.channel_header.version=0 .data.data[0].payload.data.last_update.payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.header.signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=eo5eEyTrzwY1MjynqnS/cUz18jf/K4XB -.data.data[0].payload.data.last_update.signature=MEUCIQC+IgC4/4cFMOT3xKYatbdnyXXoky2awFES/V+tA9TwbgIgA9XecP9xEuMOnn6n2TNs5n3WPVpr+kOjs2y9WdAn0XI= +.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=KBrycpanPCEAGP6rgh5vdCEJqYkysJ1/ +.data.data[0].payload.data.last_update.signature=MEUCIQDElGW+NlIQ9NYaN0yVq/ZJTThTcDUbudfYoFWonu0ETwIgKFOHS7ay2JeY19P1qAMf+c14+ju8DYbcvqvTImvdbUY= .data.data[0].payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.header.channel_header.epoch=0 .data.data[0].payload.header.channel_header.extension=None -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:41:31Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:48:15Z .data.data[0].payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.header.channel_header.tx_id= .data.data[0].payload.header.channel_header.type=1 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICHzCCAcagAwIBAgIRAL4YNn5rsM0bOw0v0SHKpIEwCgYIKoZIzj0EAwIwaTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt\ncGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBaMGsxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp\nc2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl\nLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNl8pFl0CUzuVi9/9+dudtsg\n7QBJXLiI1+5aViSe1WMgbJFbFLU6CWg1wj2UgJKpqGjnH+NUlyfcrcai0oBxuGCj\nTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDC2\nkvrXbmyUVnAB41QAmmMSh3SFaWoBLRcD49bQBdwNMAoGCCqGSM49BAMCA0cAMEQC\nIEcXjHMLW9H5KPDRm8NZqjNzQM2lA3/xMo9HYGLUt1DNAiAbVf1xeXjzzKUqE7iH\nprmB5CA9JjV5aQgcHRTusg3Hiw==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=OrdererMSP -.data.data[0].payload.header.signature_header.nonce=0cDn4YeynErSi/x+7XRO9SiIiTFS2iJ6 -.data.data[0].signature=MEUCIQCpnJrAJ+bUGhN1OxamYB5M11uIsny2260ApyiXMXeQVQIgHdkp4Zy74Vbeq4uEnSc9S/kMiWEq/twVZ4Ig6M2Ce4E= -.header.data_hash=OjEsrHbjt5SKgVFmngZW5lL5gaJCJho2/9sCkNGLwwg= +.data.data[0].payload.header.signature_header.nonce=Li/SRZXsfggUvzTNneOsXQfx//LRVMQc +.data.data[0].signature=MEQCIBwHAmnv/N7D9PpEcewqbGpLW5enwuX03AOpVTKKbkn8AiA7aH0uSleVXuE/REF+nrwWET03O33LavtT/+903C5P5w== +.header.data_hash=bw6S+vbqtAe8Mvx1QzV5X/M8Ghsmcv96NqCxVcIixRY= .header.number=1 -.header.previous_hash=GeRzisfsSwqgisOlKGGDq4In1eZ31E50mXk4LL2iVm8= -.metadata.metadata[0]=ChEKAggBEgsKCQoDAQIDEAQYBRKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYgDzc9OObeAGY1rO1Ohvg7r5HYuWJNcc+EkcwRQIhAJrwHwSM36/cUA2p0FDWY8NWYdVoIX9lJhV8AMmS2xjAAiAXvtVzS854UljuilDG6Hil4uHwkVQFIiSJbn+tq6UYlg== +.header.previous_hash=DYdYFZRC3fHKVrJy8HlqeWqXhA8aEslx/PWIb0M8G3s= +.metadata.metadata[0]=ChEKAggBEgsKCQoDAQIDEAQYBRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY2jY/11MxUznfIVEV1y24CkJhy4jjFPv0EkYwRAIgU12csakQb4n0VXGADMnOhPPOT+Phg959UWojCG9JT04CIAeV8FjJT/t5nhUzbi0zUZRTOHbD2EZGfhTd4FWynjB8 .metadata.metadata[1]=CgIIAQ== .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block index 45ea7973..18c59fa6 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json index 8c60827e..d467b1a2 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json @@ -988,13 +988,13 @@ }, "signatures": [ { - "signature": "MEQCIGiM6If3iBcDt8R//yQLpXNDruwVVroBAwFcQ8thP4c6AiBstp8K1JY1+8+oUWbYvuiyO4zApI+bxtftzCOy1AooJQ==", + "signature": "MEQCICp5RKWIxE3E+8XTtukaKdqI29qAKuXhzztp6vuNd8BIAiBqJP0vlELUJuBRcFtilDxrmFQeSsGZvMbpti78WTIYBw==", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "gIrJ4IXZlMhLJ2pwOiYS91sPD80RI8dO" + "nonce": "1mvDkwh07Yb9m4tRljuxZLEeeHzMieiv" } } ] @@ -1004,7 +1004,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:33Z", + "timestamp": "2021-03-03T21:48:18Z", "tls_cert_hash": null, "tx_id": "", "type": 2, @@ -1015,11 +1015,11 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "zPmMxKorFz60DsrghHXFls1XJbpVnnep" + "nonce": "oS9BtTntiO7cjm0fiTP/3X5goIWjEb2S" } } }, - "signature": "MEUCIQClJuLkEFLPCtGaKdDv9Pogn5YzHGSTWI/rQSaVk53sbgIgGn9b9wTjpgm/CWN1lFjDJ4EK71ROm+RE98+3np3spX4=" + "signature": "MEUCIQDjXduo4ZKDDCVFd5kd+KCMO6AQAYW32Aym+ZEkay7QJAIgfzalet5iOJFrxAEoftX8FDRi8v3Dt6bY2UPkTlMSGD0=" } }, "header": { @@ -1027,7 +1027,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:33Z", + "timestamp": "2021-03-03T21:48:18Z", "tls_cert_hash": null, "tx_id": "", "type": 1, @@ -1038,22 +1038,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "OrdererMSP" }, - "nonce": "uhCPxpKQl5e7g48NJIhPfEcs/UhBEKuo" + "nonce": "rczF33pA69qB+TX1FHWeXixAGLLiNnxE" } } }, - "signature": "MEUCIQCiHJ2VYQ8rA25HddC4tVEfJMcl8+fJ+YUKhEytW3UIMwIgMBYWjL/Q6+5ehJ5PkDqsd8krdNTM3no6BZar2T7/6qw=" + "signature": "MEQCIHgg8RLCbW8LYK4D7qcb7uF6e7oiijS5ByC60Ta1+Y0kAiArpUJMFyNCHJmc7SQNl2lQvW+ANxgi5xvY+jA8T0jXMQ==" } ] }, "header": { - "data_hash": "JvaROg09K9obl9iEYmQqNS9SfNkEcfyip6Dsy+Mf2TM=", + "data_hash": "nOgHIPXPyGjZvQW+ZiWpsdU+/wQ9IHjGwALE5ZHKsHY=", "number": "2", - "previous_hash": "mss/OU+w3uKPClhTm8O+49Rihwi2NktQrNlD4HViqs0=" + "previous_hash": "/aq8yyP/4rObCNe7zhAvlJjBBHZOmlBeVFxqaJ+tGGU=" }, "metadata": { "metadata": [ - "ChEKAggCEgsKCQoDAQIDEAQYBhKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYzRh9HqyPF3mC58XisFirgQbSbxVFIrYkEkYwRAIgEjOEXQM+mQ86EP/cQnv5sIohalH6NBrWSyqVE+Ki7jgCIHB9Z4rCG3vLrBvI1KOfnrCJ/MwBFGe/5fcgDS2K0NzG", + "ChEKAggCEgsKCQoDAQIDEAQYBhKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYIhEaSXSSMEJ+9yZdZju9EYyBQxA/hDRYEkYwRAIgJdAslk5kCDU42bq56+GzZvIZ7OcKi29rAhsDbSoRsE0CIDZCF4Yn8CsWVaYNwgbMmM4SJXZ2RluON6Xwp/uVTCOS", "CgIIAg==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json-flat.json index 674bcc9b..d06a9c3e 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_2.block.json-flat.json @@ -357,38 +357,38 @@ .data.data[0].payload.data.last_update.payload.data.config_update.write_set.groups.Application.version=1 .data.data[0].payload.data.last_update.payload.data.config_update.write_set.mod_policy= .data.data[0].payload.data.last_update.payload.data.config_update.write_set.version=0 -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEQCIGiM6If3iBcDt8R//yQLpXNDruwVVroBAwFcQ8thP4c6AiBstp8K1JY1+8+oUWbYvuiyO4zApI+bxtftzCOy1AooJQ== +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEQCICp5RKWIxE3E+8XTtukaKdqI29qAKuXhzztp6vuNd8BIAiBqJP0vlELUJuBRcFtilDxrmFQeSsGZvMbpti78WTIYBw== .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQI87pZOv3cou7q7p8aEIQ7zAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCqmCUO55nv9\nx85HsSYVPSiDDyxkHgkm4k9EEmdUIhgv8WxEEgWwJMKpwNwPMj6MMRSMvPVUCYsW\n+g3BqO3vmaKjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIGkTmTE9sCkQvoCjXflVcpiO8gWx/mWjRsDwV6lKJR63MAoGCCqGSM49\nBAMCA0cAMEQCIFV52hwugta7PnWt8fJFWcQJyo8gKSW2mKmPZHdcIv2GAiAo6A0x\nCsZ8cCdXWvrB3O03e8iDqwucjMaTVhkQYzdFlQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.mspid=Org2MSP -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=gIrJ4IXZlMhLJ2pwOiYS91sPD80RI8dO +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=1mvDkwh07Yb9m4tRljuxZLEeeHzMieiv .data.data[0].payload.data.last_update.payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.data.last_update.payload.header.channel_header.epoch=0 .data.data[0].payload.data.last_update.payload.header.channel_header.extension=None -.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2020-12-07T20:41:33Z +.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2021-03-03T21:48:18Z .data.data[0].payload.data.last_update.payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.data.last_update.payload.header.channel_header.tx_id= .data.data[0].payload.data.last_update.payload.header.channel_header.type=2 .data.data[0].payload.data.last_update.payload.header.channel_header.version=0 .data.data[0].payload.data.last_update.payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQI87pZOv3cou7q7p8aEIQ7zAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCqmCUO55nv9\nx85HsSYVPSiDDyxkHgkm4k9EEmdUIhgv8WxEEgWwJMKpwNwPMj6MMRSMvPVUCYsW\n+g3BqO3vmaKjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIGkTmTE9sCkQvoCjXflVcpiO8gWx/mWjRsDwV6lKJR63MAoGCCqGSM49\nBAMCA0cAMEQCIFV52hwugta7PnWt8fJFWcQJyo8gKSW2mKmPZHdcIv2GAiAo6A0x\nCsZ8cCdXWvrB3O03e8iDqwucjMaTVhkQYzdFlQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.header.signature_header.creator.mspid=Org2MSP -.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=zPmMxKorFz60DsrghHXFls1XJbpVnnep -.data.data[0].payload.data.last_update.signature=MEUCIQClJuLkEFLPCtGaKdDv9Pogn5YzHGSTWI/rQSaVk53sbgIgGn9b9wTjpgm/CWN1lFjDJ4EK71ROm+RE98+3np3spX4= +.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=oS9BtTntiO7cjm0fiTP/3X5goIWjEb2S +.data.data[0].payload.data.last_update.signature=MEUCIQDjXduo4ZKDDCVFd5kd+KCMO6AQAYW32Aym+ZEkay7QJAIgfzalet5iOJFrxAEoftX8FDRi8v3Dt6bY2UPkTlMSGD0= .data.data[0].payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.header.channel_header.epoch=0 .data.data[0].payload.header.channel_header.extension=None -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:41:33Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:48:18Z .data.data[0].payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.header.channel_header.tx_id= .data.data[0].payload.header.channel_header.type=1 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICHzCCAcagAwIBAgIRAL4YNn5rsM0bOw0v0SHKpIEwCgYIKoZIzj0EAwIwaTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt\ncGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBaMGsxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp\nc2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl\nLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNl8pFl0CUzuVi9/9+dudtsg\n7QBJXLiI1+5aViSe1WMgbJFbFLU6CWg1wj2UgJKpqGjnH+NUlyfcrcai0oBxuGCj\nTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDC2\nkvrXbmyUVnAB41QAmmMSh3SFaWoBLRcD49bQBdwNMAoGCCqGSM49BAMCA0cAMEQC\nIEcXjHMLW9H5KPDRm8NZqjNzQM2lA3/xMo9HYGLUt1DNAiAbVf1xeXjzzKUqE7iH\nprmB5CA9JjV5aQgcHRTusg3Hiw==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=OrdererMSP -.data.data[0].payload.header.signature_header.nonce=uhCPxpKQl5e7g48NJIhPfEcs/UhBEKuo -.data.data[0].signature=MEUCIQCiHJ2VYQ8rA25HddC4tVEfJMcl8+fJ+YUKhEytW3UIMwIgMBYWjL/Q6+5ehJ5PkDqsd8krdNTM3no6BZar2T7/6qw= -.header.data_hash=JvaROg09K9obl9iEYmQqNS9SfNkEcfyip6Dsy+Mf2TM= +.data.data[0].payload.header.signature_header.nonce=rczF33pA69qB+TX1FHWeXixAGLLiNnxE +.data.data[0].signature=MEQCIHgg8RLCbW8LYK4D7qcb7uF6e7oiijS5ByC60Ta1+Y0kAiArpUJMFyNCHJmc7SQNl2lQvW+ANxgi5xvY+jA8T0jXMQ== +.header.data_hash=nOgHIPXPyGjZvQW+ZiWpsdU+/wQ9IHjGwALE5ZHKsHY= .header.number=2 -.header.previous_hash=mss/OU+w3uKPClhTm8O+49Rihwi2NktQrNlD4HViqs0= -.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYBhKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYzRh9HqyPF3mC58XisFirgQbSbxVFIrYkEkYwRAIgEjOEXQM+mQ86EP/cQnv5sIohalH6NBrWSyqVE+Ki7jgCIHB9Z4rCG3vLrBvI1KOfnrCJ/MwBFGe/5fcgDS2K0NzG +.header.previous_hash=/aq8yyP/4rObCNe7zhAvlJjBBHZOmlBeVFxqaJ+tGGU= +.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYBhKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYIhEaSXSSMEJ+9yZdZju9EYyBQxA/hDRYEkYwRAIgJdAslk5kCDU42bq56+GzZvIZ7OcKi29rAhsDbSoRsE0CIDZCF4Yn8CsWVaYNwgbMmM4SJXZ2RluON6Xwp/uVTCOS .metadata.metadata[1]=CgIIAg== .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block index 99570c46..33341f2c 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json index 7cf9e97d..9a54b954 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json @@ -11,14 +11,14 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "lLVXcNzjfb2cgzpRPO0UZMuKouHNhtBR" + "nonce": "fI0ZIJK0mIl0RU6ljmITWqcIzxs860kq" }, "payload": { "action": { "endorsements": [ { "endorser": "CgdPcmcxTVNQEqoGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRTXRuZ1RFUlB4ckdYN2RlM21wR1I4akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN4CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2R3gyQUZCQjZiZloKQThOUm1TRmJIdjBFK1VwTGtMRFRvQmFsT05pelhTR2wwOWV2b0laaGxwWnNLMkx3Q2k2NGxiVlBsUW5IVzdtZwpTZUZZTTRkSXlhTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FncXAvZnFEK3dLOHlYRnZta0FjaWN2K1hQWlRwRWw5aEhPQnNMZnhhdW5sQXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUxucVlKS1RlR1d3aVE0S2VWYysrSFIyUkpUYTJVOEhOMGJ5TDJ2WXQ0ZWFBaUJLK0FjYwpvZFNzOGxHR3JzcWtWUmFIWnZaYUZRSm92UEpsUWc3SXdzQktwdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", - "signature": "MEUCIQCgZ+cSNN2RJDO7KiQrx9XQkpoIPddv4x2jG0unK25kfAIgBawP7AL82CHIjbnDPszcJOH5OX/kY/9f1e28YHowfLo=" + "signature": "MEUCIQCiAb/7hHkSUT/DHnaptgkr0I3W1afpFHzXpEK0k61i2wIgX3NbwvRDgW4QR5AcJl3ukhf0teC25DFda9Cyi4WzbEY=" } ], "proposal_response_payload": { @@ -80,7 +80,7 @@ ] } }, - "proposal_hash": "8v8TDG3ZbzW2XKFRrlYk8L7ymrGee7ZlrVxU80tqO6Y=" + "proposal_hash": "vuzrS2CvtZp7iHxwHwp/1ESKA8Kz5jpoxzTPqCXV3AU=" } }, "chaincode_proposal_payload": { @@ -120,9 +120,9 @@ "version": "" } }, - "timestamp": "2020-12-07T20:44:07.463818200Z", + "timestamp": "2021-03-03T21:50:53.799886400Z", "tls_cert_hash": null, - "tx_id": "b0d33c661ddcf72e443796405b05e445c715194cf31d16b2ebcd3fc02d7200b0", + "tx_id": "91d376e9bdd674170f7a08da73f26281c833bed9eebbbe61c540c5fd83b34385", "type": 3, "version": 0 }, @@ -131,22 +131,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "lLVXcNzjfb2cgzpRPO0UZMuKouHNhtBR" + "nonce": "fI0ZIJK0mIl0RU6ljmITWqcIzxs860kq" } } }, - "signature": "MEQCIHXyFe5DwGwe3B+yjKJNx/GV+sWwHDXZvHDY7lLCl39rAiBRCiI187q6Qag1VHvjY9EVkqPBVKN0N/fZEsQgK0nD6Q==" + "signature": "MEQCIAzwK8idKuvosGYrjMA1N7PvStD3ySe8f+mEBJ5xWfVQAiBYWJbcRgiFPGbKxPAK59qDfY768QDwxKSnY5TVoGBQ5A==" } ] }, "header": { - "data_hash": "p+8mS0jZb0B5Kyx9K9vhwor12tUWyehEwwFjtYsEhps=", + "data_hash": "uTrPX8qFhZ+N0XS6srEhWPx1G8z/GKeRculuNevNU6g=", "number": "3", - "previous_hash": "MBtGhgUKyUliJxxyzhWCsTLYTNfYZXOdwqu2XqJvFeM=" + "previous_hash": "k2wXggr286xk6G0zsEH/MxCr12kMg3LiUFNXzJnYm1Y=" }, "metadata": { "metadata": [ - "ChEKAggCEgsKCQoDAQIDEAQYBxKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYCOUcqSMXOOmSz3RNm1ueBywrrN6z6Qs4EkcwRQIhAKeaoYlzSJwk/wJfRMmI5ntmGb0pbaXxjlWhwSzNKUmEAiAjWcrL37n1IW8HWObA2H28CzB6kSiZIVHNB6DhOtAxVA==", + "ChEKAggCEgsKCQoDAQIDEAQYBxKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYT4I8s8DM63XsyFiAb50gni3xQjsmupYeEkcwRQIhAN4xXMZgD0qzF2G9n8KHmdkQygI2RormLjqb6WGBFyE1AiBUE+7/xQ4Bcof4TwCipKE7qJaC9JwstTaITU64z1ALDQ==", "CgIIAg==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json-flat.json index 51f58ed8..4aec663a 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_3.block.json-flat.json @@ -1,8 +1,8 @@ .data.data[0].payload.data.actions[0].header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.actions[0].header.creator.mspid=Org1MSP -.data.data[0].payload.data.actions[0].header.nonce=lLVXcNzjfb2cgzpRPO0UZMuKouHNhtBR +.data.data[0].payload.data.actions[0].header.nonce=fI0ZIJK0mIl0RU6ljmITWqcIzxs860kq .data.data[0].payload.data.actions[0].payload.action.endorsements[0].endorser=CgdPcmcxTVNQEqoGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRTXRuZ1RFUlB4ckdYN2RlM21wR1I4akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN4CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2R3gyQUZCQjZiZloKQThOUm1TRmJIdjBFK1VwTGtMRFRvQmFsT05pelhTR2wwOWV2b0laaGxwWnNLMkx3Q2k2NGxiVlBsUW5IVzdtZwpTZUZZTTRkSXlhTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FncXAvZnFEK3dLOHlYRnZta0FjaWN2K1hQWlRwRWw5aEhPQnNMZnhhdW5sQXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUxucVlKS1RlR1d3aVE0S2VWYysrSFIyUkpUYTJVOEhOMGJ5TDJ2WXQ0ZWFBaUJLK0FjYwpvZFNzOGxHR3JzcWtWUmFIWnZaYUZRSm92UEpsUWc3SXdzQktwdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K -.data.data[0].payload.data.actions[0].payload.action.endorsements[0].signature=MEUCIQCgZ+cSNN2RJDO7KiQrx9XQkpoIPddv4x2jG0unK25kfAIgBawP7AL82CHIjbnDPszcJOH5OX/kY/9f1e28YHowfLo= +.data.data[0].payload.data.actions[0].payload.action.endorsements[0].signature=MEUCIQCiAb/7hHkSUT/DHnaptgkr0I3W1afpFHzXpEK0k61i2wIgX3NbwvRDgW4QR5AcJl3ukhf0teC25DFda9Cyi4WzbEY= .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.name=_lifecycle .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.path= .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.version=syscc @@ -22,7 +22,7 @@ .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].namespace=lscc .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].rwset.reads[0].key=exp02 .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].rwset.reads[0].version=None -.data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.proposal_hash=8v8TDG3ZbzW2XKFRrlYk8L7ymrGee7ZlrVxU80tqO6Y= +.data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.proposal_hash=vuzrS2CvtZp7iHxwHwp/1ESKA8Kz5jpoxzTPqCXV3AU= .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.name=_lifecycle .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.path= .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.version= @@ -36,19 +36,19 @@ .data.data[0].payload.header.channel_header.extension.chaincode_id.name=_lifecycle .data.data[0].payload.header.channel_header.extension.chaincode_id.path= .data.data[0].payload.header.channel_header.extension.chaincode_id.version= -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:44:07.463818200Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:50:53.799886400Z .data.data[0].payload.header.channel_header.tls_cert_hash=None -.data.data[0].payload.header.channel_header.tx_id=b0d33c661ddcf72e443796405b05e445c715194cf31d16b2ebcd3fc02d7200b0 +.data.data[0].payload.header.channel_header.tx_id=91d376e9bdd674170f7a08da73f26281c833bed9eebbbe61c540c5fd83b34385 .data.data[0].payload.header.channel_header.type=3 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=Org1MSP -.data.data[0].payload.header.signature_header.nonce=lLVXcNzjfb2cgzpRPO0UZMuKouHNhtBR -.data.data[0].signature=MEQCIHXyFe5DwGwe3B+yjKJNx/GV+sWwHDXZvHDY7lLCl39rAiBRCiI187q6Qag1VHvjY9EVkqPBVKN0N/fZEsQgK0nD6Q== -.header.data_hash=p+8mS0jZb0B5Kyx9K9vhwor12tUWyehEwwFjtYsEhps= +.data.data[0].payload.header.signature_header.nonce=fI0ZIJK0mIl0RU6ljmITWqcIzxs860kq +.data.data[0].signature=MEQCIAzwK8idKuvosGYrjMA1N7PvStD3ySe8f+mEBJ5xWfVQAiBYWJbcRgiFPGbKxPAK59qDfY768QDwxKSnY5TVoGBQ5A== +.header.data_hash=uTrPX8qFhZ+N0XS6srEhWPx1G8z/GKeRculuNevNU6g= .header.number=3 -.header.previous_hash=MBtGhgUKyUliJxxyzhWCsTLYTNfYZXOdwqu2XqJvFeM= -.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYBxKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYCOUcqSMXOOmSz3RNm1ueBywrrN6z6Qs4EkcwRQIhAKeaoYlzSJwk/wJfRMmI5ntmGb0pbaXxjlWhwSzNKUmEAiAjWcrL37n1IW8HWObA2H28CzB6kSiZIVHNB6DhOtAxVA== +.header.previous_hash=k2wXggr286xk6G0zsEH/MxCr12kMg3LiUFNXzJnYm1Y= +.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYBxKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYT4I8s8DM63XsyFiAb50gni3xQjsmupYeEkcwRQIhAN4xXMZgD0qzF2G9n8KHmdkQygI2RormLjqb6WGBFyE1AiBUE+7/xQ4Bcof4TwCipKE7qJaC9JwstTaITU64z1ALDQ== .metadata.metadata[1]=CgIIAg== .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block index 32efffad..143f7686 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json index c43b73d2..d2cd52a9 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json @@ -11,14 +11,14 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "SE4cJPHe3P3jHAcY4WG7Pv/vQvuEUPTi" + "nonce": "DarsmlHnA6BDNKDMHNkxDcCw9/i/BmvP" }, "payload": { "action": { "endorsements": [ { "endorser": "CgdPcmcyTVNQEqYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNKekNDQWM2Z0F3SUJBZ0lRSm9WSTNkTkU2ZjBwVy9MUFUwRU05VEFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN5CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVzaUgxTEVSSlV1Q0sKNmZPdHRqS1lMRTNXVkRqUDFwWUFYWTRydnlMMlhpV3RXZzBpVWxsb2t6MThBUk90MVovait0bHNwVy83QTMrdQoxcnJDZk1JeWk2Tk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FnYVJPWk1UMndLUkMrZ0tOZCtWVnltSTd5QmJIK1phTkd3UEJYcVVvbEhyY3dDZ1lJS29aSXpqMEUKQXdJRFJ3QXdSQUlnVm1kZ1Q4dHkveWpCYitITzRiS1l4NWluMklHaFZkMlVudHBIWE4zdlp2MENJRW5sMW1FaApXemhsU2lPVDJwTTFXY053ajJ0Y3J3VGVzQlhMdkMvcmxVRkgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=", - "signature": "MEUCIQCV+wILfEqOFvyRbzS8sR5yiOo3TrTpNmySTcAWKiPVkwIgYsuUVrtl+f3qpU82/YfWPM16GYdqPfF/VmBYCPqlkHg=" + "signature": "MEQCICF0Pv1XMeOIFm/mjoV7v+ghWgKXEj5gp7izrfCyvrDeAiB4QD+UN97txNS0asDZSX92CipCaIfvku227nOXR6hG/w==" } ], "proposal_response_payload": { @@ -80,7 +80,7 @@ ] } }, - "proposal_hash": "IPiuwzkltpDGCQjmrKhUBpuuDSGjXBs/c+DDHU4YYPM=" + "proposal_hash": "JPz2DX0ouvPLA1euaSZ0hIYiojONnZp8MED79iPFXsI=" } }, "chaincode_proposal_payload": { @@ -120,9 +120,9 @@ "version": "" } }, - "timestamp": "2020-12-07T20:44:10.515658Z", + "timestamp": "2021-03-03T21:50:56.317325600Z", "tls_cert_hash": null, - "tx_id": "dca5144121f76b654af3a35db002ab8534a2c37b1dc05e69065737303b619361", + "tx_id": "ff3ad4b9f071b6bc820807fb9c8df46317e754cf428f8f4fc1f9738b9d196409", "type": 3, "version": 0 }, @@ -131,22 +131,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "SE4cJPHe3P3jHAcY4WG7Pv/vQvuEUPTi" + "nonce": "DarsmlHnA6BDNKDMHNkxDcCw9/i/BmvP" } } }, - "signature": "MEQCICaP+yBVTaLcKveZ/+Fz2AfY6mwoZvPQ71AEP/e6inVRAiBOgpaeIq8S01JHqtdO30sn+5tEoC5JX5ijbXIaB5G3Iw==" + "signature": "MEQCIDyUZXtHp+Iv6gdabzVCMfslbY2ROFEZynsX0CTer8bNAiAtD25RR9zF5/pAvTkbAf4lA8NBhp9s8eauPA1c09CtgQ==" } ] }, "header": { - "data_hash": "chgh5/HX0RxduYi5teTzo85n+khrnMFji6JRQRqUf4s=", + "data_hash": "1EQcBAw39LRukavPNpFVrGqPOAQ5V2N9sYVgE9C7EQM=", "number": "4", - "previous_hash": "T0QMMJUECBekT7lcuSwx7pHdhFzWEtiwLAIlXOsxVJg=" + "previous_hash": "d07OW6cwswN3xXwq0Z8uFEft39JVOvLPUWXKVazmlmY=" }, "metadata": { "metadata": [ - "ChEKAggCEgsKCQoDAQIDEAQYCBKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYyAU8+0OePVB9T4ez8P7EmK0nNt4nQURzEkcwRQIhAPSYUK/nxUmtGmDhMJehQ5wJ17+xuQDFMz0jXTVe2B0XAiA3W73VwTJR/SxBA8MTyc4dF4DcZgG2jklQN+W9SUKW5A==", + "ChEKAggCEgsKCQoDAQIDEAQYCBKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYzJtsZlBFyDag3Sjbyf4Hteto2OWO1O5YEkYwRAIgcLWNeZfb9gQGKD4hp0dV3A2RtvDMo7Ra3CaMOuYwYn8CIHB8tB9yJwAFh8ut4s0NsqLY2X5Yp9Om2xMbej5ES+Ea", "CgIIAg==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json-flat.json index d92c4801..3d502e47 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_4.block.json-flat.json @@ -1,8 +1,8 @@ .data.data[0].payload.data.actions[0].header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQI87pZOv3cou7q7p8aEIQ7zAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCqmCUO55nv9\nx85HsSYVPSiDDyxkHgkm4k9EEmdUIhgv8WxEEgWwJMKpwNwPMj6MMRSMvPVUCYsW\n+g3BqO3vmaKjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIGkTmTE9sCkQvoCjXflVcpiO8gWx/mWjRsDwV6lKJR63MAoGCCqGSM49\nBAMCA0cAMEQCIFV52hwugta7PnWt8fJFWcQJyo8gKSW2mKmPZHdcIv2GAiAo6A0x\nCsZ8cCdXWvrB3O03e8iDqwucjMaTVhkQYzdFlQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.actions[0].header.creator.mspid=Org2MSP -.data.data[0].payload.data.actions[0].header.nonce=SE4cJPHe3P3jHAcY4WG7Pv/vQvuEUPTi +.data.data[0].payload.data.actions[0].header.nonce=DarsmlHnA6BDNKDMHNkxDcCw9/i/BmvP .data.data[0].payload.data.actions[0].payload.action.endorsements[0].endorser=CgdPcmcyTVNQEqYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNKekNDQWM2Z0F3SUJBZ0lRSm9WSTNkTkU2ZjBwVy9MUFUwRU05VEFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN5CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVzaUgxTEVSSlV1Q0sKNmZPdHRqS1lMRTNXVkRqUDFwWUFYWTRydnlMMlhpV3RXZzBpVWxsb2t6MThBUk90MVovait0bHNwVy83QTMrdQoxcnJDZk1JeWk2Tk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FnYVJPWk1UMndLUkMrZ0tOZCtWVnltSTd5QmJIK1phTkd3UEJYcVVvbEhyY3dDZ1lJS29aSXpqMEUKQXdJRFJ3QXdSQUlnVm1kZ1Q4dHkveWpCYitITzRiS1l4NWluMklHaFZkMlVudHBIWE4zdlp2MENJRW5sMW1FaApXemhsU2lPVDJwTTFXY053ajJ0Y3J3VGVzQlhMdkMvcmxVRkgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= -.data.data[0].payload.data.actions[0].payload.action.endorsements[0].signature=MEUCIQCV+wILfEqOFvyRbzS8sR5yiOo3TrTpNmySTcAWKiPVkwIgYsuUVrtl+f3qpU82/YfWPM16GYdqPfF/VmBYCPqlkHg= +.data.data[0].payload.data.actions[0].payload.action.endorsements[0].signature=MEQCICF0Pv1XMeOIFm/mjoV7v+ghWgKXEj5gp7izrfCyvrDeAiB4QD+UN97txNS0asDZSX92CipCaIfvku227nOXR6hG/w== .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.name=_lifecycle .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.path= .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.version=syscc @@ -22,7 +22,7 @@ .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].namespace=lscc .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].rwset.reads[0].key=exp02 .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].rwset.reads[0].version=None -.data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.proposal_hash=IPiuwzkltpDGCQjmrKhUBpuuDSGjXBs/c+DDHU4YYPM= +.data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.proposal_hash=JPz2DX0ouvPLA1euaSZ0hIYiojONnZp8MED79iPFXsI= .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.name=_lifecycle .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.path= .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.version= @@ -36,19 +36,19 @@ .data.data[0].payload.header.channel_header.extension.chaincode_id.name=_lifecycle .data.data[0].payload.header.channel_header.extension.chaincode_id.path= .data.data[0].payload.header.channel_header.extension.chaincode_id.version= -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:44:10.515658Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:50:56.317325600Z .data.data[0].payload.header.channel_header.tls_cert_hash=None -.data.data[0].payload.header.channel_header.tx_id=dca5144121f76b654af3a35db002ab8534a2c37b1dc05e69065737303b619361 +.data.data[0].payload.header.channel_header.tx_id=ff3ad4b9f071b6bc820807fb9c8df46317e754cf428f8f4fc1f9738b9d196409 .data.data[0].payload.header.channel_header.type=3 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQI87pZOv3cou7q7p8aEIQ7zAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCqmCUO55nv9\nx85HsSYVPSiDDyxkHgkm4k9EEmdUIhgv8WxEEgWwJMKpwNwPMj6MMRSMvPVUCYsW\n+g3BqO3vmaKjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIGkTmTE9sCkQvoCjXflVcpiO8gWx/mWjRsDwV6lKJR63MAoGCCqGSM49\nBAMCA0cAMEQCIFV52hwugta7PnWt8fJFWcQJyo8gKSW2mKmPZHdcIv2GAiAo6A0x\nCsZ8cCdXWvrB3O03e8iDqwucjMaTVhkQYzdFlQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=Org2MSP -.data.data[0].payload.header.signature_header.nonce=SE4cJPHe3P3jHAcY4WG7Pv/vQvuEUPTi -.data.data[0].signature=MEQCICaP+yBVTaLcKveZ/+Fz2AfY6mwoZvPQ71AEP/e6inVRAiBOgpaeIq8S01JHqtdO30sn+5tEoC5JX5ijbXIaB5G3Iw== -.header.data_hash=chgh5/HX0RxduYi5teTzo85n+khrnMFji6JRQRqUf4s= +.data.data[0].payload.header.signature_header.nonce=DarsmlHnA6BDNKDMHNkxDcCw9/i/BmvP +.data.data[0].signature=MEQCIDyUZXtHp+Iv6gdabzVCMfslbY2ROFEZynsX0CTer8bNAiAtD25RR9zF5/pAvTkbAf4lA8NBhp9s8eauPA1c09CtgQ== +.header.data_hash=1EQcBAw39LRukavPNpFVrGqPOAQ5V2N9sYVgE9C7EQM= .header.number=4 -.header.previous_hash=T0QMMJUECBekT7lcuSwx7pHdhFzWEtiwLAIlXOsxVJg= -.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYCBKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYyAU8+0OePVB9T4ez8P7EmK0nNt4nQURzEkcwRQIhAPSYUK/nxUmtGmDhMJehQ5wJ17+xuQDFMz0jXTVe2B0XAiA3W73VwTJR/SxBA8MTyc4dF4DcZgG2jklQN+W9SUKW5A== +.header.previous_hash=d07OW6cwswN3xXwq0Z8uFEft39JVOvLPUWXKVazmlmY= +.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYCBKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYzJtsZlBFyDag3Sjbyf4Hteto2OWO1O5YEkYwRAIgcLWNeZfb9gQGKD4hp0dV3A2RtvDMo7Ra3CaMOuYwYn8CIHB8tB9yJwAFh8ut4s0NsqLY2X5Yp9Om2xMbej5ES+Ea .metadata.metadata[1]=CgIIAg== .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block index 106f7977..18027eeb 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json index d11635fd..abfaf644 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json @@ -11,18 +11,18 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "CWMIoQEsezoPhtFiBoZoFWkpiQouHntW" + "nonce": "puCoOO9qNhdd16TJ5kzejBA/63hhf9qa" }, "payload": { "action": { "endorsements": [ { "endorser": "CgdPcmcxTVNQEqoGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRTXRuZ1RFUlB4ckdYN2RlM21wR1I4akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN4CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2R3gyQUZCQjZiZloKQThOUm1TRmJIdjBFK1VwTGtMRFRvQmFsT05pelhTR2wwOWV2b0laaGxwWnNLMkx3Q2k2NGxiVlBsUW5IVzdtZwpTZUZZTTRkSXlhTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FncXAvZnFEK3dLOHlYRnZta0FjaWN2K1hQWlRwRWw5aEhPQnNMZnhhdW5sQXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUxucVlKS1RlR1d3aVE0S2VWYysrSFIyUkpUYTJVOEhOMGJ5TDJ2WXQ0ZWFBaUJLK0FjYwpvZFNzOGxHR3JzcWtWUmFIWnZaYUZRSm92UEpsUWc3SXdzQktwdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", - "signature": "MEUCIQCTEk1sWU6ukhMh8fRoRwceHSzYLlKXHOd9B/5EBm8zGQIgb0sZMkmyYCOuxJYL8QT8mJgyPaTvOH8uDcPoUKSlEAk=" + "signature": "MEQCIEKGnAyXV4ugigvVyA/JSRnr/ubpVe2G8IGm+q7dmrneAiAaOhX/s47y5id5u9PBTneNowPQWXIQwPcd4ciomzw/Zg==" }, { "endorser": "CgdPcmcyTVNQEqYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNKekNDQWM2Z0F3SUJBZ0lRSm9WSTNkTkU2ZjBwVy9MUFUwRU05VEFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN5CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVzaUgxTEVSSlV1Q0sKNmZPdHRqS1lMRTNXVkRqUDFwWUFYWTRydnlMMlhpV3RXZzBpVWxsb2t6MThBUk90MVovait0bHNwVy83QTMrdQoxcnJDZk1JeWk2Tk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FnYVJPWk1UMndLUkMrZ0tOZCtWVnltSTd5QmJIK1phTkd3UEJYcVVvbEhyY3dDZ1lJS29aSXpqMEUKQXdJRFJ3QXdSQUlnVm1kZ1Q4dHkveWpCYitITzRiS1l4NWluMklHaFZkMlVudHBIWE4zdlp2MENJRW5sMW1FaApXemhsU2lPVDJwTTFXY053ajJ0Y3J3VGVzQlhMdkMvcmxVRkgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=", - "signature": "MEQCICV7TPW+ALxWte2W6AT5/2TgpieC9bVTn/5wXBUctJ12AiBBmciUkZmslHovefZ6b0WEqvKg6FH0cUYaP3GltcfmUA==" + "signature": "MEQCIC2GWJgIdi0jjD7YZq0apSMh7Zh5/BwVTFNZ+W9Alf9DAiBfgIy8o1mdYOUH/Fnh8F1TNMqX+A6Wk3223JcNOALpGw==" } ], "proposal_response_payload": { @@ -115,7 +115,7 @@ ] } }, - "proposal_hash": "Ious3tH+gLV6DtodxiawpZwYqLloi1+3qaxqNuyyv8U=" + "proposal_hash": "BSPoZZaAgVWBF4ky7a+/9Okql+BfrTW20ZZjAqjvj/g=" } }, "chaincode_proposal_payload": { @@ -155,9 +155,9 @@ "version": "" } }, - "timestamp": "2020-12-07T20:44:14.521648300Z", + "timestamp": "2021-03-03T21:51:00.931208Z", "tls_cert_hash": null, - "tx_id": "7761b46d03a2d9e9de720cb8f8437249bda776e99f8c9ac7f72ac319a6aaa743", + "tx_id": "773872e81cbaad305dc488970c4aeeeffcbee695c1feb8d6aa77b1d313de36c3", "type": 3, "version": 0 }, @@ -166,22 +166,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "CWMIoQEsezoPhtFiBoZoFWkpiQouHntW" + "nonce": "puCoOO9qNhdd16TJ5kzejBA/63hhf9qa" } } }, - "signature": "MEQCIBS8zntVZoeLVKoyL0oHJ4+C/i/J+oXw2yEJEbUd7R3rAiB3CZZ4T6Ow73cBATLBEM5OAP/JT4xxnS3YDr4Svab4YA==" + "signature": "MEUCIQDXu9a+srmdrMG3+/IpW9ZxV8bSbVbbDMFQJhUGiDUEWgIgVjhSaJ8vx+aHDLxcKqS1KMCo9+lEW/VsABG0IwejR08=" } ] }, "header": { - "data_hash": "VE5uqNI3W7Uv9SlpD0DYrlps0WA22p2oqEsTfW+IGVU=", + "data_hash": "V49nO+9BF10p/VfvMU4h6elOQUNKGkPIOdyMy7GhNUA=", "number": "5", - "previous_hash": "W5gjlmcIEPTiCDAJFGIgTm4Xrfb6YFWhYJT4OYWDUdo=" + "previous_hash": "6W5VDLHJeBtx66IPLmn18U7mezFygQmjwa7L1a6Xlr0=" }, "metadata": { "metadata": [ - "ChEKAggCEgsKCQoDAQIDEAQYCRKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYK+GVeiPYWTavQZfoiV0VoFMfDatMPhKKEkcwRQIhAP6tl6G4PHnb5GpFEVQzw91Z1Jeu6XaNi31N+4gRqS69AiA270905llvQctgHujqFnfeCrr8biY0hn+6TyvuAOHLQw==", + "ChEKAggCEgsKCQoDAQIDEAQYCRKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYK6+lFaIuV8a+IzS3b8j7u9QnOr9eBcsxEkcwRQIhAJAu0+NrPVUHaTJmfZv0i+jUHrW/lx//qq1jhqcvRyVQAiBu88WSvAFauiFq/fEczWZiWVbLOSoOevg0epNGYXUxxg==", "CgIIAg==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json-flat.json index 6dbbe0a4..4adf3791 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_5.block.json-flat.json @@ -1,10 +1,10 @@ .data.data[0].payload.data.actions[0].header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.actions[0].header.creator.mspid=Org1MSP -.data.data[0].payload.data.actions[0].header.nonce=CWMIoQEsezoPhtFiBoZoFWkpiQouHntW +.data.data[0].payload.data.actions[0].header.nonce=puCoOO9qNhdd16TJ5kzejBA/63hhf9qa .data.data[0].payload.data.actions[0].payload.action.endorsements[0].endorser=CgdPcmcxTVNQEqoGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRTXRuZ1RFUlB4ckdYN2RlM21wR1I4akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN4CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2R3gyQUZCQjZiZloKQThOUm1TRmJIdjBFK1VwTGtMRFRvQmFsT05pelhTR2wwOWV2b0laaGxwWnNLMkx3Q2k2NGxiVlBsUW5IVzdtZwpTZUZZTTRkSXlhTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FncXAvZnFEK3dLOHlYRnZta0FjaWN2K1hQWlRwRWw5aEhPQnNMZnhhdW5sQXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUxucVlKS1RlR1d3aVE0S2VWYysrSFIyUkpUYTJVOEhOMGJ5TDJ2WXQ0ZWFBaUJLK0FjYwpvZFNzOGxHR3JzcWtWUmFIWnZaYUZRSm92UEpsUWc3SXdzQktwdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K -.data.data[0].payload.data.actions[0].payload.action.endorsements[0].signature=MEUCIQCTEk1sWU6ukhMh8fRoRwceHSzYLlKXHOd9B/5EBm8zGQIgb0sZMkmyYCOuxJYL8QT8mJgyPaTvOH8uDcPoUKSlEAk= +.data.data[0].payload.data.actions[0].payload.action.endorsements[0].signature=MEQCIEKGnAyXV4ugigvVyA/JSRnr/ubpVe2G8IGm+q7dmrneAiAaOhX/s47y5id5u9PBTneNowPQWXIQwPcd4ciomzw/Zg== .data.data[0].payload.data.actions[0].payload.action.endorsements[1].endorser=CgdPcmcyTVNQEqYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNKekNDQWM2Z0F3SUJBZ0lRSm9WSTNkTkU2ZjBwVy9MUFUwRU05VEFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN5CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVzaUgxTEVSSlV1Q0sKNmZPdHRqS1lMRTNXVkRqUDFwWUFYWTRydnlMMlhpV3RXZzBpVWxsb2t6MThBUk90MVovait0bHNwVy83QTMrdQoxcnJDZk1JeWk2Tk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FnYVJPWk1UMndLUkMrZ0tOZCtWVnltSTd5QmJIK1phTkd3UEJYcVVvbEhyY3dDZ1lJS29aSXpqMEUKQXdJRFJ3QXdSQUlnVm1kZ1Q4dHkveWpCYitITzRiS1l4NWluMklHaFZkMlVudHBIWE4zdlp2MENJRW5sMW1FaApXemhsU2lPVDJwTTFXY053ajJ0Y3J3VGVzQlhMdkMvcmxVRkgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= -.data.data[0].payload.data.actions[0].payload.action.endorsements[1].signature=MEQCICV7TPW+ALxWte2W6AT5/2TgpieC9bVTn/5wXBUctJ12AiBBmciUkZmslHovefZ6b0WEqvKg6FH0cUYaP3GltcfmUA== +.data.data[0].payload.data.actions[0].payload.action.endorsements[1].signature=MEQCIC2GWJgIdi0jjD7YZq0apSMh7Zh5/BwVTFNZ+W9Alf9DAiBfgIy8o1mdYOUH/Fnh8F1TNMqX+A6Wk3223JcNOALpGw== .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.name=_lifecycle .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.path= .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.chaincode_id.version=syscc @@ -42,7 +42,7 @@ .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].namespace=lscc .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].rwset.reads[0].key=exp02 .data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.extension.results.ns_rwset[1].rwset.reads[0].version=None -.data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.proposal_hash=Ious3tH+gLV6DtodxiawpZwYqLloi1+3qaxqNuyyv8U= +.data.data[0].payload.data.actions[0].payload.action.proposal_response_payload.proposal_hash=BSPoZZaAgVWBF4ky7a+/9Okql+BfrTW20ZZjAqjvj/g= .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.name=_lifecycle .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.path= .data.data[0].payload.data.actions[0].payload.chaincode_proposal_payload.input.chaincode_spec.chaincode_id.version= @@ -56,19 +56,19 @@ .data.data[0].payload.header.channel_header.extension.chaincode_id.name=_lifecycle .data.data[0].payload.header.channel_header.extension.chaincode_id.path= .data.data[0].payload.header.channel_header.extension.chaincode_id.version= -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:44:14.521648300Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:51:00.931208Z .data.data[0].payload.header.channel_header.tls_cert_hash=None -.data.data[0].payload.header.channel_header.tx_id=7761b46d03a2d9e9de720cb8f8437249bda776e99f8c9ac7f72ac319a6aaa743 +.data.data[0].payload.header.channel_header.tx_id=773872e81cbaad305dc488970c4aeeeffcbee695c1feb8d6aa77b1d313de36c3 .data.data[0].payload.header.channel_header.type=3 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=Org1MSP -.data.data[0].payload.header.signature_header.nonce=CWMIoQEsezoPhtFiBoZoFWkpiQouHntW -.data.data[0].signature=MEQCIBS8zntVZoeLVKoyL0oHJ4+C/i/J+oXw2yEJEbUd7R3rAiB3CZZ4T6Ow73cBATLBEM5OAP/JT4xxnS3YDr4Svab4YA== -.header.data_hash=VE5uqNI3W7Uv9SlpD0DYrlps0WA22p2oqEsTfW+IGVU= +.data.data[0].payload.header.signature_header.nonce=puCoOO9qNhdd16TJ5kzejBA/63hhf9qa +.data.data[0].signature=MEUCIQDXu9a+srmdrMG3+/IpW9ZxV8bSbVbbDMFQJhUGiDUEWgIgVjhSaJ8vx+aHDLxcKqS1KMCo9+lEW/VsABG0IwejR08= +.header.data_hash=V49nO+9BF10p/VfvMU4h6elOQUNKGkPIOdyMy7GhNUA= .header.number=5 -.header.previous_hash=W5gjlmcIEPTiCDAJFGIgTm4Xrfb6YFWhYJT4OYWDUdo= -.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYCRKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYK+GVeiPYWTavQZfoiV0VoFMfDatMPhKKEkcwRQIhAP6tl6G4PHnb5GpFEVQzw91Z1Jeu6XaNi31N+4gRqS69AiA270905llvQctgHujqFnfeCrr8biY0hn+6TyvuAOHLQw== +.header.previous_hash=6W5VDLHJeBtx66IPLmn18U7mezFygQmjwa7L1a6Xlr0= +.metadata.metadata[0]=ChEKAggCEgsKCQoDAQIDEAQYCRKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYK6+lFaIuV8a+IzS3b8j7u9QnOr9eBcsxEkcwRQIhAJAu0+NrPVUHaTJmfZv0i+jUHrW/lx//qq1jhqcvRyVQAiBu88WSvAFauiFq/fEczWZiWVbLOSoOevg0epNGYXUxxg== .metadata.metadata[1]=CgIIAg== .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block index cf05901e..2bd48af4 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json index f55ff2ad..61e8eca8 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json @@ -11,14 +11,14 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "Ih6JLdmiQbqYHiSV1ekUv0Abwj/IY18Y" + "nonce": "2Y1fUTWjD+unwN9m6ZpaFO5Lw7Ts/nje" }, "payload": { "action": { "endorsements": [ { "endorser": "CgdPcmcxTVNQEqoGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRTXRuZ1RFUlB4ckdYN2RlM21wR1I4akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN4CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2R3gyQUZCQjZiZloKQThOUm1TRmJIdjBFK1VwTGtMRFRvQmFsT05pelhTR2wwOWV2b0laaGxwWnNLMkx3Q2k2NGxiVlBsUW5IVzdtZwpTZUZZTTRkSXlhTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FncXAvZnFEK3dLOHlYRnZta0FjaWN2K1hQWlRwRWw5aEhPQnNMZnhhdW5sQXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUxucVlKS1RlR1d3aVE0S2VWYysrSFIyUkpUYTJVOEhOMGJ5TDJ2WXQ0ZWFBaUJLK0FjYwpvZFNzOGxHR3JzcWtWUmFIWnZaYUZRSm92UEpsUWc3SXdzQktwdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", - "signature": "MEUCIQDcmxF3AREX5oyXCyeYT0+LDOO2tfQVyxmS+G+25NtjJwIgIpmaLeNHkV1lmITyE/gRZpRm27OjyCW2ofBnLdCtSwo=" + "signature": "MEQCIF1WZj1gO3t+sb2dT91IhgVzT/fMRVWCOQiRHV65MpOaAiB17g1BcULFc9Uexw5k061VZFoseL0b2Gt8/MqAR1Lkfg==" } ], "proposal_response_payload": { @@ -89,7 +89,7 @@ ] } }, - "proposal_hash": "/Vi1chchppUZ/GHSCBF03I8USIhzMz3wPl8GRCRMz6c=" + "proposal_hash": "1X/Br9TcsmlmRRSYGQhKPd6ohQdXH9M+B5LFVEtI4e8=" } }, "chaincode_proposal_payload": { @@ -132,9 +132,9 @@ "version": "" } }, - "timestamp": "2020-12-07T20:44:19.296525900Z", + "timestamp": "2021-03-03T21:51:05.024225900Z", "tls_cert_hash": null, - "tx_id": "652e10126f8be5a113f838151beba449cdc4b088f0d0907cc693bf534d092cf4", + "tx_id": "10fddfeafcca9e81eaae0d323780f9f48b039f77a01a66147f6d7c7a497edbc5", "type": 3, "version": 0 }, @@ -143,22 +143,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "Ih6JLdmiQbqYHiSV1ekUv0Abwj/IY18Y" + "nonce": "2Y1fUTWjD+unwN9m6ZpaFO5Lw7Ts/nje" } } }, - "signature": "MEQCIFAYQdA114kFod6XqeIdaHCMlKReD8hfDReMo0GPZiQHAiBLtVoOYlHK7iBXxok3xED6mebOlNQPIVVN8sJMiGOpHA==" + "signature": "MEQCIBedhyG2NFmtLR3+EIuP3Bj7/aF1TFNauV1HqfuQSgY+AiAntOiRCtuFHy32v7V5KjLQI82unodYEMq8NuDnrC356g==" } ] }, "header": { - "data_hash": "hVPiumfSfpDQ1dyvpgPMLKiarnS+c28d6qnVpvlPfHs=", + "data_hash": "RKUfQRdR+DTE238u8luJPuHVkwc98bHrJwn4VGs+N1A=", "number": "6", - "previous_hash": "qB01MNtWGQ90uD+e28tNUWWxZW94HygSUr8aMhO8I48=" + "previous_hash": "7d1wNQBSCpZ4wYviWPLzWNggR41nXTtcgM2H+UxgosQ=" }, "metadata": { "metadata": [ - "ChEKAggCEgsKCQoDAQIDEAQYChKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY0UsRj3lrGPLH0tBH72uneNIHJh/UGXQqEkcwRQIhAJhNTepruOkpR0RbPAxlhWIx2/otZ3Za6d7rzgQ993m+AiBq9wa+rQm27/ZfX5PRTXnTEdsvklJWsEYb5PW9BCVGFw==", + "ChEKAggCEgsKCQoDAQIDEAQYChKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY9JqqWcNvycXiUV5wK2b3VG1N5M0lpHvGEkYwRAIhAIEm3nqcYSubqvdJgWJZ2HqpfnDvjyNGHf81oS57iisVAh9PlXsuWVZ5JCfWUlCCR4mSiIFAW8E1OvWb10m2UuOk", "CgIIAg==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json-flat.json index 142d63ed..caa18828 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json-flat.json and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_6.block.json-flat.json differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block index 6d9b9c68..c4e7a794 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json index a8887218..7bc0fb2c 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json @@ -11,14 +11,14 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "L5KeWZeRmor9tjpgj1x/xRivssULE1l+" + "nonce": "jxafBb4ZP6hzsU62qI33yIMSmmJXbfak" }, "payload": { "action": { "endorsements": [ { "endorser": "CgdPcmcxTVNQEqoGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRTXRuZ1RFUlB4ckdYN2RlM21wR1I4akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN4CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2R3gyQUZCQjZiZloKQThOUm1TRmJIdjBFK1VwTGtMRFRvQmFsT05pelhTR2wwOWV2b0laaGxwWnNLMkx3Q2k2NGxiVlBsUW5IVzdtZwpTZUZZTTRkSXlhTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FncXAvZnFEK3dLOHlYRnZta0FjaWN2K1hQWlRwRWw5aEhPQnNMZnhhdW5sQXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUxucVlKS1RlR1d3aVE0S2VWYysrSFIyUkpUYTJVOEhOMGJ5TDJ2WXQ0ZWFBaUJLK0FjYwpvZFNzOGxHR3JzcWtWUmFIWnZaYUZRSm92UEpsUWc3SXdzQktwdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", - "signature": "MEUCIQD4g/Xe8raDglTekmJg1tNg+A1BQkt1jnbfnYkNysM5WwIgVVmG8xsHLexcisuKqF2RYm25f4GQqPbQq1rAN43euJA=" + "signature": "MEQCIA/U1eLutr/w3fNgJt6GDkBLBEpnYGRZLBaXl1hwbqTSAiAvRgETw36Dpa2UgZBVYD2NXnEYRlS9BMY1JQtXMKReWg==" } ], "proposal_response_payload": { @@ -101,7 +101,7 @@ ] } }, - "proposal_hash": "wR8UcfOCMjj2X5eDVUxc7XeJX36JqM85x4qMJE3bI8E=" + "proposal_hash": "+YR8yMbJYESCDEQLwRTW5G80nXtKxC4Tcy6VLl1bdxU=" } }, "chaincode_proposal_payload": { @@ -143,9 +143,9 @@ "version": "" } }, - "timestamp": "2020-12-07T20:44:25.222962700Z", + "timestamp": "2021-03-03T21:51:10.784469100Z", "tls_cert_hash": null, - "tx_id": "c12b1e8b782f1b6ca6e3b545addee9268522cbf0fd4b1494911ace99c3d1100d", + "tx_id": "58328ad30278b1496cfffdf313b0ed8b1035ca457ec29753da990706dc05189b", "type": 3, "version": 0 }, @@ -154,22 +154,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "L5KeWZeRmor9tjpgj1x/xRivssULE1l+" + "nonce": "jxafBb4ZP6hzsU62qI33yIMSmmJXbfak" } } }, - "signature": "MEUCIQCZI9wSe4bEU2+4eo24BONZX2qOHfyXFi78S/iokfm5oQIgCBKykEGwtCnHH7SIVTNUzRQo/HOEZCN1hAZ/KeO52zY=" + "signature": "MEUCIQCRrSE1uYj3LRbgRicACNcvc+QNe3BkFGtIiJ3X32ptcgIgQ/+il8rY5O+gCMavazo+dCf4I2kCopJCs79Ub4HEcRc=" } ] }, "header": { - "data_hash": "0OUFxrysBVA9eWawPNDjvtwR67Bo9OISLH4l69fWfDM=", + "data_hash": "w236B0JmHDuxxLUcJRMKGZwsopLrM+QaMOQyhSgRYqg=", "number": "7", - "previous_hash": "FcB73ZKutQgH7NorznyFepY427NaSBYqWfNPLgTOmLI=" + "previous_hash": "mJQLeinLI3Jy+zCnx/3i8+fWYj+vhI2UIoJIsusWKQ0=" }, "metadata": { "metadata": [ - "ChEKAggCEgsKCQoDAQIDEAQYCxKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYCU65HDP+jHsE6K+IhDHeFu73Sm3Wi9ZyEkcwRQIhAJGk5AwS663C+6ynJnobYR9fo6ic3vKv6K6iI1naL1DLAiBf4t3dZGtRj3mvJic86anbJV8qwK845Y8Q8fNgyFz6Gg==", + "ChEKAggCEgsKCQoDAQIDEAQYCxKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY+ia93MfhnMyGGqyePA5CVQBtCDIVPRAYEkYwRAIgbGWhj7F1tMPmrJmvEOmjF61NIGPFo9cKXKrRqS6vQysCIC4fi98V4iFQyzUTkOhHjyQdge3BOp8s867Km+6jhtCK", "CgIIAg==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json-flat.json index c025756d..2fc65992 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json-flat.json and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_7.block.json-flat.json differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block index ed14432f..83cff45d 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json index 0887af17..cba3184d 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json @@ -11,14 +11,14 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "XIhvHEeSb4HqGFlAaVSLBIyj4VjNBdvd" + "nonce": "GWmoihoIOleKj3c2OMTtCWvTEentuw1W" }, "payload": { "action": { "endorsements": [ { "endorser": "CgdPcmcxTVNQEqoGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRTXRuZ1RFUlB4ckdYN2RlM21wR1I4akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdveEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVEwd0N3WURWUVFMRXdSd1pXVnlNUjh3SFFZRFZRUURFeFp3WldWeU1DNXZjbWN4CkxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2R3gyQUZCQjZiZloKQThOUm1TRmJIdjBFK1VwTGtMRFRvQmFsT05pelhTR2wwOWV2b0laaGxwWnNLMkx3Q2k2NGxiVlBsUW5IVzdtZwpTZUZZTTRkSXlhTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FncXAvZnFEK3dLOHlYRnZta0FjaWN2K1hQWlRwRWw5aEhPQnNMZnhhdW5sQXdDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUxucVlKS1RlR1d3aVE0S2VWYysrSFIyUkpUYTJVOEhOMGJ5TDJ2WXQ0ZWFBaUJLK0FjYwpvZFNzOGxHR3JzcWtWUmFIWnZaYUZRSm92UEpsUWc3SXdzQktwdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", - "signature": "MEQCIFErxdNNUMnNXhEYo0nQSypYhpS0/Y4dNH7zuuSn63p2AiB8ho5AjAlxdmcaZBf3O+emn6WwfvM+A9UcBOXLL7B1qA==" + "signature": "MEUCIQCAVtFMTy7duuk1v+ykVew2b6+DbFwZU3BMuIKUld2/nwIgUDq/auH+vwtcPhcNd/ZME86HXeX6pGh8vg+O+KCd+rM=" } ], "proposal_response_payload": { @@ -101,7 +101,7 @@ ] } }, - "proposal_hash": "VGPvCo52yQ5eVQq18gdWmhFWqg2xEUXJsq4JDgpdoUQ=" + "proposal_hash": "zS70GN/MMGvonpB38wlQ/EVr91vcoYZugOCRZJniUEM=" } }, "chaincode_proposal_payload": { @@ -143,9 +143,9 @@ "version": "" } }, - "timestamp": "2020-12-07T20:44:28.228117200Z", + "timestamp": "2021-03-03T21:51:13.371715900Z", "tls_cert_hash": null, - "tx_id": "78759b369780fea354c00000336d5624d8666d86d927df8cf835b32f725ef746", + "tx_id": "f6954dea3e77fff236b2a35835db18bb0ce25556bce0c37a0c2bfd1c4f9f714a", "type": 3, "version": 0 }, @@ -154,22 +154,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "XIhvHEeSb4HqGFlAaVSLBIyj4VjNBdvd" + "nonce": "GWmoihoIOleKj3c2OMTtCWvTEentuw1W" } } }, - "signature": "MEQCIDbO6YbuVH22RQ83awAWJFtQZNCAASH9kYx6F3h4JVDDAiACEWdHeHmGSUvW1GeT62G4sXeAffDucErr4Ng5qlnASQ==" + "signature": "MEUCIQCUVeel1QcQGe1gankw1SnLgKqhJ3Y7NR+rM3kLJ9fr7gIgI3Jm1zTcMxEo2wg/WEmVjczc/AepViEV7tXhg6+P2RQ=" } ] }, "header": { - "data_hash": "Ah/lrYTv5LuA46QnFZEFScoyJ+Z5PcYKKLinu8cW7j0=", + "data_hash": "JwnBqeIohXsm1LsKutUdAdH5zPlofo9VfQ53dLoFTaY=", "number": "8", - "previous_hash": "UyOA50NapxBfzNDQqC6qYxER0F2BgdzuHp3uGfQ6HEY=" + "previous_hash": "VOQCTd4z/RTXxrS6iYXbsjv8X0CNIomcXgWU/tV32tY=" }, "metadata": { "metadata": [ - "ChEKAggCEgsKCQoDAQIDEAQYDBKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYUCocteTl7suiBZB34cU1iw26rzlbnpBHEkcwRQIhAMUL8qGwJCPCY/imxD+y8HoFlbBYRn2cmmsRFrEDllV3AiB0G/KtdOV7OTzYIw4AUYJpi6lZCnltOoVm48xruYkEcQ==", + "ChEKAggCEgsKCQoDAQIDEAQYDBKWBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYZt3YnMrMmizYjDqY1c4zJJg2xkGiqy5SEkcwRQIhAPCHoI10PRGYfbQMlKD1Ilf5h0amCZc0KGnkwkUlHxppAiATFjf/ElJ4xPqUvdBYZ+toUn0ANeL81VBIwggZEIIhVQ==", "CgIIAg==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json-flat.json index 46f056d5..c3563f2f 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json-flat.json and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_8.block.json-flat.json differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block index 457178ea..49ea208e 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json index 3615209e..abfb2041 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json @@ -1350,33 +1350,33 @@ }, "signatures": [ { - "signature": "MEQCIBTCUA1nv+IqF7T801SR7+VsXIU/wMdZ4eV4w7Xp9OZRAiB7KeQ+9Ol8+YT636BANZkUwgv7GsAWdHfB7nFKZIVKoQ==", + "signature": "MEQCIHHggPlmHjDGD1hYggA+R0pLZMw/HTdJvRj2DE6KAxi6AiAwuxnKw9POH0bkemTMCDKGx0Def8rYraVNWhnMFiYbBg==", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "/es7WiVOu1AQxxTNLScNq7sGeqO+y/E1" + "nonce": "WQaIhPATVTf/eRvJG1xrvXTRSWvgWi0g" } }, { - "signature": "MEQCIE/Kxi9UTV5ooimCHrAfcvVBV7vV1XlcaiDcEnjIFtElAiA2iwr9pkfeNP+9zxu3rKw07EIBnlt16I3zTbUgPlfM7A==", + "signature": "MEUCIQD9l+wwhVN/x/hbgJSBBLoTG9wPf8+c90Kbr0KmF56NWAIgZGNtG/hJKtoE4YvpA1UqAbJNRvOgJcojyCAzFHChI08=", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "Q99HRoEGZ4qCrTDMSeDkvUvqxg4Ra7QU" + "nonce": "72eXRSKAepbiwdS+aZ/K3lyLCj/TEfAG" } }, { - "signature": "MEUCIQDQLnNHN/0uxchZ3iim3eB+qaqRVET1U4YU+nfQdsC/0AIgTup6m40x8RsjTRFCBz9ErxBuJcdOcg3F+HkCTs8ywME=", + "signature": "MEQCIEC2jZlZ/5/pIqU7YzI/kZi8Lcv0pZqq+/2BfrBUC6PvAiBcaiQr9FOQA+F6OP+mWwgOzUrItVd2Fhy13J9Rzu3I3Q==", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "081L4AqDeuQHOrkTDUoP0VCz4MPO3uf0" + "nonce": "RNI5/lmkFr4iYKwn8lidzVkrxt+ZhbDo" } } ] @@ -1386,7 +1386,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:44:48Z", + "timestamp": "2021-03-03T21:51:33Z", "tls_cert_hash": null, "tx_id": "", "type": 2, @@ -1397,11 +1397,11 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "e1h/9MLTb6s+yQEt4E3vOE1zd9GIL0ZE" + "nonce": "ddyadMCfpYq4mlQdOwe6xSvAxu54bplq" } } }, - "signature": "MEUCIQCYdLs/94Y5aKntk1f0oe1GCKLGAiS1eby7T4/+VCh3fwIgbPUs21leEUOS9kYw/HvgNNpdH/roHtu04Qa13qEtMLM=" + "signature": "MEUCIQDnGukwom+X50+zbZ7/nLrpV3gQZm6/4dvLTRAAB+WHpgIgWDLSQjSeg9D+wRuQcLhl0uQkHv6MBGwsbRXiaraT7Jo=" } }, "header": { @@ -1409,7 +1409,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:44:49Z", + "timestamp": "2021-03-03T21:51:33Z", "tls_cert_hash": null, "tx_id": "", "type": 1, @@ -1420,22 +1420,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "OrdererMSP" }, - "nonce": "98ps1m6Jy/RnNJunfhB6PfeHT0MLG1n+" + "nonce": "n7rNuLN6RgQAE8Ca8BBjYRhcFTnVlP/+" } } }, - "signature": "MEUCIQDAMHhaJtKi9q1y8l6xMQ+pk2o0iBa0REyx+ADnyE6nuAIgUDg0VtfIvm3bFa8o2CFPgX/0HxVR4itujrmzHIrKQUg=" + "signature": "MEUCIQCFBiAe4kZUT/S9++ZanbpN4LnBaSJWjKb6HGkFnggClAIgdeuU+GYHHMIoyPV9HeAXraco4FDFI8HCqEENpTOJ4cM=" } ] }, "header": { - "data_hash": "qLJS2JiASV+kO2NONStW/+cLbzN5Z78WMBdTnGoJf+w=", + "data_hash": "OzDDtZpK2JtooSwU+JOAcVaNIlw8rowIUCDUZA96Cd0=", "number": "9", - "previous_hash": "wQ8jmOUR70YBRmrnP1o21Eeo30jyxI0rp2PtDVWThN8=" + "previous_hash": "A435iJsEb/MOp2iaG38lZeu9tguiFZQffZ+5QbTK/eQ=" }, "metadata": { "metadata": [ - "ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYAo2Tlr7oQr7FyTiexOnRtk2OLYWNKp4WEkYwRAIgeCzHYLUvszEOeU4kradNCeoTOyoiWxSXDsX07HFrTMsCIFWoQS9azQ9p4fQnlaCmrd4deNPupwwqylaOAl+1oGEV", + "ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY6yZPEQO8gWGe45OUihc1p+u9039GHzSZEkYwRAIgdU+8hQ7AlzoRfA1BozaYglvU/txdreoYj8dmjLyBSYMCIDtZKLDpJWPv+5a7cj8gydZW1dZ27jsmYc8SvCpZR9+K", "CgIICQ==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json-flat.json index 9d954b00..2a142298 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_9.block.json-flat.json @@ -481,46 +481,46 @@ .data.data[0].payload.data.last_update.payload.data.config_update.write_set.groups.Application.version=2 .data.data[0].payload.data.last_update.payload.data.config_update.write_set.mod_policy= .data.data[0].payload.data.last_update.payload.data.config_update.write_set.version=0 -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEQCIBTCUA1nv+IqF7T801SR7+VsXIU/wMdZ4eV4w7Xp9OZRAiB7KeQ+9Ol8+YT636BANZkUwgv7GsAWdHfB7nFKZIVKoQ== +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEQCIHHggPlmHjDGD1hYggA+R0pLZMw/HTdJvRj2DE6KAxi6AiAwuxnKw9POH0bkemTMCDKGx0Def8rYraVNWhnMFiYbBg== .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=/es7WiVOu1AQxxTNLScNq7sGeqO+y/E1 -.data.data[0].payload.data.last_update.payload.data.signatures[1].signature=MEQCIE/Kxi9UTV5ooimCHrAfcvVBV7vV1XlcaiDcEnjIFtElAiA2iwr9pkfeNP+9zxu3rKw07EIBnlt16I3zTbUgPlfM7A== +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=WQaIhPATVTf/eRvJG1xrvXTRSWvgWi0g +.data.data[0].payload.data.last_update.payload.data.signatures[1].signature=MEUCIQD9l+wwhVN/x/hbgJSBBLoTG9wPf8+c90Kbr0KmF56NWAIgZGNtG/hJKtoE4YvpA1UqAbJNRvOgJcojyCAzFHChI08= .data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQI87pZOv3cou7q7p8aEIQ7zAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCqmCUO55nv9\nx85HsSYVPSiDDyxkHgkm4k9EEmdUIhgv8WxEEgWwJMKpwNwPMj6MMRSMvPVUCYsW\n+g3BqO3vmaKjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIGkTmTE9sCkQvoCjXflVcpiO8gWx/mWjRsDwV6lKJR63MAoGCCqGSM49\nBAMCA0cAMEQCIFV52hwugta7PnWt8fJFWcQJyo8gKSW2mKmPZHdcIv2GAiAo6A0x\nCsZ8cCdXWvrB3O03e8iDqwucjMaTVhkQYzdFlQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.creator.mspid=Org2MSP -.data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.nonce=Q99HRoEGZ4qCrTDMSeDkvUvqxg4Ra7QU -.data.data[0].payload.data.last_update.payload.data.signatures[2].signature=MEUCIQDQLnNHN/0uxchZ3iim3eB+qaqRVET1U4YU+nfQdsC/0AIgTup6m40x8RsjTRFCBz9ErxBuJcdOcg3F+HkCTs8ywME= +.data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.nonce=72eXRSKAepbiwdS+aZ/K3lyLCj/TEfAG +.data.data[0].payload.data.last_update.payload.data.signatures[2].signature=MEQCIEC2jZlZ/5/pIqU7YzI/kZi8Lcv0pZqq+/2BfrBUC6PvAiBcaiQr9FOQA+F6OP+mWwgOzUrItVd2Fhy13J9Rzu3I3Q== .data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.nonce=081L4AqDeuQHOrkTDUoP0VCz4MPO3uf0 +.data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.nonce=RNI5/lmkFr4iYKwn8lidzVkrxt+ZhbDo .data.data[0].payload.data.last_update.payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.data.last_update.payload.header.channel_header.epoch=0 .data.data[0].payload.data.last_update.payload.header.channel_header.extension=None -.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2020-12-07T20:44:48Z +.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2021-03-03T21:51:33Z .data.data[0].payload.data.last_update.payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.data.last_update.payload.header.channel_header.tx_id= .data.data[0].payload.data.last_update.payload.header.channel_header.type=2 .data.data[0].payload.data.last_update.payload.header.channel_header.version=0 .data.data[0].payload.data.last_update.payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.header.signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=e1h/9MLTb6s+yQEt4E3vOE1zd9GIL0ZE -.data.data[0].payload.data.last_update.signature=MEUCIQCYdLs/94Y5aKntk1f0oe1GCKLGAiS1eby7T4/+VCh3fwIgbPUs21leEUOS9kYw/HvgNNpdH/roHtu04Qa13qEtMLM= +.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=ddyadMCfpYq4mlQdOwe6xSvAxu54bplq +.data.data[0].payload.data.last_update.signature=MEUCIQDnGukwom+X50+zbZ7/nLrpV3gQZm6/4dvLTRAAB+WHpgIgWDLSQjSeg9D+wRuQcLhl0uQkHv6MBGwsbRXiaraT7Jo= .data.data[0].payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.header.channel_header.epoch=0 .data.data[0].payload.header.channel_header.extension=None -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:44:49Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:51:33Z .data.data[0].payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.header.channel_header.tx_id= .data.data[0].payload.header.channel_header.type=1 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICHzCCAcagAwIBAgIRAL4YNn5rsM0bOw0v0SHKpIEwCgYIKoZIzj0EAwIwaTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt\ncGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBaMGsxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp\nc2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl\nLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNl8pFl0CUzuVi9/9+dudtsg\n7QBJXLiI1+5aViSe1WMgbJFbFLU6CWg1wj2UgJKpqGjnH+NUlyfcrcai0oBxuGCj\nTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDC2\nkvrXbmyUVnAB41QAmmMSh3SFaWoBLRcD49bQBdwNMAoGCCqGSM49BAMCA0cAMEQC\nIEcXjHMLW9H5KPDRm8NZqjNzQM2lA3/xMo9HYGLUt1DNAiAbVf1xeXjzzKUqE7iH\nprmB5CA9JjV5aQgcHRTusg3Hiw==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=OrdererMSP -.data.data[0].payload.header.signature_header.nonce=98ps1m6Jy/RnNJunfhB6PfeHT0MLG1n+ -.data.data[0].signature=MEUCIQDAMHhaJtKi9q1y8l6xMQ+pk2o0iBa0REyx+ADnyE6nuAIgUDg0VtfIvm3bFa8o2CFPgX/0HxVR4itujrmzHIrKQUg= -.header.data_hash=qLJS2JiASV+kO2NONStW/+cLbzN5Z78WMBdTnGoJf+w= +.data.data[0].payload.header.signature_header.nonce=n7rNuLN6RgQAE8Ca8BBjYRhcFTnVlP/+ +.data.data[0].signature=MEUCIQCFBiAe4kZUT/S9++ZanbpN4LnBaSJWjKb6HGkFnggClAIgdeuU+GYHHMIoyPV9HeAXraco4FDFI8HCqEENpTOJ4cM= +.header.data_hash=OzDDtZpK2JtooSwU+JOAcVaNIlw8rowIUCDUZA96Cd0= .header.number=9 -.header.previous_hash=wQ8jmOUR70YBRmrnP1o21Eeo30jyxI0rp2PtDVWThN8= -.metadata.metadata[0]=ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYAo2Tlr7oQr7FyTiexOnRtk2OLYWNKp4WEkYwRAIgeCzHYLUvszEOeU4kradNCeoTOyoiWxSXDsX07HFrTMsCIFWoQS9azQ9p4fQnlaCmrd4deNPupwwqylaOAl+1oGEV +.header.previous_hash=A435iJsEb/MOp2iaG38lZeu9tguiFZQffZ+5QbTK/eQ= +.metadata.metadata[0]=ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY6yZPEQO8gWGe45OUihc1p+u9039GHzSZEkYwRAIgdU+8hQ7AlzoRfA1BozaYglvU/txdreoYj8dmjLyBSYMCIDtZKLDpJWPv+5a7cj8gydZW1dZ27jsmYc8SvCpZR9+K .metadata.metadata[1]=CgIICQ== .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block index 457178ea..49ea208e 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block and b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json index 3615209e..abfb2041 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json @@ -1350,33 +1350,33 @@ }, "signatures": [ { - "signature": "MEQCIBTCUA1nv+IqF7T801SR7+VsXIU/wMdZ4eV4w7Xp9OZRAiB7KeQ+9Ol8+YT636BANZkUwgv7GsAWdHfB7nFKZIVKoQ==", + "signature": "MEQCIHHggPlmHjDGD1hYggA+R0pLZMw/HTdJvRj2DE6KAxi6AiAwuxnKw9POH0bkemTMCDKGx0Def8rYraVNWhnMFiYbBg==", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "/es7WiVOu1AQxxTNLScNq7sGeqO+y/E1" + "nonce": "WQaIhPATVTf/eRvJG1xrvXTRSWvgWi0g" } }, { - "signature": "MEQCIE/Kxi9UTV5ooimCHrAfcvVBV7vV1XlcaiDcEnjIFtElAiA2iwr9pkfeNP+9zxu3rKw07EIBnlt16I3zTbUgPlfM7A==", + "signature": "MEUCIQD9l+wwhVN/x/hbgJSBBLoTG9wPf8+c90Kbr0KmF56NWAIgZGNtG/hJKtoE4YvpA1UqAbJNRvOgJcojyCAzFHChI08=", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRSTg3cFpPdjNjb3U3cTdwOGFFSVE3ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQ3FtQ1VPNTVudjkKeDg1SHNTWVZQU2lERHl4a0hna200azlFRW1kVUloZ3Y4V3hFRWdXd0pNS3B3TndQTWo2TU1SU012UFZVQ1lzVworZzNCcU8zdm1hS2pUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUdrVG1URTlzQ2tRdm9DalhmbFZjcGlPOGdXeC9tV2pSc0R3VjZsS0pSNjNNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUZWNTJod3VndGE3UG5XdDhmSkZXY1FKeW84Z0tTVzJtS21QWkhkY0l2MkdBaUFvNkEweApDc1o4Y0NkWFd2ckIzTzAzZThpRHF3dWNqTWFUVmhrUVl6ZEZsUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org2MSP" }, - "nonce": "Q99HRoEGZ4qCrTDMSeDkvUvqxg4Ra7QU" + "nonce": "72eXRSKAepbiwdS+aZ/K3lyLCj/TEfAG" } }, { - "signature": "MEUCIQDQLnNHN/0uxchZ3iim3eB+qaqRVET1U4YU+nfQdsC/0AIgTup6m40x8RsjTRFCBz9ErxBuJcdOcg3F+HkCTs8ywME=", + "signature": "MEQCIEC2jZlZ/5/pIqU7YzI/kZi8Lcv0pZqq+/2BfrBUC6PvAiBcaiQr9FOQA+F6OP+mWwgOzUrItVd2Fhy13J9Rzu3I3Q==", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "081L4AqDeuQHOrkTDUoP0VCz4MPO3uf0" + "nonce": "RNI5/lmkFr4iYKwn8lidzVkrxt+ZhbDo" } } ] @@ -1386,7 +1386,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:44:48Z", + "timestamp": "2021-03-03T21:51:33Z", "tls_cert_hash": null, "tx_id": "", "type": 2, @@ -1397,11 +1397,11 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "e1h/9MLTb6s+yQEt4E3vOE1zd9GIL0ZE" + "nonce": "ddyadMCfpYq4mlQdOwe6xSvAxu54bplq" } } }, - "signature": "MEUCIQCYdLs/94Y5aKntk1f0oe1GCKLGAiS1eby7T4/+VCh3fwIgbPUs21leEUOS9kYw/HvgNNpdH/roHtu04Qa13qEtMLM=" + "signature": "MEUCIQDnGukwom+X50+zbZ7/nLrpV3gQZm6/4dvLTRAAB+WHpgIgWDLSQjSeg9D+wRuQcLhl0uQkHv6MBGwsbRXiaraT7Jo=" } }, "header": { @@ -1409,7 +1409,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:44:49Z", + "timestamp": "2021-03-03T21:51:33Z", "tls_cert_hash": null, "tx_id": "", "type": 1, @@ -1420,22 +1420,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "OrdererMSP" }, - "nonce": "98ps1m6Jy/RnNJunfhB6PfeHT0MLG1n+" + "nonce": "n7rNuLN6RgQAE8Ca8BBjYRhcFTnVlP/+" } } }, - "signature": "MEUCIQDAMHhaJtKi9q1y8l6xMQ+pk2o0iBa0REyx+ADnyE6nuAIgUDg0VtfIvm3bFa8o2CFPgX/0HxVR4itujrmzHIrKQUg=" + "signature": "MEUCIQCFBiAe4kZUT/S9++ZanbpN4LnBaSJWjKb6HGkFnggClAIgdeuU+GYHHMIoyPV9HeAXraco4FDFI8HCqEENpTOJ4cM=" } ] }, "header": { - "data_hash": "qLJS2JiASV+kO2NONStW/+cLbzN5Z78WMBdTnGoJf+w=", + "data_hash": "OzDDtZpK2JtooSwU+JOAcVaNIlw8rowIUCDUZA96Cd0=", "number": "9", - "previous_hash": "wQ8jmOUR70YBRmrnP1o21Eeo30jyxI0rp2PtDVWThN8=" + "previous_hash": "A435iJsEb/MOp2iaG38lZeu9tguiFZQffZ+5QbTK/eQ=" }, "metadata": { "metadata": [ - "ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYAo2Tlr7oQr7FyTiexOnRtk2OLYWNKp4WEkYwRAIgeCzHYLUvszEOeU4kradNCeoTOyoiWxSXDsX07HFrTMsCIFWoQS9azQ9p4fQnlaCmrd4deNPupwwqylaOAl+1oGEV", + "ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY6yZPEQO8gWGe45OUihc1p+u9039GHzSZEkYwRAIgdU+8hQ7AlzoRfA1BozaYglvU/txdreoYj8dmjLyBSYMCIDtZKLDpJWPv+5a7cj8gydZW1dZ27jsmYc8SvCpZR9+K", "CgIICQ==", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json-flat.json index 9d954b00..2a142298 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/businesschannel_config.block.json-flat.json @@ -481,46 +481,46 @@ .data.data[0].payload.data.last_update.payload.data.config_update.write_set.groups.Application.version=2 .data.data[0].payload.data.last_update.payload.data.config_update.write_set.mod_policy= .data.data[0].payload.data.last_update.payload.data.config_update.write_set.version=0 -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEQCIBTCUA1nv+IqF7T801SR7+VsXIU/wMdZ4eV4w7Xp9OZRAiB7KeQ+9Ol8+YT636BANZkUwgv7GsAWdHfB7nFKZIVKoQ== +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature=MEQCIHHggPlmHjDGD1hYggA+R0pLZMw/HTdJvRj2DE6KAxi6AiAwuxnKw9POH0bkemTMCDKGx0Def8rYraVNWhnMFiYbBg== .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=/es7WiVOu1AQxxTNLScNq7sGeqO+y/E1 -.data.data[0].payload.data.last_update.payload.data.signatures[1].signature=MEQCIE/Kxi9UTV5ooimCHrAfcvVBV7vV1XlcaiDcEnjIFtElAiA2iwr9pkfeNP+9zxu3rKw07EIBnlt16I3zTbUgPlfM7A== +.data.data[0].payload.data.last_update.payload.data.signatures[0].signature_header.nonce=WQaIhPATVTf/eRvJG1xrvXTRSWvgWi0g +.data.data[0].payload.data.last_update.payload.data.signatures[1].signature=MEUCIQD9l+wwhVN/x/hbgJSBBLoTG9wPf8+c90Kbr0KmF56NWAIgZGNtG/hJKtoE4YvpA1UqAbJNRvOgJcojyCAzFHChI08= .data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQI87pZOv3cou7q7p8aEIQ7zAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCqmCUO55nv9\nx85HsSYVPSiDDyxkHgkm4k9EEmdUIhgv8WxEEgWwJMKpwNwPMj6MMRSMvPVUCYsW\n+g3BqO3vmaKjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIGkTmTE9sCkQvoCjXflVcpiO8gWx/mWjRsDwV6lKJR63MAoGCCqGSM49\nBAMCA0cAMEQCIFV52hwugta7PnWt8fJFWcQJyo8gKSW2mKmPZHdcIv2GAiAo6A0x\nCsZ8cCdXWvrB3O03e8iDqwucjMaTVhkQYzdFlQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.creator.mspid=Org2MSP -.data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.nonce=Q99HRoEGZ4qCrTDMSeDkvUvqxg4Ra7QU -.data.data[0].payload.data.last_update.payload.data.signatures[2].signature=MEUCIQDQLnNHN/0uxchZ3iim3eB+qaqRVET1U4YU+nfQdsC/0AIgTup6m40x8RsjTRFCBz9ErxBuJcdOcg3F+HkCTs8ywME= +.data.data[0].payload.data.last_update.payload.data.signatures[1].signature_header.nonce=72eXRSKAepbiwdS+aZ/K3lyLCj/TEfAG +.data.data[0].payload.data.last_update.payload.data.signatures[2].signature=MEQCIEC2jZlZ/5/pIqU7YzI/kZi8Lcv0pZqq+/2BfrBUC6PvAiBcaiQr9FOQA+F6OP+mWwgOzUrItVd2Fhy13J9Rzu3I3Q== .data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.nonce=081L4AqDeuQHOrkTDUoP0VCz4MPO3uf0 +.data.data[0].payload.data.last_update.payload.data.signatures[2].signature_header.nonce=RNI5/lmkFr4iYKwn8lidzVkrxt+ZhbDo .data.data[0].payload.data.last_update.payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.data.last_update.payload.header.channel_header.epoch=0 .data.data[0].payload.data.last_update.payload.header.channel_header.extension=None -.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2020-12-07T20:44:48Z +.data.data[0].payload.data.last_update.payload.header.channel_header.timestamp=2021-03-03T21:51:33Z .data.data[0].payload.data.last_update.payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.data.last_update.payload.header.channel_header.tx_id= .data.data[0].payload.data.last_update.payload.header.channel_header.type=2 .data.data[0].payload.data.last_update.payload.header.channel_header.version=0 .data.data[0].payload.data.last_update.payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.last_update.payload.header.signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=e1h/9MLTb6s+yQEt4E3vOE1zd9GIL0ZE -.data.data[0].payload.data.last_update.signature=MEUCIQCYdLs/94Y5aKntk1f0oe1GCKLGAiS1eby7T4/+VCh3fwIgbPUs21leEUOS9kYw/HvgNNpdH/roHtu04Qa13qEtMLM= +.data.data[0].payload.data.last_update.payload.header.signature_header.nonce=ddyadMCfpYq4mlQdOwe6xSvAxu54bplq +.data.data[0].payload.data.last_update.signature=MEUCIQDnGukwom+X50+zbZ7/nLrpV3gQZm6/4dvLTRAAB+WHpgIgWDLSQjSeg9D+wRuQcLhl0uQkHv6MBGwsbRXiaraT7Jo= .data.data[0].payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.header.channel_header.epoch=0 .data.data[0].payload.header.channel_header.extension=None -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:44:49Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:51:33Z .data.data[0].payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.header.channel_header.tx_id= .data.data[0].payload.header.channel_header.type=1 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICHzCCAcagAwIBAgIRAL4YNn5rsM0bOw0v0SHKpIEwCgYIKoZIzj0EAwIwaTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt\ncGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBaMGsxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp\nc2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl\nLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNl8pFl0CUzuVi9/9+dudtsg\n7QBJXLiI1+5aViSe1WMgbJFbFLU6CWg1wj2UgJKpqGjnH+NUlyfcrcai0oBxuGCj\nTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDC2\nkvrXbmyUVnAB41QAmmMSh3SFaWoBLRcD49bQBdwNMAoGCCqGSM49BAMCA0cAMEQC\nIEcXjHMLW9H5KPDRm8NZqjNzQM2lA3/xMo9HYGLUt1DNAiAbVf1xeXjzzKUqE7iH\nprmB5CA9JjV5aQgcHRTusg3Hiw==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=OrdererMSP -.data.data[0].payload.header.signature_header.nonce=98ps1m6Jy/RnNJunfhB6PfeHT0MLG1n+ -.data.data[0].signature=MEUCIQDAMHhaJtKi9q1y8l6xMQ+pk2o0iBa0REyx+ADnyE6nuAIgUDg0VtfIvm3bFa8o2CFPgX/0HxVR4itujrmzHIrKQUg= -.header.data_hash=qLJS2JiASV+kO2NONStW/+cLbzN5Z78WMBdTnGoJf+w= +.data.data[0].payload.header.signature_header.nonce=n7rNuLN6RgQAE8Ca8BBjYRhcFTnVlP/+ +.data.data[0].signature=MEUCIQCFBiAe4kZUT/S9++ZanbpN4LnBaSJWjKb6HGkFnggClAIgdeuU+GYHHMIoyPV9HeAXraco4FDFI8HCqEENpTOJ4cM= +.header.data_hash=OzDDtZpK2JtooSwU+JOAcVaNIlw8rowIUCDUZA96Cd0= .header.number=9 -.header.previous_hash=wQ8jmOUR70YBRmrnP1o21Eeo30jyxI0rp2PtDVWThN8= -.metadata.metadata[0]=ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYAo2Tlr7oQr7FyTiexOnRtk2OLYWNKp4WEkYwRAIgeCzHYLUvszEOeU4kradNCeoTOyoiWxSXDsX07HFrTMsCIFWoQS9azQ9p4fQnlaCmrd4deNPupwwqylaOAl+1oGEV +.header.previous_hash=A435iJsEb/MOp2iaG38lZeu9tguiFZQffZ+5QbTK/eQ= +.metadata.metadata[0]=ChEKAggJEgsKCQoDAQIDEAQYDRKVBwrKBgqtBgoKT3JkZXJlck1TUBKeBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDSHpDQ0FjYWdBd0lCQWdJUkFMNFlObjVyc00wYk93MHYwU0hLcElFd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB5TURBM01UY3hPREU1TURCYUZ3MHpNREEzTVRVeE9ERTVNREJhTUdzeEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1SQXdEZ1lEVlFRTEV3ZHZjbVJsY21WeU1SMHdHd1lEVlFRREV4UnZjbVJsY21WeU1DNWxlR0Z0Y0d4bApMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sOHBGbDBDVXp1Vmk5LzkrZHVkdHNnCjdRQkpYTGlJMSs1YVZpU2UxV01nYkpGYkZMVTZDV2cxd2oyVWdKS3BxR2puSCtOVWx5ZmNyY2FpMG9CeHVHQ2oKVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSURDMgprdnJYYm15VVZuQUI0MVFBbW1NU2gzU0ZhV29CTFJjRDQ5YlFCZHdOTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDCklFY1hqSE1MVzlINUtQRFJtOE5acWpOelFNMmxBMy94TW85SFlHTFV0MUROQWlBYlZmMXhlWGp6ektVcUU3aUgKcHJtQjVDQTlKalY1YVFnY0hSVHVzZzNIaXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIY6yZPEQO8gWGe45OUihc1p+u9039GHzSZEkYwRAIgdU+8hQ7AlzoRfA1BozaYglvU/txdreoYj8dmjLyBSYMCIDtZKLDpJWPv+5a7cj8gydZW1dZ27jsmYc8SvCpZR9+K .metadata.metadata[1]=CgIICQ== .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/config_delta.pb b/hyperledger_fabric/latest/raft/channel-artifacts/config_delta.pb index a6f83b4b..f6ebbb15 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/config_delta.pb and b/hyperledger_fabric/latest/raft/channel-artifacts/config_delta.pb differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/config_delta_env.pb b/hyperledger_fabric/latest/raft/channel-artifacts/config_delta_env.pb index 41e7e659..1d0a5af7 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/config_delta_env.pb and b/hyperledger_fabric/latest/raft/channel-artifacts/config_delta_env.pb differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/original_config.pb b/hyperledger_fabric/latest/raft/channel-artifacts/original_config.pb index 45a6112b..fa0b3d6f 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/original_config.pb and b/hyperledger_fabric/latest/raft/channel-artifacts/original_config.pb differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block b/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block index 05a87a13..8c8b4e1d 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block and b/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block differ diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json b/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json index 13f1e4db..b51f18d2 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json @@ -1059,13 +1059,13 @@ }, "signatures": [ { - "signature": "MEUCIQDXOdgXyHgXM6sqibAuGi1CNMTD+o4Zy/RiZnkb6qv9SAIgHIZ/D7CvT8emrEEvw6DT0qPqkxcFnuD7c3ou0JsFdz8=", + "signature": "MEQCIEhM2lXwMWkiHvgLTV4fzucmRFM3ndPf3LQm5+PKYq17AiAYbsnVxUn6qhQ15OuK2rlE48CsLa7szTD3Cncif6HMyA==", "signature_header": { "creator": { "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "McNiQKZEFcOdr88NCDrvDZ94n3026Dpu" + "nonce": "BwKJAVK8lpbdGQ7mRSIiJKRYDuV6dBdI" } } ] @@ -1075,7 +1075,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:25Z", + "timestamp": "2021-03-03T21:48:10Z", "tls_cert_hash": null, "tx_id": "", "type": 2, @@ -1086,11 +1086,11 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "Org1MSP" }, - "nonce": "2dSe0bDcXj5kQjDVMQTR1c5vNktRQSTe" + "nonce": "wqaYZPHSLWgfOtWlND+uEqpSvDe/k2+x" } } }, - "signature": "MEUCIQDBpNjy5Xz+sGpkpLuFcE3JnvF5qscUG54wRfK/fRoGiwIgS23cSRfXBF+bM5d7xwCY/TEMJ7MCX3mX59sSBEammA8=" + "signature": "MEQCICr5YMzytULintH5LpvFkZntf9cYRv9ON+SXQ1Yrhs9NAiAPgI0zpgZ62moAdFeaBXsoKebFVT7IS3Vwb7IdJdaw1A==" } }, "header": { @@ -1098,7 +1098,7 @@ "channel_id": "businesschannel", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:25Z", + "timestamp": "2021-03-03T21:48:10Z", "tls_cert_hash": null, "tx_id": "", "type": 1, @@ -1109,18 +1109,18 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "OrdererMSP" }, - "nonce": "LW+Nh1InbFwwXduACfJDSD0+bGCcD9B8" + "nonce": "7bLWvAeppKBi+2lZ+X+wNae/Tjb3Zcmk" } } }, - "signature": "MEQCIHNf4DL+Vc2MBdvyH7pfSb0++Khj9InMNGJPP/F5EW5aAiBH7L0VyAK/gF64G13kcyn5GCX41pZFQ6ktYxZiTU0Eow==" + "signature": "MEQCIFw2ChNvqrHXXHHw6v2u6rsq8weNm3SdYYXEJWgoAOnAAiA9y+buRYS3MwiZ/+bHuzFNt3PqWU9S1Zsg4+OZGScwxA==" }, "header": { "channel_header": { "channel_id": "testchainid", "epoch": "0", "extension": null, - "timestamp": "2020-12-07T20:41:25Z", + "timestamp": "2021-03-03T21:48:10Z", "tls_cert_hash": null, "tx_id": "", "type": 4, @@ -1131,22 +1131,22 @@ "id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", "mspid": "OrdererMSP" }, - "nonce": "GYw5RfuCds1bVYtW7aoaA73RDu/jLThb" + "nonce": "OboZlrrLuxgC6liON+J7ZZ4a6jCzWBkq" } } }, - "signature": "MEUCIQDnIDg6cyhYwm1sxJTbPJIdctd3AysECky71wMZDKETvgIgA8pJlkvV2Sn+p7d237Y36oWIjZf3i/PCCXM30YvAekQ=" + "signature": "MEUCIQDUvS+YxgGhAD67lZXtn8D2E5f3WLE8xC6y3b7+4RvwiQIgaRn9Bh8iF9J9IfERh9wf4GNyVyGksnUBJODDcCev8sQ=" } ] }, "header": { - "data_hash": "5ndFUI1kvPosX2TnBtHmVOaXKDE36xOVKUxfUkaO/as=", + "data_hash": "MHmu3RYwyur+z6VdLADUckCWf9aPQGfPgBQgUfNM1Y0=", "number": "1", "previous_hash": "6W5kLgUNCKdJdB8UECw8Wn4EBT+x5nQYo38cG7uFMUE=" }, "metadata": { "metadata": [ - "Cg8KABILCgkKAwECAxAEGAUSlQcKygYKrQYKCk9yZGVyZXJNU1ASngYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ0h6Q0NBY2FnQXdJQkFnSVJBTDRZTm41cnNNMGJPdzB2MFNIS3BJRXdDZ1lJS29aSXpqMEVBd0l3YVRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnQKY0d4bExtTnZiVEFlRncweU1EQTNNVGN4T0RFNU1EQmFGdzB6TURBM01UVXhPREU1TURCYU1Hc3hDekFKQmdOVgpCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wCmMyTnZNUkF3RGdZRFZRUUxFd2R2Y21SbGNtVnlNUjB3R3dZRFZRUURFeFJ2Y21SbGNtVnlNQzVsZUdGdGNHeGwKTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJObDhwRmwwQ1V6dVZpOS85K2R1ZHRzZwo3UUJKWExpSTErNWFWaVNlMVdNZ2JKRmJGTFU2Q1dnMXdqMlVnSktwcUdqbkgrTlVseWZjcmNhaTBvQnh1R0NqClRUQkxNQTRHQTFVZER3RUIvd1FFQXdJSGdEQU1CZ05WSFJNQkFmOEVBakFBTUNzR0ExVWRJd1FrTUNLQUlEQzIKa3ZyWGJteVVWbkFCNDFRQW1tTVNoM1NGYVdvQkxSY0Q0OWJRQmR3Tk1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQwpJRWNYakhNTFc5SDVLUERSbThOWnFqTnpRTTJsQTMveE1vOUhZR0xVdDFETkFpQWJWZjF4ZVhqenpLVXFFN2lICnBybUI1Q0E5SmpWNWFRZ2NIUlR1c2czSGl3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGCc34dmjcR0u+slsvvrTEqLXSBnFY8MCzhJGMEQCIFqKI2oGm/fSIssTmmNufX2Se5DXO8SeQsp5Kfk3++bWAiAAgUWrXiKJAnJRGbO+76SoXZBVTLPdD2pPPH8fU/ZgkQ==", + "Cg8KABILCgkKAwECAxAEGAUSlQcKygYKrQYKCk9yZGVyZXJNU1ASngYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ0h6Q0NBY2FnQXdJQkFnSVJBTDRZTm41cnNNMGJPdzB2MFNIS3BJRXdDZ1lJS29aSXpqMEVBd0l3YVRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnQKY0d4bExtTnZiVEFlRncweU1EQTNNVGN4T0RFNU1EQmFGdzB6TURBM01UVXhPREU1TURCYU1Hc3hDekFKQmdOVgpCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wCmMyTnZNUkF3RGdZRFZRUUxFd2R2Y21SbGNtVnlNUjB3R3dZRFZRUURFeFJ2Y21SbGNtVnlNQzVsZUdGdGNHeGwKTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJObDhwRmwwQ1V6dVZpOS85K2R1ZHRzZwo3UUJKWExpSTErNWFWaVNlMVdNZ2JKRmJGTFU2Q1dnMXdqMlVnSktwcUdqbkgrTlVseWZjcmNhaTBvQnh1R0NqClRUQkxNQTRHQTFVZER3RUIvd1FFQXdJSGdEQU1CZ05WSFJNQkFmOEVBakFBTUNzR0ExVWRJd1FrTUNLQUlEQzIKa3ZyWGJteVVWbkFCNDFRQW1tTVNoM1NGYVdvQkxSY0Q0OWJRQmR3Tk1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQwpJRWNYakhNTFc5SDVLUERSbThOWnFqTnpRTTJsQTMveE1vOUhZR0xVdDFETkFpQWJWZjF4ZVhqenpLVXFFN2lICnBybUI1Q0E5SmpWNWFRZ2NIUlR1c2czSGl3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGMS00VRtZzWjgMyFzURaRBU6ACFXdAkTnBJGMEQCIESTt7gmXb8M0XydZYRShzy2jkT2yOLhHkcn80RLtBBJAiAEbOEB2mg4IqHg347gzaLQaeVbU2QzDI6obmaYpMRvPg==", "", "", "", diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json-flat.json b/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json-flat.json index 981daa35..92cec051 100644 --- a/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json-flat.json +++ b/hyperledger_fabric/latest/raft/channel-artifacts/testchainid_1.block.json-flat.json @@ -373,50 +373,50 @@ .data.data[0].payload.data.payload.data.last_update.payload.data.config_update.write_set.values.Consortium.value.name=SampleConsortium .data.data[0].payload.data.payload.data.last_update.payload.data.config_update.write_set.values.Consortium.version=0 .data.data[0].payload.data.payload.data.last_update.payload.data.config_update.write_set.version=0 -.data.data[0].payload.data.payload.data.last_update.payload.data.signatures[0].signature=MEUCIQDXOdgXyHgXM6sqibAuGi1CNMTD+o4Zy/RiZnkb6qv9SAIgHIZ/D7CvT8emrEEvw6DT0qPqkxcFnuD7c3ou0JsFdz8= +.data.data[0].payload.data.payload.data.last_update.payload.data.signatures[0].signature=MEQCIEhM2lXwMWkiHvgLTV4fzucmRFM3ndPf3LQm5+PKYq17AiAYbsnVxUn6qhQ15OuK2rlE48CsLa7szTD3Cncif6HMyA== .data.data[0].payload.data.payload.data.last_update.payload.data.signatures[0].signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.payload.data.last_update.payload.data.signatures[0].signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.payload.data.last_update.payload.data.signatures[0].signature_header.nonce=McNiQKZEFcOdr88NCDrvDZ94n3026Dpu +.data.data[0].payload.data.payload.data.last_update.payload.data.signatures[0].signature_header.nonce=BwKJAVK8lpbdGQ7mRSIiJKRYDuV6dBdI .data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.epoch=0 .data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.extension=None -.data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.timestamp=2020-12-07T20:41:25Z +.data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.timestamp=2021-03-03T21:48:10Z .data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.tx_id= .data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.type=2 .data.data[0].payload.data.payload.data.last_update.payload.header.channel_header.version=0 .data.data[0].payload.data.payload.data.last_update.payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.payload.data.last_update.payload.header.signature_header.creator.mspid=Org1MSP -.data.data[0].payload.data.payload.data.last_update.payload.header.signature_header.nonce=2dSe0bDcXj5kQjDVMQTR1c5vNktRQSTe -.data.data[0].payload.data.payload.data.last_update.signature=MEUCIQDBpNjy5Xz+sGpkpLuFcE3JnvF5qscUG54wRfK/fRoGiwIgS23cSRfXBF+bM5d7xwCY/TEMJ7MCX3mX59sSBEammA8= +.data.data[0].payload.data.payload.data.last_update.payload.header.signature_header.nonce=wqaYZPHSLWgfOtWlND+uEqpSvDe/k2+x +.data.data[0].payload.data.payload.data.last_update.signature=MEQCICr5YMzytULintH5LpvFkZntf9cYRv9ON+SXQ1Yrhs9NAiAPgI0zpgZ62moAdFeaBXsoKebFVT7IS3Vwb7IdJdaw1A== .data.data[0].payload.data.payload.header.channel_header.channel_id=businesschannel .data.data[0].payload.data.payload.header.channel_header.epoch=0 .data.data[0].payload.data.payload.header.channel_header.extension=None -.data.data[0].payload.data.payload.header.channel_header.timestamp=2020-12-07T20:41:25Z +.data.data[0].payload.data.payload.header.channel_header.timestamp=2021-03-03T21:48:10Z .data.data[0].payload.data.payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.data.payload.header.channel_header.tx_id= .data.data[0].payload.data.payload.header.channel_header.type=1 .data.data[0].payload.data.payload.header.channel_header.version=0 .data.data[0].payload.data.payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICHzCCAcagAwIBAgIRAL4YNn5rsM0bOw0v0SHKpIEwCgYIKoZIzj0EAwIwaTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt\ncGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBaMGsxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp\nc2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl\nLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNl8pFl0CUzuVi9/9+dudtsg\n7QBJXLiI1+5aViSe1WMgbJFbFLU6CWg1wj2UgJKpqGjnH+NUlyfcrcai0oBxuGCj\nTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDC2\nkvrXbmyUVnAB41QAmmMSh3SFaWoBLRcD49bQBdwNMAoGCCqGSM49BAMCA0cAMEQC\nIEcXjHMLW9H5KPDRm8NZqjNzQM2lA3/xMo9HYGLUt1DNAiAbVf1xeXjzzKUqE7iH\nprmB5CA9JjV5aQgcHRTusg3Hiw==\n-----END CERTIFICATE-----\n') .data.data[0].payload.data.payload.header.signature_header.creator.mspid=OrdererMSP -.data.data[0].payload.data.payload.header.signature_header.nonce=LW+Nh1InbFwwXduACfJDSD0+bGCcD9B8 -.data.data[0].payload.data.signature=MEQCIHNf4DL+Vc2MBdvyH7pfSb0++Khj9InMNGJPP/F5EW5aAiBH7L0VyAK/gF64G13kcyn5GCX41pZFQ6ktYxZiTU0Eow== +.data.data[0].payload.data.payload.header.signature_header.nonce=7bLWvAeppKBi+2lZ+X+wNae/Tjb3Zcmk +.data.data[0].payload.data.signature=MEQCIFw2ChNvqrHXXHHw6v2u6rsq8weNm3SdYYXEJWgoAOnAAiA9y+buRYS3MwiZ/+bHuzFNt3PqWU9S1Zsg4+OZGScwxA== .data.data[0].payload.header.channel_header.channel_id=testchainid .data.data[0].payload.header.channel_header.epoch=0 .data.data[0].payload.header.channel_header.extension=None -.data.data[0].payload.header.channel_header.timestamp=2020-12-07T20:41:25Z +.data.data[0].payload.header.channel_header.timestamp=2021-03-03T21:48:10Z .data.data[0].payload.header.channel_header.tls_cert_hash=None .data.data[0].payload.header.channel_header.tx_id= .data.data[0].payload.header.channel_header.type=4 .data.data[0].payload.header.channel_header.version=0 .data.data[0].payload.header.signature_header.creator.id_bytes=b64(b'-----BEGIN CERTIFICATE-----\nMIICHzCCAcagAwIBAgIRAL4YNn5rsM0bOw0v0SHKpIEwCgYIKoZIzj0EAwIwaTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt\ncGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBaMGsxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp\nc2NvMRAwDgYDVQQLEwdvcmRlcmVyMR0wGwYDVQQDExRvcmRlcmVyMC5leGFtcGxl\nLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNl8pFl0CUzuVi9/9+dudtsg\n7QBJXLiI1+5aViSe1WMgbJFbFLU6CWg1wj2UgJKpqGjnH+NUlyfcrcai0oBxuGCj\nTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIDC2\nkvrXbmyUVnAB41QAmmMSh3SFaWoBLRcD49bQBdwNMAoGCCqGSM49BAMCA0cAMEQC\nIEcXjHMLW9H5KPDRm8NZqjNzQM2lA3/xMo9HYGLUt1DNAiAbVf1xeXjzzKUqE7iH\nprmB5CA9JjV5aQgcHRTusg3Hiw==\n-----END CERTIFICATE-----\n') .data.data[0].payload.header.signature_header.creator.mspid=OrdererMSP -.data.data[0].payload.header.signature_header.nonce=GYw5RfuCds1bVYtW7aoaA73RDu/jLThb -.data.data[0].signature=MEUCIQDnIDg6cyhYwm1sxJTbPJIdctd3AysECky71wMZDKETvgIgA8pJlkvV2Sn+p7d237Y36oWIjZf3i/PCCXM30YvAekQ= -.header.data_hash=5ndFUI1kvPosX2TnBtHmVOaXKDE36xOVKUxfUkaO/as= +.data.data[0].payload.header.signature_header.nonce=OboZlrrLuxgC6liON+J7ZZ4a6jCzWBkq +.data.data[0].signature=MEUCIQDUvS+YxgGhAD67lZXtn8D2E5f3WLE8xC6y3b7+4RvwiQIgaRn9Bh8iF9J9IfERh9wf4GNyVyGksnUBJODDcCev8sQ= +.header.data_hash=MHmu3RYwyur+z6VdLADUckCWf9aPQGfPgBQgUfNM1Y0= .header.number=1 .header.previous_hash=6W5kLgUNCKdJdB8UECw8Wn4EBT+x5nQYo38cG7uFMUE= -.metadata.metadata[0]=Cg8KABILCgkKAwECAxAEGAUSlQcKygYKrQYKCk9yZGVyZXJNU1ASngYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ0h6Q0NBY2FnQXdJQkFnSVJBTDRZTm41cnNNMGJPdzB2MFNIS3BJRXdDZ1lJS29aSXpqMEVBd0l3YVRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnQKY0d4bExtTnZiVEFlRncweU1EQTNNVGN4T0RFNU1EQmFGdzB6TURBM01UVXhPREU1TURCYU1Hc3hDekFKQmdOVgpCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wCmMyTnZNUkF3RGdZRFZRUUxFd2R2Y21SbGNtVnlNUjB3R3dZRFZRUURFeFJ2Y21SbGNtVnlNQzVsZUdGdGNHeGwKTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJObDhwRmwwQ1V6dVZpOS85K2R1ZHRzZwo3UUJKWExpSTErNWFWaVNlMVdNZ2JKRmJGTFU2Q1dnMXdqMlVnSktwcUdqbkgrTlVseWZjcmNhaTBvQnh1R0NqClRUQkxNQTRHQTFVZER3RUIvd1FFQXdJSGdEQU1CZ05WSFJNQkFmOEVBakFBTUNzR0ExVWRJd1FrTUNLQUlEQzIKa3ZyWGJteVVWbkFCNDFRQW1tTVNoM1NGYVdvQkxSY0Q0OWJRQmR3Tk1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQwpJRWNYakhNTFc5SDVLUERSbThOWnFqTnpRTTJsQTMveE1vOUhZR0xVdDFETkFpQWJWZjF4ZVhqenpLVXFFN2lICnBybUI1Q0E5SmpWNWFRZ2NIUlR1c2czSGl3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGCc34dmjcR0u+slsvvrTEqLXSBnFY8MCzhJGMEQCIFqKI2oGm/fSIssTmmNufX2Se5DXO8SeQsp5Kfk3++bWAiAAgUWrXiKJAnJRGbO+76SoXZBVTLPdD2pPPH8fU/ZgkQ== +.metadata.metadata[0]=Cg8KABILCgkKAwECAxAEGAUSlQcKygYKrQYKCk9yZGVyZXJNU1ASngYtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJQ0h6Q0NBY2FnQXdJQkFnSVJBTDRZTm41cnNNMGJPdzB2MFNIS3BJRXdDZ1lJS29aSXpqMEVBd0l3YVRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnQKY0d4bExtTnZiVEFlRncweU1EQTNNVGN4T0RFNU1EQmFGdzB6TURBM01UVXhPREU1TURCYU1Hc3hDekFKQmdOVgpCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wCmMyTnZNUkF3RGdZRFZRUUxFd2R2Y21SbGNtVnlNUjB3R3dZRFZRUURFeFJ2Y21SbGNtVnlNQzVsZUdGdGNHeGwKTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJObDhwRmwwQ1V6dVZpOS85K2R1ZHRzZwo3UUJKWExpSTErNWFWaVNlMVdNZ2JKRmJGTFU2Q1dnMXdqMlVnSktwcUdqbkgrTlVseWZjcmNhaTBvQnh1R0NqClRUQkxNQTRHQTFVZER3RUIvd1FFQXdJSGdEQU1CZ05WSFJNQkFmOEVBakFBTUNzR0ExVWRJd1FrTUNLQUlEQzIKa3ZyWGJteVVWbkFCNDFRQW1tTVNoM1NGYVdvQkxSY0Q0OWJRQmR3Tk1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQwpJRWNYakhNTFc5SDVLUERSbThOWnFqTnpRTTJsQTMveE1vOUhZR0xVdDFETkFpQWJWZjF4ZVhqenpLVXFFN2lICnBybUI1Q0E5SmpWNWFRZ2NIUlR1c2czSGl3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGMS00VRtZzWjgMyFzURaRBU6ACFXdAkTnBJGMEQCIESTt7gmXb8M0XydZYRShzy2jkT2yOLhHkcn80RLtBBJAiAEbOEB2mg4IqHg347gzaLQaeVbU2QzDI6obmaYpMRvPg== .metadata.metadata[1]= .metadata.metadata[2]= .metadata.metadata[3]= diff --git a/hyperledger_fabric/latest/raft/channel-artifacts/updated_config.pb b/hyperledger_fabric/latest/raft/channel-artifacts/updated_config.pb index 8aaed06e..ad6015e7 100644 Binary files a/hyperledger_fabric/latest/raft/channel-artifacts/updated_config.pb and b/hyperledger_fabric/latest/raft/channel-artifacts/updated_config.pb differ diff --git a/hyperledger_fabric/latest/scripts/func.sh b/hyperledger_fabric/latest/scripts/func.sh index 4c982866..1781c83c 100644 --- a/hyperledger_fabric/latest/scripts/func.sh +++ b/hyperledger_fabric/latest/scripts/func.sh @@ -1,47 +1,47 @@ #!/usr/bin/env bash -echo_r () { - [ $# -ne 1 ] && return 0 - echo -e "\033[31m$1\033[0m" +echo_r() { + [ $# -ne 1 ] && return 0 + echo -e "\033[31m$1\033[0m" } -echo_g () { - [ $# -ne 1 ] && return 0 - echo -e "\033[32m$1\033[0m" +echo_g() { + [ $# -ne 1 ] && return 0 + echo -e "\033[32m$1\033[0m" } -echo_y () { - [ $# -ne 1 ] && return 0 - echo -e "\033[33m$1\033[0m" +echo_y() { + [ $# -ne 1 ] && return 0 + echo -e "\033[33m$1\033[0m" } -echo_b () { - [ $# -ne 1 ] && return 0 - echo -e "\033[34m$1\033[0m" +echo_b() { + [ $# -ne 1 ] && return 0 + echo -e "\033[34m$1\033[0m" } # Define those global variables if [ -f ./variables.sh ]; then - source ./variables.sh + source ./variables.sh elif [ -f scripts/variables.sh ]; then - source scripts/variables.sh + source scripts/variables.sh else - echo_r "Cannot find the variables.sh files, pls check" - exit 1 + echo_r "Cannot find the variables.sh files, pls check" + exit 1 fi # Verify $1 is not 0, then output error msg $2 and exit -verifyResult () { - if [ $1 -ne 0 ] ; then - echo "$2" - echo_r "=== ERROR !!! FAILED to execute End-2-End Scenario ===" - exit 1 - fi +verifyResult() { + if [ $1 -ne 0 ]; then + echo "$2" + echo_r "=== ERROR !!! FAILED to execute End-2-End Scenario ===" + exit 1 + fi } # set env to use orderOrg's identity -setOrdererEnvs () { - export CORE_PEER_LOCALMSPID="OrdererMSP" - export CORE_PEER_MSPCONFIGPATH=${ORDERER0_ADMIN_MSP} - export CORE_PEER_TLS_ROOTCERT_FILE=${ORDERER0_TLS_ROOTCERT} - #t="\${ORG${org}_PEER${peer}_URL}" && CORE_PEER_ADDRESS=`eval echo $t` +setOrdererEnvs() { + export CORE_PEER_LOCALMSPID="OrdererMSP" + export CORE_PEER_MSPCONFIGPATH=${ORDERER0_ADMIN_MSP} + export CORE_PEER_TLS_ROOTCERT_FILE=${ORDERER0_TLS_ROOTCERT} + #t="\${ORG${org}_PEER${peer}_URL}" && CORE_PEER_ADDRESS=`eval echo $t` } # Set global env variables for fabric cli, after setting: @@ -55,1009 +55,1049 @@ setOrdererEnvs () { # CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # remote peer to send proposal to # Usage: setEnvs org peer -setEnvs () { - local org=$1 # 1 or 2 - local peer=$2 # 0 or 1 - [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 +setEnvs() { + local org=$1 # 1 or 2 + local peer=$2 # 0 or 1 + [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - local t="" - export CORE_PEER_LOCALMSPID="Org${org}MSP" - #CORE_PEER_MSPCONFIGPATH=\$${ORG${org}_ADMIN_MSP} - t="\${ORG${org}_PEER${peer}_URL}" && export CORE_PEER_ADDRESS=`eval echo $t` - t="\${ORG${org}_ADMIN_MSP}" && export CORE_PEER_MSPCONFIGPATH=`eval echo $t` - t="\${ORG${org}_PEER${peer}_TLS_ROOTCERT}" && export CORE_PEER_TLS_ROOTCERT_FILE=`eval echo $t` + local t="" + export CORE_PEER_LOCALMSPID="Org${org}MSP" + #CORE_PEER_MSPCONFIGPATH=\$${ORG${org}_ADMIN_MSP} + t="\${ORG${org}_PEER${peer}_URL}" && export CORE_PEER_ADDRESS=$(eval echo $t) # this is not needed if specifying peerAddresses + t="\${ORG${org}_ADMIN_MSP}" && export CORE_PEER_MSPCONFIGPATH=$(eval echo $t) + t="\${ORG${org}_PEER${peer}_TLS_ROOTCERT}" && export CORE_PEER_TLS_ROOTCERT_FILE=$(eval echo $t) - #env |grep CORE - export FABRIC_LOGGING_SPEC="INFO" - #export GOCACHE=/root/.cache/go-build - #go get + #env |grep CORE + export FABRIC_LOGGING_SPEC="INFO" + #export GOCACHE=/root/.cache/go-build + #go get } # Internal func called by channelCreate # channelCreateAction channel tx orderer_url orderer_tls_rootcert -channelCreateAction(){ - local channel=$1 - local channel_tx=$2 - local orderer_url=$3 - local orderer_tls_rootcert=$4 +channelCreateAction() { + local channel=$1 + local channel_tx=$2 + local orderer_url=$3 + local orderer_tls_rootcert=$4 - if [ -z "$CORE_PEER_TLS_ENABLED" ] || [ "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer channel create \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ - --timeout "${TIMEOUT}s" - else - peer channel create \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ - --timeout "${TIMEOUT}s" \ - --tls \ - --cafile ${orderer_tls_rootcert} - fi - return $? + if [ -z "$CORE_PEER_TLS_ENABLED" ] || [ "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ + --timeout "${TIMEOUT}s" + else + peer channel create \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ + --timeout "${TIMEOUT}s" \ + --tls \ + --cafile ${orderer_tls_rootcert} + fi + return $? } # Use peer0/org1's identity to create a channel # channelCreate APP_CHANNEL APP_CHANNEL.tx org peer orderer_url orderer_tls_rootcert channelCreate() { - local channel=$1 - local tx=$2 - local org=$3 - local peer=$4 - local orderer_url=$5 - local orderer_tls_rootcert=$6 + local channel=$1 + local tx=$2 + local org=$3 + local peer=$4 + local orderer_url=$5 + local orderer_tls_rootcert=$6 - [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 + [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - echo "=== Create Channel ${channel} by org $org/peer $peer === " - setEnvs $org $peer - local rc=1 - local counter=0 - while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do - channelCreateAction ${channel} ${tx} ${orderer_url} ${orderer_tls_rootcert} - rc=$? - let counter=${counter}+1 - #COUNTER=` expr $COUNTER + 1` - [ $rc -ne 0 ] && echo "Failed to create channel $channel, retry after 5s" && sleep 5 - done - [ $rc -ne 0 ] && cat log.txt - verifyResult ${rc} "Channel ${channel} creation failed" - echo "=== Channel ${channel} is created. === " + echo "=== Create Channel ${channel} by org $org/peer $peer === " + setEnvs $org $peer + local rc=1 + local counter=0 + while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do + channelCreateAction ${channel} ${tx} ${orderer_url} ${orderer_tls_rootcert} + rc=$? + let counter=${counter}+1 + #COUNTER=` expr $COUNTER + 1` + [ $rc -ne 0 ] && echo "Failed to create channel $channel, retry after 5s" && sleep 5 + done + [ $rc -ne 0 ] && cat log.txt + verifyResult ${rc} "Channel ${channel} creation failed" + echo "=== Channel ${channel} is created. === " } # called by channelJoinWithRetry -channelJoinAction () { - local channel=$1 - peer channel join \ - -b ${channel}.block \ - >&log.txt +channelJoinAction() { + local channel=$1 + peer channel join \ + -b ${channel}.block \ + >&log.txt } ## Sometimes Join takes time hence RETRY atleast for 5 times -channelJoinWithRetry () { - local channel=$1 - local peer=$2 - local counter=0 - channelJoinAction ${channel} - local rc=$? - while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do - echo "peer${peer} failed to join channel ${channel}, retry after 2s" - sleep 2 - channelJoinAction ${channel} - rc=$? - let counter=${counter}+1 - done - [ $rc -ne 0 ] && cat log.txt +channelJoinWithRetry() { + local channel=$1 + local peer=$2 + local counter=0 + channelJoinAction ${channel} + local rc=$? + while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do + echo "peer${peer} failed to join channel ${channel}, retry after 2s" + sleep 2 + channelJoinAction ${channel} + rc=$? + let counter=${counter}+1 + done + [ $rc -ne 0 ] && cat log.txt verifyResult ${rc} "After $MAX_RETRY attempts, peer${peer} failed to Join the Channel" } # Join given (by default all) peers into the channel # channelJoin channel org peer -channelJoin () { - local channel=$1 - local org=$2 - local peer=$3 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 +channelJoin() { + local channel=$1 + local org=$2 + local peer=$3 + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - echo "=== Join org $org/peer $peer into channel ${channel} === " - setEnvs $org $peer - channelJoinWithRetry ${channel} $peer - echo "=== org $org/peer $peer joined into channel ${channel} === " + echo "=== Join org $org/peer $peer into channel ${channel} === " + setEnvs $org $peer + channelJoinWithRetry ${channel} $peer + echo "=== org $org/peer $peer joined into channel ${channel} === " } -getShaSum () { - [ ! $# -eq 1 ] && exit 1 - shasum ${1} | awk '{print $1}' +getShaSum() { + [ ! $# -eq 1 ] && exit 1 + shasum ${1} | awk '{print $1}' } # List the channel that the peer joined # E.g., for peer 0 at org 1, will do # channelList 1 0 -channelList () { - local org=$1 - local peer=$2 - echo "=== List the channels that org${org}/peer${peer} joined === " +channelList() { + local org=$1 + local peer=$2 + echo "=== List the channels that org${org}/peer${peer} joined === " - setEnvs $org $peer + setEnvs $org $peer - peer channel list >&log.txt - rc=$? - [ $rc -ne 0 ] && cat log.txt - if [ $rc -ne 0 ]; then - echo "=== Failed to list the channels that org${org}/peer${peer} joined === " - else - echo "=== Done to list the channels that org${org}/peer${peer} joined === " - fi + peer channel list >&log.txt + rc=$? + [ $rc -ne 0 ] && cat log.txt + if [ $rc -ne 0 ]; then + echo "=== Failed to list the channels that org${org}/peer${peer} joined === " + else + echo "=== Done to list the channels that org${org}/peer${peer} joined === " + fi } # Get the info of specific channel, including {height, currentBlockHash, previousBlockHash}. # E.g., for peer 0 at org 1, get info of business channel will do # channelGetInfo businesschannel 1 0 -channelGetInfo () { - local channel=$1 - local org=$2 - local peer=$3 - echo "=== Get channel info (height, currentBlockHash, previousBlockHash) of ${channel} with id of org${org}/peer${peer} === " +channelGetInfo() { + local channel=$1 + local org=$2 + local peer=$3 + echo "=== Get channel info (height, currentBlockHash, previousBlockHash) of ${channel} with id of org${org}/peer${peer} === " - setEnvs $org $peer + setEnvs $org $peer - peer channel getinfo -c ${channel} >&log.txt - rc=$? - cat log.txt - if [ $rc -ne 0 ]; then - echo "=== Fail to get channel info of ${channel} with id of org${org}/peer${peer} === " - else - echo "=== Done to get channel info of ${channel} with id of org${org}/peer${peer} === " - fi + peer channel getinfo -c ${channel} >&log.txt + rc=$? + cat log.txt + if [ $rc -ne 0 ]; then + echo "=== Fail to get channel info of ${channel} with id of org${org}/peer${peer} === " + else + echo "=== Done to get channel info of ${channel} with id of org${org}/peer${peer} === " + fi } # Fetch all blocks for a channel # Usage: channelFetchAll channel org peer orderer_url orderer_tls_rootcert -channelFetchAll () { - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 +channelFetchAll() { + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 - echo "=== Fetch all block for channel $channel === " + echo "=== Fetch all block for channel $channel === " - local block_file=/tmp/${channel}_newest.block - channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "newest" ${block_file} - [ $? -ne 0 ] && exit 1 - newest_block_shasum=$(getShaSum ${block_file}) - echo "fetch newest block ${block_file} with shasum=${newest_block_shasum}" + local block_file=/tmp/${channel}_newest.block + channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "newest" ${block_file} + [ $? -ne 0 ] && exit 1 + newest_block_shasum=$(getShaSum ${block_file}) + echo "fetch newest block ${block_file} with shasum=${newest_block_shasum}" - block_file=${CHANNEL_ARTIFACTS}/${channel}_config.block - channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "config" ${block_file} - [ $? -ne 0 ] && exit 1 - echo "fetch config block ${block_file}" + block_file=${CHANNEL_ARTIFACTS}/${channel}_config.block + channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "config" ${block_file} + [ $? -ne 0 ] && exit 1 + echo "fetch config block ${block_file}" - for i in $(seq 0 16); do # we at most fetch 16 blocks - block_file=${CHANNEL_ARTIFACTS}/${channel}_${i}.block - channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} $i ${block_file} - [ $? -ne 0 ] && exit 1 - [ -f $block_file ] || break - echo "fetch block $i and saved into ${block_file}" - block_shasum=$(getShaSum ${block_file}) - [ ${block_shasum} = ${newest_block_shasum} ] && { echo "Block $i is the last one for channel $channel"; break; } - done + for i in $(# we at most fetch 16 blocks + seq 0 16 + ); do + block_file=${CHANNEL_ARTIFACTS}/${channel}_${i}.block + channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} $i ${block_file} + [ $? -ne 0 ] && exit 1 + [ -f $block_file ] || break + echo "fetch block $i and saved into ${block_file}" + block_shasum=$(getShaSum ${block_file}) + [ ${block_shasum} = ${newest_block_shasum} ] && { + echo "Block $i is the last one for channel $channel" + break + } + done } # Fetch some block from a given channel # channelFetch channel org peer orderer_url blockNum block_file -channelFetch () { - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 - local num=$6 - local block_file=$7 - echo "=== Fetch block $num of channel $channel === " +channelFetch() { + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 + local num=$6 + local block_file=$7 + echo "=== Fetch block $num of channel $channel === " - #setEnvs $org $peer - setOrdererEnvs # system channel required id from ordererOrg - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "${CORE_PEER_TLS_ENABLED}" ] || [ "${CORE_PEER_TLS_ENABLED}" = "false" ]; then - peer channel fetch $num ${block_file} \ - -o ${orderer_url} \ - -c ${channel} \ - >&log.txt - else - peer channel fetch $num ${block_file} \ - -o ${orderer_url} \ - -c ${channel} \ - --tls \ - --cafile ${orderer_tls_rootcert} \ - >&log.txt - fi - if [ $? -ne 0 ]; then - cat log.txt - echo_r "Fetch block $num of channel $channel failed" - return 1 - else - echo "=== Fetch block $num of channel $channel OK === " - return 0 - fi + #setEnvs $org $peer + setOrdererEnvs # system channel required id from ordererOrg + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "${CORE_PEER_TLS_ENABLED}" ] || [ "${CORE_PEER_TLS_ENABLED}" = "false" ]; then + peer channel fetch $num ${block_file} \ + -o ${orderer_url} \ + -c ${channel} \ + >&log.txt + else + peer channel fetch $num ${block_file} \ + -o ${orderer_url} \ + -c ${channel} \ + --tls \ + --cafile ${orderer_tls_rootcert} \ + >&log.txt + fi + if [ $? -ne 0 ]; then + cat log.txt + echo_r "Fetch block $num of channel $channel failed" + return 1 + else + echo "=== Fetch block $num of channel $channel OK === " + return 0 + fi } # Sign a channel config tx # Usage: channelSignConfigTx channel org peer transaction -channelSignConfigTx () { - local channel=$1 - local org=$2 - local peer=$3 - local tx=$4 - [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - echo "=== Sign channel config tx $tx for channel $channel by org $org/peer $peer === " - [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { echo_r "${tx} not exist"; exit 1; } +channelSignConfigTx() { + local channel=$1 + local org=$2 + local peer=$3 + local tx=$4 + [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 + echo "=== Sign channel config tx $tx for channel $channel by org $org/peer $peer === " + [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { + echo_r "${tx} not exist" + exit 1 + } - setEnvs $org $peer + setEnvs $org $peer - peer channel signconfigtx -f ${CHANNEL_ARTIFACTS}/${tx} >&log.txt - rc=$? - [ $rc -ne 0 ] && cat log.txt - if [ $rc -ne 0 ]; then - echo_r "Sign channel config tx for channel $channel by org $org/peer $peer failed" - else - echo "=== Sign channel config tx channel $channel by org $org/peer $peer is successful === " - fi + peer channel signconfigtx -f ${CHANNEL_ARTIFACTS}/${tx} >&log.txt + rc=$? + [ $rc -ne 0 ] && cat log.txt + if [ $rc -ne 0 ]; then + echo_r "Sign channel config tx for channel $channel by org $org/peer $peer failed" + else + echo "=== Sign channel config tx channel $channel by org $org/peer $peer is successful === " + fi } # Update a channel config # Usage: channelUpdate channel org peer orderer_url orderer_tls_rootcert transaction_file channelUpdate() { - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 - local tx=$6 - [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 + local tx=$6 + [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - setEnvs $org $peer - echo "=== Update config on channel ${channel} === " - [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { echo_r "${tx} not exist"; exit 1; } - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer channel update \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${tx} \ - >&log.txt - else - peer channel update \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${tx} \ - --tls \ - --cafile ${orderer_tls_rootcert} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "peer channel update failed" - echo "=== Channel ${channel} is updated. === " - sleep 2 + setEnvs $org $peer + echo "=== Update config on channel ${channel} === " + [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { + echo_r "${tx} not exist" + exit 1 + } + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel update \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${tx} \ + >&log.txt + else + peer channel update \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${tx} \ + --tls \ + --cafile ${orderer_tls_rootcert} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "peer channel update failed" + echo "=== Channel ${channel} is updated. === " + sleep 2 } # Install chaincode on the peer node # In v2.x it will package, install and approve # chaincodeInstall peer cc_name version cc_path [lang] -chaincodeInstall () { - if [ "$#" -ne 7 ]; then - echo_r "Wrong param number for chaincode install" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local name=$5 - local version=$6 - local cc_path=$7 +chaincodeInstall() { + if [ "$#" -ne 7 ]; then + echo_r "Wrong param number for chaincode install" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local cc_name=$5 + local version=$6 + local cc_path=$7 - [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $version ] && [ -z $cc_path ] && echo_r "input param invalid" && exit -1 - echo "=== Install Chaincode on org ${org}/peer ${peer} === " - echo "name=${name}, version=${version}, path=${cc_path}" - setEnvs $org $peer - echo "packaging chaincode into tar.gz package" - local label=${name} - #local label=${name}_${version} + [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $version ] && [ -z $cc_path ] && echo_r "input param invalid" && exit -1 + echo "=== Install Chaincode on org ${org}/peer ${peer} === " + echo "cc_name=${cc_name}, version=${version}, path=${cc_path}" + setEnvs $org $peer + echo "packaging chaincode into tar.gz package" + local label=${cc_name} + #local label=${cc_name}_${version} - echo "packaging chaincode ${name} with path ${cc_path} and label ${label}" - peer lifecycle chaincode package ${name}.tar.gz \ + echo "packaging chaincode ${cc_name} with path ${cc_path} and label ${label}" + peer lifecycle chaincode package ${cc_name}.tar.gz \ --path ${cc_path} \ --lang golang \ --label ${label} - rc=$? - [ $rc -ne 0 ] && echo "Error in packaging chaincode ${name}" && exit -1 + rc=$? + [ $rc -ne 0 ] && echo "Error in packaging chaincode ${cc_name}" && exit -1 - # v1.x action - #peer chaincode install \ - # -n ${name} \ - # -v $version \ - # -p ${cc_path} \ - # >&log.txt + # v1.x action + #peer chaincode install \ + # -n ${cc_name} \ + # -v $version \ + # -p ${cc_path} \ + # >&log.txt - echo "installing chaincode to peer${peer}/org${org}" - peer lifecycle chaincode install \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - ${name}.tar.gz | tee >&log.txt - rc=$? - [ $rc -ne 0 ] && cat log.txt + echo "installing chaincode to peer${peer}/org${org}" + peer lifecycle chaincode install \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + ${cc_name}.tar.gz | tee >&log.txt + rc=$? + [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode installation on remote org ${org}/peer$peer has Failed" - echo "=== Chaincode is installed on org ${org}/peer $peer === " + verifyResult $rc "Chaincode installation on remote org ${org}/peer$peer has Failed" + echo "=== Chaincode is installed on org ${org}/peer $peer === " } # Query the installed chaincode # chaincodeQueryCommitted org peer peer_url peer_tls_root_cert -chaincodeQueryInstalled () { - if [ "$#" -ne 4 ]; then - echo_r "Wrong param number for chaincode query installed" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 +chaincodeQueryInstalled() { + if [ "$#" -ne 4 ]; then + echo_r "Wrong param number for chaincode query installed" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 - setEnvs $org $peer + setEnvs $org $peer - echo "Query the installed chaincode on peer $peer at $peer_url " - peer lifecycle chaincode queryinstalled \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --output json \ - --connTimeout "3s" - rc=$? - [ $rc -ne 0 ] && cat log.txt - cat log.txt - verifyResult $rc "ChaincodeQueryInstalled Failed: org ${org}/peer$peer" + echo "Query the installed chaincode on peer $peer at $peer_url " + peer lifecycle chaincode queryinstalled \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --output json \ + --connTimeout "3s" + rc=$? + [ $rc -ne 0 ] && cat log.txt + cat log.txt + verifyResult $rc "ChaincodeQueryInstalled Failed: org ${org}/peer$peer" } # Get the installed chaincode packages # chaincodeGetCommitted org peer peer_url peer_tls_root_cert cc_name -chaincodeGetInstalled () { - if [ "$#" -ne 5 ]; then - echo_r "Wrong param number for chaincode get installed" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local cc_name=$5 +chaincodeGetInstalled() { + if [ "$#" -ne 5 ]; then + echo_r "Wrong param number for chaincode get installed" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local cc_name=$5 - setEnvs $org $peer - echo "querying installed chaincode and get its package id" - peer lifecycle chaincode queryinstalled >&query.log - local label=${cc_name} - #package_id=$(grep -o "${name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) - package_id=$(grep -o "${label}:[a-z0-9]*" query.log) + setEnvs $org $peer + echo "querying installed chaincode and get its package id" + peer lifecycle chaincode queryinstalled >&query.log + local label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + package_id=$(grep -o "${label}:[a-z0-9]*" query.log) - echo "Get the installed chaincode package with id= ${package_id} on peer $peer at $peer_url " - peer lifecycle chaincode getinstalledpackage \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --package-id ${package_id} \ - --output-directory ./ \ - --output json \ - --connTimeout "3s" - rc=$? - [ $rc -ne 0 ] && cat log.txt - cat log.txt - verifyResult $rc "ChaincodeGetInstalled Failed: org ${org}/peer$peer" + echo "Get the installed chaincode package with id= ${package_id} on peer $peer at $peer_url " + peer lifecycle chaincode getinstalledpackage \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --package-id ${package_id} \ + --output-directory ./ \ + --output json \ + --connTimeout "3s" + rc=$? + [ $rc -ne 0 ] && cat log.txt + cat log.txt + verifyResult $rc "ChaincodeGetInstalled Failed: org ${org}/peer$peer" } - # Approve the chaincode definition -# chaincodeApproveForMyOrg channel org peer peer_url peer_tls_root_cert orderer_url orderer_tls_rootcert channel name version -chaincodeApproveForMyOrg () { - if [ "$#" -ne 9 -a "$#" -ne 11 ]; then - echo_r "Wrong param number for chaincode approve" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local orderer_url=$5 - local orderer_tls_rootcert=$6 - local channel=$7 - local name=$8 - local version=$9 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +# chaincodeApproveForMyOrg channel org peer peer_url peer_tls_root_cert orderer_url orderer_tls_rootcert channel cc_name version +chaincodeApproveForMyOrg() { + if [ "$#" -ne 9 -a "$#" -ne 11 ]; then + echo_r "Wrong param number for chaincode approve" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local orderer_url=$5 + local orderer_tls_rootcert=$6 + local channel=$7 + local cc_name=$8 + local version=$9 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - if [ ! -z "${10}" ]; then - collection_config=${10} - fi + if [ ! -z "${10}" ]; then + collection_config=${10} + fi - if [ ! -z "${11}" ]; then - policy=${12} - fi + if [ ! -z "${11}" ]; then + policy=${12} + fi - setEnvs $org $peer - echo "querying installed chaincode and get its package id" - peer lifecycle chaincode queryinstalled >&query.log - cat query.log - local label=${name} - #package_id=$(grep -o "${name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) - package_id=$(grep -o "${label}:[a-z0-9]*" query.log) - echo "Approve package id=${package_id} by Org ${org}/Peer ${peer}" + setEnvs $org $peer + echo "querying installed chaincode and get its package id" + peer lifecycle chaincode queryinstalled >&query.log + cat query.log + local label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + package_id=$(grep -o "${label}:[a-z0-9]*" query.log) + echo "Approve package id=${package_id} by Org ${org}/Peer ${peer}" - # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer lifecycle chaincode approveformyorg \ - --peerAddresses ${peer_url} \ - --channelID ${channel} \ - --name ${name} \ - --version ${version} \ - --init-required \ - --package-id ${package_id} \ - --sequence 1 \ - --signature-policy "${policy}" \ - --waitForEvent \ - --orderer ${orderer_url} >&log.txt - else - peer lifecycle chaincode approveformyorg \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --channelID ${channel} \ - --name ${name} \ - --version ${version} \ - --init-required \ - --package-id ${package_id} \ - --sequence 1 \ - --signature-policy "${policy}" \ - --waitForEvent \ - --orderer ${orderer_url} \ - --tls true \ - --cafile ${orderer_tls_rootcert} >&log.txt - fi + # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer lifecycle chaincode approveformyorg \ + --peerAddresses ${peer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --package-id ${package_id} \ + --sequence 1 \ + --signature-policy "${policy}" \ + --waitForEvent \ + --orderer ${orderer_url} >&log.txt + else + peer lifecycle chaincode approveformyorg \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --package-id ${package_id} \ + --sequence 1 \ + --signature-policy "${policy}" \ + --waitForEvent \ + --orderer ${orderer_url} \ + --tls true \ + --cafile ${orderer_tls_rootcert} >&log.txt + fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode Approval on remote org ${org}/peer$peer has Failed" - echo "=== Chaincode is approved on remote peer$peer === " + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode Approval on remote org ${org}/peer$peer has Failed" + echo "=== Chaincode is approved on remote peer$peer === " } -# Query the Approve the chaincode definition -# chaincodeCheckCommitReadiness channel org peer name version sequence -chaincodeCheckCommitReadiness () { - if [ "$#" -ne 8 ]; then - echo_r "Wrong param number for chaincode queryapproval" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local channel=$5 - local name=$6 - local version=$7 - local sequence=$8 +# Query the Approved chaincode definition +# chaincodeQueryApproved org peer peer_url peer_tls_root_cert channel cc_name +chaincodeQueryApproved() { + if [ "$#" -ne 6 ]; then + echo_r "Wrong param number for chaincode queryapproved" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local channel=$5 + local cc_name=$6 - setEnvs $org $peer + setEnvs $org $peer - echo "checkcommitreadiness with chaincode $name $version $sequence" - peer lifecycle chaincode checkcommitreadiness \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --channelID ${channel} \ - --name ${name} \ - --output json \ - --version ${version} \ - --sequence ${sequence} + echo "Query the approved chaincode definition of $cc_name with ${peer_url} " + env | grep CORE_PEER + peer lifecycle chaincode queryapproved \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --name ${cc_name} \ + --output json - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "ChaincodeQueryApproval Failed: org ${org}/peer$peer" + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeQueryApproved Failed: org ${org}/peer$peer" +} + +# Check the commitReadiness of the chaincode definition +# chaincodeCheckCommitReadiness channel org peer cc_name version sequence +chaincodeCheckCommitReadiness() { + if [ "$#" -ne 8 ]; then + echo_r "Wrong param number for chaincode queryapproval" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local channel=$5 + local cc_name=$6 + local version=$7 + local sequence=$8 + + setEnvs $org $peer + + echo "checkcommitreadiness with chaincode $cc_name $version $sequence" + peer lifecycle chaincode checkcommitreadiness \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --name ${cc_name} \ + --output json \ + --version ${version} \ + --sequence ${sequence} + + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeQueryApproval Failed: org ${org}/peer$peer" } # Anyone can commit the chaincode definition once it's approved by major -# chaincodeCommit org peer channel orderer_url orderer_tls_rootcert name version [collection-config] [endorse-policy] -chaincodeCommit () { - if [ "$#" -ne 7 -a "$#" -ne 9 ]; then - echo_r "Wrong param number for chaincode commit" - exit -1 - fi - local org=$1 - local peer=$2 - local channel=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 - local name=$6 - local version=$7 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +# chaincodeCommit org peer channel orderer_url orderer_tls_rootcert cc_name version [collection-config] [endorse-policy] +chaincodeCommit() { + if [ "$#" -ne 7 -a "$#" -ne 9 ]; then + echo_r "Wrong param number for chaincode commit" + exit -1 + fi + local org=$1 + local peer=$2 + local channel=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 + local cc_name=$6 + local version=$7 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - if [ ! -z "$8" ]; then - collection_config=$8 - fi + if [ ! -z "$8" ]; then + collection_config=$8 + fi - if [ ! -z "$9" ]; then - policy=$9 # chaincode endorsement policy - fi + if [ ! -z "$9" ]; then + policy=$9 # chaincode endorsement policy + fi - setEnvs $org $peer - echo "querying installed chaincode and get its package id" - peer lifecycle chaincode queryinstalled >&query.log - label=${name} - #package_id=$(grep -o "${name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) - package_id=$(grep -o "${label}:[a-z0-9]*" query.log) - echo "package_id=${package_id}" + setEnvs $org $peer + echo "querying installed chaincode and get its package id" + peer lifecycle chaincode queryinstalled >&query.log + label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + package_id=$(grep -o "${label}:[a-z0-9]*" query.log) + echo "package_id=${package_id}" - echo "Committing package id=${package_id} by Org ${org}/Peer ${peer}" - # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer lifecycle chaincode commit \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${name} \ - --version ${version} \ - --init-required \ - --sequence 1 \ - --peerAddresses ${ORG1_PEER0_URL} \ + echo "Committing package id=${package_id} by Org ${org}/Peer ${peer}" + # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer lifecycle chaincode commit \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --sequence 1 \ + --peerAddresses ${ORG1_PEER0_URL} \ --tlsRootCertFiles ${ORG1_PEER0_TLS_ROOTCERT} \ --peerAddresses ${ORG2_PEER0_URL} \ --tlsRootCertFiles ${ORG2_PEER0_TLS_ROOTCERT} \ - --waitForEvent \ - --collections-config "${collection_config}" \ - --signature-policy "${policy}" - else - peer lifecycle chaincode commit \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${name} \ - --version ${version} \ - --init-required \ - --sequence 1 \ - --peerAddresses ${ORG1_PEER0_URL} \ + --waitForEvent \ + --collections-config "${collection_config}" \ + --signature-policy "${policy}" + else + peer lifecycle chaincode commit \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --sequence 1 \ + --peerAddresses ${ORG1_PEER0_URL} \ --tlsRootCertFiles ${ORG1_PEER0_TLS_ROOTCERT} \ --peerAddresses ${ORG2_PEER0_URL} \ --tlsRootCertFiles ${ORG2_PEER0_TLS_ROOTCERT} \ - --waitForEvent \ - --collections-config "${collection_config}" \ - --signature-policy "${policy}" \ - --tls true \ - --cafile ${orderer_tls_rootcert} >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode Commit on remote org ${org}/peer$peer has Failed" - echo "=== Chaincode is committed on channel $channel === " + --waitForEvent \ + --collections-config "${collection_config}" \ + --signature-policy "${policy}" \ + --tls true \ + --cafile ${orderer_tls_rootcert} >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode Commit on remote org ${org}/peer$peer has Failed" + echo "=== Chaincode is committed on channel $channel === " } # Query the Commit the chaincode definition # chaincodeQueryCommitted org peer peer_url peer_tls_root_cert channel cc_name -chaincodeQueryCommitted () { - if [ "$#" -ne 6 ]; then - echo_r "Wrong param number for chaincode querycommit" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local channel=$5 - local name=$6 +chaincodeQueryCommitted() { + if [ "$#" -ne 6 ]; then + echo_r "Wrong param number for chaincode querycommit" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local channel=$5 + local cc_name=$6 - setEnvs $org $peer + setEnvs $org $peer - echo "Query the committed status of chaincode $name with ${ORG1_PEER0_URL} " - peer lifecycle chaincode querycommitted \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --channelID ${channel} \ - --output json \ - --name ${name} + echo "Query the committed status of chaincode $cc_name with ${peer_url} " + peer lifecycle chaincode querycommitted \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --output json \ + --name ${cc_name} - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "ChaincodeQueryCommit Failed: org ${org}/peer$peer" + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeQueryCommit Failed: org ${org}/peer$peer" } # Instantiate chaincode on specifized peer node -# chaincodeInstantiate channel org peer orderer_url name version args -chaincodeInstantiate () { - if [ "$#" -gt 9 -a "$#" -lt 7 ]; then - echo_r "Wrong param number for chaincode instantaite" - exit -1 - fi - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local name=$5 - local version=$6 - local args=$7 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +# chaincodeInstantiate channel org peer orderer_url cc_name version args +chaincodeInstantiate() { + if [ "$#" -gt 9 -a "$#" -lt 7 ]; then + echo_r "Wrong param number for chaincode instantaite" + exit -1 + fi + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local cc_name=$5 + local version=$6 + local args=$7 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - if [ ! -z "$8" ]; then - collection_config=$8 - fi + if [ ! -z "$8" ]; then + collection_config=$8 + fi - if [ ! -z "$9" ]; then - policy=$9 - fi + if [ ! -z "$9" ]; then + policy=$9 + fi - setEnvs $org $peer - echo "=== chaincodeInstantiate for channel ${channel} on org $org/peer $peer ====" - echo "name=${name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode instantiate \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - >&log.txt - else - peer chaincode instantiate \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - --tls \ - --cafile ${ORDERER0_TLS_CA} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "ChaincodeInstantiation on org $org/peer$peer in channel ${channel} failed" - echo "=== Chaincode Instantiated in channel ${channel} by peer$peer ===" + setEnvs $org $peer + echo "=== chaincodeInstantiate for channel ${channel} on org $org/peer $peer ====" + echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + >&log.txt + else + peer chaincode instantiate \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + --tls \ + --cafile ${ORDERER0_TLS_CA} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeInstantiation on org $org/peer$peer in channel ${channel} failed" + echo "=== Chaincode Instantiated in channel ${channel} by peer$peer ===" } # Invoke the Init func of chaincode to start the container -# Usage: chaincodeInit org peer channel orderer name args peer_url peer_org_tlsca -chaincodeInit () { - if [ "$#" -ne 8 ]; then - echo_r "Wrong param number for chaincode Init" - exit -1 - fi - local org=$1 - local peer=$2 - local channel=$3 - local orderer=$4 - local name=$5 - local args=$6 - local peer_url=$7 - local peer_org_tlsca=$8 +# Usage: chaincodeInit org peer channel orderer cc_name args peer_url peer_org_tlsca +chaincodeInit() { + if [ "$#" -ne 8 ]; then + echo_r "Wrong param number for chaincode Init" + exit -1 + fi + local org=$1 + local peer=$2 + local channel=$3 + local orderer=$4 + local cc_name=$5 + local args=$6 + local peer_url=$7 + local peer_org_tlsca=$8 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 - echo "=== chaincodeInit to orderer by id of org${org}/peer${peer} === " - echo "channel=${channel}, name=${name}, args=${args}" - setEnvs $org $peer - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode invoke \ - -o ${orderer} \ - --channelID ${channel} \ - --name ${name} \ - --peerAddresses ${peer_url} \ + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + echo "=== chaincodeInit to orderer by id of org${org}/peer${peer} === " + echo "channel=${channel}, cc_name=${cc_name}, args=${args}" + setEnvs $org $peer + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke \ + -o ${orderer} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ - --isInit \ - -c ${args} \ - >&log.txt - else - peer chaincode invoke \ - -o ${orderer} \ - --channelID ${channel} \ - --name ${name} \ - --peerAddresses ${peer_url} \ + --isInit \ + -c ${args} \ + >&log.txt + else + peer chaincode invoke \ + -o ${orderer} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ - --isInit \ - -c ${args} \ - --tls \ - --cafile ${ORDERER0_TLS_CA} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode Init failed: peer$peer in channel ${channel}" - echo "=== Chaincode Init done: peer$peer in channel ${channel} === " + --isInit \ + -c ${args} \ + --tls \ + --cafile ${ORDERER0_TLS_CA} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode Init failed: peer$peer in channel ${channel}" + echo "=== Chaincode Init done: peer$peer in channel ${channel} === " } -# Usage: chaincodeInvoke org peer channel orderer name args peer_url peer_org_tlsca -chaincodeInvoke () { - if [ "$#" -ne 9 ]; then - echo_r "Wrong param number for chaincode Invoke" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_org_tlsca=$4 - local channel=$5 - local orderer_url=$6 - local orderer_tls_rootcert=$7 - local name=$8 - local args=$9 +# Usage: chaincodeInvoke org peer channel orderer cc_name args peer_url peer_org_tlsca +chaincodeInvoke() { + if [ "$#" -ne 9 ]; then + echo_r "Wrong param number for chaincode Invoke" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_org_tlsca=$4 + local channel=$5 + local orderer_url=$6 + local orderer_tls_rootcert=$7 + local cc_name=$8 + local args=$9 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 - echo "=== chaincodeInvoke to orderer by id of org${org}/peer${peer} === " - echo "channel=${channel}, name=${name}, args=${args}" - setEnvs $org $peer - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode invoke \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${name} \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_org_tlsca} \ - -c ${args} \ - >&log.txt - else - peer chaincode invoke \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${name} \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_org_tlsca} \ - -c ${args} \ - --tls \ - --cafile ${orderer_tls_rootcert} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Invoke execution on peer$peer failed " - echo "=== Invoke transaction on peer$peer in channel ${channel} is successful === " + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + echo "=== chaincodeInvoke to orderer by id of org${org}/peer${peer} === " + echo "channel=${channel}, cc_name=${cc_name}, args=${args}" + setEnvs $org $peer + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_org_tlsca} \ + -c ${args} \ + >&log.txt + else + peer chaincode invoke \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_org_tlsca} \ + -c ${args} \ + --tls \ + --cafile ${orderer_tls_rootcert} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Invoke execution on peer$peer failed " + echo "=== Invoke transaction on peer$peer in channel ${channel} is successful === " } -# query org peer channel name args expected_result -chaincodeQuery () { - if [ "$#" -ne 7 -a "$#" -ne 8 ]; then - echo_r "Wrong param number $# for chaincode Query" - echo $* - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_org_tlsca=$4 - local channel=$5 - local name=$6 - local args=$7 - local expected_result="" +# query org peer channel cc_name args expected_result +chaincodeQuery() { + if [ "$#" -ne 7 -a "$#" -ne 8 ]; then + echo_r "Wrong param number $# for chaincode Query" + echo $* + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_org_tlsca=$4 + local channel=$5 + local cc_name=$6 + local args=$7 + local expected_result="" - [ $# -eq 8 ] && local expected_result=$8 + [ $# -eq 8 ] && local expected_result=$8 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 - echo "=== chaincodeQuery to org $org/peer $peer === " - echo "channel=${channel}, name=${name}, args=${args}, expected_result=${expected_result}" - local rc=1 - local starttime=$(date +%s) + echo "=== chaincodeQuery to org $org/peer $peer === " + echo "channel=${channel}, cc_name=${cc_name}, args=${args}, expected_result=${expected_result}" + local rc=1 + local starttime=$(date +%s) - setEnvs $org $peer + setEnvs $org $peer - # we either get a successful response, or reach TIMEOUT - while [ "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 ]; do - echo "Attempting to Query org ${org}/peer ${peer} ...$(($(date +%s)-starttime)) secs" - peer chaincode query \ - -C "${channel}" \ - -n "${name}" \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_org_tlsca} \ - -c "${args}" \ - >&log.txt - rc=$? - if [ -n "${expected_result}" ]; then # need to check the result - test $? -eq 0 && VALUE=$(cat log.txt | awk 'END {print $NF}') - if [ "$VALUE" = "${expected_result}" ]; then - let rc=0 - echo_b "$VALUE == ${expected_result}, passed" - else - let rc=1 - echo_b "$VALUE != ${expected_result}, will retry" - fi - fi - if [ $rc -ne 0 ]; then - cat log.txt - sleep 2 - fi - done + # we either get a successful response, or reach TIMEOUT + while [ "$(($(date +%s) - starttime))" -lt "$TIMEOUT" -a $rc -ne 0 ]; do + echo "Attempting to Query org ${org}/peer ${peer} ...$(($(date +%s) - starttime)) secs" + peer chaincode query \ + -C "${channel}" \ + -n "${cc_name}" \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_org_tlsca} \ + -c "${args}" \ + >&log.txt + rc=$? + if [ -n "${expected_result}" ]; then # need to check the result + test $? -eq 0 && VALUE=$(cat log.txt | awk 'END {print $NF}') + if [ "$VALUE" = "${expected_result}" ]; then + let rc=0 + echo_b "$VALUE == ${expected_result}, passed" + else + let rc=1 + echo_b "$VALUE != ${expected_result}, will retry" + fi + fi + if [ $rc -ne 0 ]; then + cat log.txt + sleep 2 + fi + done - # rc==0, or timeout - if [ $rc -eq 0 ]; then - echo "=== Query is done: org $org/peer$peer in channel ${channel} === " - else - echo_r "=== Query failed: org $org/peer$peer, run `make stop clean` to clean ===" - exit 1 - fi + # rc==0, or timeout + if [ $rc -eq 0 ]; then + echo "=== Query is done: org $org/peer$peer in channel ${channel} === " + else + echo_r "=== Query failed: org $org/peer$peer, run $(make stop clean) to clean ===" + exit 1 + fi } # List Installed chaincode on specified peer node, and instantiated chaincodes at specific channel # chaincodeList org1 peer0 businesschannel -chaincodeList () { - local org=$1 - local peer=$2 - local channel=$3 +chaincodeList() { + local org=$1 + local peer=$2 + local channel=$3 - [ -z $org ] && [ -z $peer ] && [ -z $channel ] && echo_r "input param invalid" && exit -1 - echo "=== ChaincodeList on org ${org}/peer ${peer} === " - setEnvs $org $peer - echo_b "Get installed chaincodes at peer$peer.org$org" - peer chaincode list \ - --installed > log.txt & - # \ - #--peerAddresses "peer${peer}.org${org}.example.com" --tls false - rc=$? - [ $rc -ne 0 ] && cat log.txt + [ -z $org ] && [ -z $peer ] && [ -z $channel ] && echo_r "input param invalid" && exit -1 + echo "=== ChaincodeList on org ${org}/peer ${peer} === " + setEnvs $org $peer + echo_b "Get installed chaincodes at peer$peer.org$org" + peer chaincode list \ + --installed >log.txt & + # \ + #--peerAddresses "peer${peer}.org${org}.example.com" --tls false + rc=$? + [ $rc -ne 0 ] && cat log.txt verifyResult $rc "List installed chaincodes on remote org ${org}/peer$peer has Failed" - echo_b "Get instantiated chaincodes at channel $org" - peer chaincode list \ - --instantiated \ - -C ${channel} > log.txt & - rc=$? - [ $rc -ne 0 ] && cat log.txt + echo_b "Get instantiated chaincodes at channel $org" + peer chaincode list \ + --instantiated \ + -C ${channel} >log.txt & + rc=$? + [ $rc -ne 0 ] && cat log.txt verifyResult $rc "List installed chaincodes on remote org ${org}/peer$peer has Failed" - echo "=== ChaincodeList is done at peer${peer}.org${org} === " + echo "=== ChaincodeList is done at peer${peer}.org${org} === " } # Start chaincode with dev mode # TODO: use variables instead of hard-coded value -chaincodeStartDev () { - local peer=$1 - local version=$2 - [ -z $peer ] && [ -z $version ] && echo_r "input param invalid" && exit -1 - setEnvs 1 0 - CORE_CHAINCODE_LOGLEVEL=debug \ - CORE_PEER_ADDRESS=peer${peer}.org1.example.com:7052 \ - CORE_CHAINCODE_ID_NAME=${CC_02_NAME}:${version} \ - nohup ./scripts/chaincode_example02 > chaincode_dev.log & - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode start in dev mode has Failed" - echo "=== Chaincode started in dev mode === " +chaincodeStartDev() { + local peer=$1 + local version=$2 + [ -z $peer ] && [ -z $version ] && echo_r "input param invalid" && exit -1 + setEnvs 1 0 + CORE_CHAINCODE_LOGLEVEL=debug \ + CORE_PEER_ADDRESS=peer${peer}.org1.example.com:7052 \ + CORE_CHAINCODE_ID_NAME=${CC_02_NAME}:${version} \ + nohup ./scripts/chaincode_example02 >chaincode_dev.log & + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode start in dev mode has Failed" + echo "=== Chaincode started in dev mode === " } -# chaincodeUpgrade channel org peer orderer_url name version args -chaincodeUpgrade () { - if [ "$#" -gt 9 -a "$#" -lt 7 ]; then - echo_r "Wrong param number for chaincode instantaite" - exit -1 - fi - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local name=$5 - local version=$6 - local args=$7 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +# chaincodeUpgrade channel org peer orderer_url cc_name version args +chaincodeUpgrade() { + if [ "$#" -gt 9 -a "$#" -lt 7 ]; then + echo_r "Wrong param number for chaincode instantaite" + exit -1 + fi + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local cc_name=$5 + local version=$6 + local args=$7 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - echo "=== chaincodeUpgrade to orderer by id of org ${org}/peer $peer === " - echo "name=${name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" + echo "=== chaincodeUpgrade to orderer by id of org ${org}/peer $peer === " + echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" - setEnvs $org $peer - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode upgrade \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - >&log.txt - else - peer chaincode upgrade \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - --tls \ - --cafile ${ORDERER0_TLS_CA} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Upgrade execution on peer$peer failed " - echo "=== Upgrade transaction on peer$peer in channel ${channel} is successful === " + setEnvs $org $peer + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode upgrade \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + >&log.txt + else + peer chaincode upgrade \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + --tls \ + --cafile ${ORDERER0_TLS_CA} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Upgrade execution on peer$peer failed " + echo "=== Upgrade transaction on peer$peer in channel ${channel} is successful === " } # configtxlator encode json to pb # Usage: configtxlatorEncode msgType input output configtxlatorEncode() { - local msgType=$1 - local input=$2 - local output=$3 + local msgType=$1 + local input=$2 + local output=$3 - echo "Encode $input --> $output using type $msgType" - docker exec -it ${CTL_CONTAINER} configtxlator proto_encode \ - --type=${msgType} \ - --input=${input} \ - --output=${output} + echo "Encode $input --> $output using type $msgType" + docker exec -it ${CTL_CONTAINER} configtxlator proto_encode \ + --type=${msgType} \ + --input=${input} \ + --output=${output} - #curl -sX POST \ - # --data-binary @${input} \ - # ${CTL_ENCODE_URL}/${msgType} \ - # >${output} + #curl -sX POST \ + # --data-binary @${input} \ + # ${CTL_ENCODE_URL}/${msgType} \ + # >${output} } # configtxlator decode pb to json # Usage: configtxlatorEncode msgType input output configtxlatorDecode() { - local msgType=$1 - local input=$2 - local output=$3 + local msgType=$1 + local input=$2 + local output=$3 - echo "Config Decode $input --> $output using type $msgType" - if [ ! -f $input ]; then - echo_r "input file not found" - exit 1 - fi + echo "Config Decode $input --> $output using type $msgType" + if [ ! -f $input ]; then + echo_r "input file not found" + exit 1 + fi - docker exec -it ${CTL_CONTAINER} configtxlator proto_decode \ - --type=${msgType} \ - --input=${input} \ - --output=${output} + docker exec -it ${CTL_CONTAINER} configtxlator proto_decode \ + --type=${msgType} \ + --input=${input} \ + --output=${output} - #curl -sX POST \ - # --data-binary @"${input}" \ - # "${CTL_DECODE_URL}/${msgType}" \ - # > "${output}" + #curl -sX POST \ + # --data-binary @"${input}" \ + # "${CTL_DECODE_URL}/${msgType}" \ + # > "${output}" } # compute diff between two pb # Usage: configtxlatorCompare channel origin updated output configtxlatorCompare() { - local channel=$1 - local origin=$2 - local updated=$3 - local output=$4 + local channel=$1 + local origin=$2 + local updated=$3 + local output=$4 - echo "Config Compare $origin vs $updated > ${output} in channel $channel" - if [ ! -f $origin ] || [ ! -f $updated ]; then - echo_r "input file not found" - exit 1 - fi + echo "Config Compare $origin vs $updated > ${output} in channel $channel" + if [ ! -f $origin ] || [ ! -f $updated ]; then + echo_r "input file not found" + exit 1 + fi - docker exec -it ${CTL_CONTAINER} configtxlator compute_update \ - --original=${origin} \ - --updated=${updated} \ - --channel_id=${channel} \ - --output=${output} + docker exec -it ${CTL_CONTAINER} configtxlator compute_update \ + --original=${origin} \ + --updated=${updated} \ + --channel_id=${channel} \ + --output=${output} - #curl -sX POST \ - # -F channel="${channel}" \ - # -F "original=@${origin}" \ - # -F "updated=@${updated}" \ - # "${CTL_COMPARE_URL}" \ - # > "${output}" + #curl -sX POST \ + # -F channel="${channel}" \ + # -F "original=@${origin}" \ + # -F "updated=@${updated}" \ + # "${CTL_COMPARE_URL}" \ + # > "${output}" - [ $? -eq 0 ] || echo_r "Failed to compute config update" + [ $? -eq 0 ] || echo_r "Failed to compute config update" } # Run cmd inside the config generator container gen_con_exec() { - docker exec -it $GEN_CONTAINER "$@" -} \ No newline at end of file + docker exec -it $GEN_CONTAINER "$@" +} diff --git a/hyperledger_fabric/latest/scripts/test_cc_queryapproved.sh b/hyperledger_fabric/latest/scripts/test_cc_queryapproved.sh new file mode 100644 index 00000000..f1ad2ca0 --- /dev/null +++ b/hyperledger_fabric/latest/scripts/test_cc_queryapproved.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +CC_NAME=${CC_NAME:-$CC_02_NAME} +CC_PATH=${CC_PATH:-$CC_02_PATH} + +echo_b "=== Query Approved Chaincode for ${CC_NAME} on all organizations ... ===" + +for org in "${ORGS[@]}" +do + t="\${ORG${org}_PEER0_URL}" && peer_url=`eval echo $t` + t="\${ORG${org}_PEER0_TLS_ROOTCERT}" && peer_tls_rootcert=`eval echo $t` + chaincodeQueryApproved "$org" 0 ${peer_url} ${peer_tls_rootcert} "${APP_CHANNEL}" ${CC_NAME} +done + +echo_g "=== Query Approved Chaincode done ===" + +echo diff --git a/hyperledger_fabric/latest/scripts/variables.sh b/hyperledger_fabric/latest/scripts/variables.sh index b1f38bc9..36ad6c85 100644 --- a/hyperledger_fabric/latest/scripts/variables.sh +++ b/hyperledger_fabric/latest/scripts/variables.sh @@ -22,8 +22,8 @@ TIMEOUT="90" MAX_RETRY=10 # Organization and peers -ORGS=( 1 2 ) -PEERS=( 0 1 ) +ORGS=(1 2) +PEERS=(0 1) #: "${ORGS:=( 1 2 )}" #: "${PEERS:=( 0 1 )}" @@ -81,12 +81,12 @@ CC_MARBLES_NAME="marblesp" CC_MARBLES_PATH="chaincodes/go/marbles02_private/go" CC_MARBLES_INIT_ARGS='{"Args":["init"]}' CC_MARBLES_UPGRADE_ARGS='{"Args":["upgrade",""]}' -CC_MARBLES_INVOKE_INIT_ARGS='{"Args":["initMarble","marble1","blue","10","tom","100"]}' # price is in collectionMarblePrivateDetails +CC_MARBLES_INVOKE_INIT_ARGS='{"Args":["initMarble","marble1","blue","10","tom","100"]}' # price is in collectionMarblePrivateDetails CC_MARBLES_INVOKE_INIT_ARGS_2='{"Args":["initMarble","marble2","blue","10","tom","100"]}' # price is in collectionMarblePrivateDetails -CC_MARBLES_INVOKE_TRANSFER_ARGS='{"Args":["transferMarble","marble1","jerry"]}' # price is in collectionMarblePrivateDetails -CC_MARBLES_QUERY_READ_ARGS='{"Args":["readMarble","marble1"]}' # this requires 'collectionMarbles' collection -CC_MARBLES_QUERY_READPVTDETAILS_ARGS='{"Args":["readMarblePrivateDetails","marble1"]}' # this requires 'collectionMarblePrivateDetails' collection -CC_MARBLES_QUERY_READPVTDETAILS_ARGS_2='{"Args":["readMarblePrivateDetails","marble2"]}' # this requires 'collectionMarblePrivateDetails' collection +CC_MARBLES_INVOKE_TRANSFER_ARGS='{"Args":["transferMarble","marble1","jerry"]}' # price is in collectionMarblePrivateDetails +CC_MARBLES_QUERY_READ_ARGS='{"Args":["readMarble","marble1"]}' # this requires 'collectionMarbles' collection +CC_MARBLES_QUERY_READPVTDETAILS_ARGS='{"Args":["readMarblePrivateDetails","marble1"]}' # this requires 'collectionMarblePrivateDetails' collection +CC_MARBLES_QUERY_READPVTDETAILS_ARGS_2='{"Args":["readMarblePrivateDetails","marble2"]}' # this requires 'collectionMarblePrivateDetails' collection CC_MARBLES_COLLECTION_CONFIG="/go/src/chaincodes/go/marbles02_private/collections_config.json" CC_MARBLES_COLLECTION_CONFIG_NEW="/go/src/chaincodes/go/marbles02_private/collections_config_new.json" @@ -101,7 +101,7 @@ CC_INVOKE_ARGS=${CC_02_INVOKE_ARGS} CC_QUERY_ARGS=${CC_02_QUERY_ARGS} # Generate configs -GEN_IMG=yeasy/hyperledger-fabric:${FABRIC_IMG_TAG} # working dir is `/go/src/github.com/hyperledger/fabric` +GEN_IMG=yeasy/hyperledger-fabric:${FABRIC_IMG_TAG} # working dir is `/go/src/github.com/hyperledger/fabric` GEN_CONTAINER=generator FABRIC_CFG_PATH=/etc/hyperledger/fabric CHANNEL_ARTIFACTS=channel-artifacts diff --git a/hyperledger_fabric/v2.2.0/scripts/download_images.sh b/hyperledger_fabric/v2.2.0/scripts/download_images.sh index b18fbbd8..86bad6a5 100644 --- a/hyperledger_fabric/v2.2.0/scripts/download_images.sh +++ b/hyperledger_fabric/v2.2.0/scripts/download_images.sh @@ -44,14 +44,14 @@ done pull_image yeasy/hyperledger-fabric:$FABRIC_IMG_TAG "true" # pull_image yeasy/blockchain-explorer:0.1.0-preview # TODO: wait for official images -echo "=== Pulling fabric core images ${FABRIC_IMG_TAG} from fabric repo... ===" -for IMG in peer orderer ca tools; do - pull_image hyperledger/fabric-${IMG}:$FABRIC_IMG_TAG & # e.g., v2.0.0 -done +#echo "=== Pulling fabric core images ${FABRIC_IMG_TAG} from fabric repo... ===" +#for IMG in peer orderer ca tools; do +# pull_image hyperledger/fabric-${IMG}:$FABRIC_IMG_TAG & # e.g., v2.3.0 +#done echo "=== Pulling fabric chaincode images ${TWO_DIGIT_VERSION} from fabric repo... ===" for IMG in ccenv baseos javaenv nodeenv; do - pull_image hyperledger/fabric-${IMG}:${TWO_DIGIT_VERSION} & # e.g., v2.0 + pull_image hyperledger/fabric-${IMG}:${TWO_DIGIT_VERSION} & # e.g., v2.2 done # TODO: dockerhub fabric-ccenv:2.0 image is too old diff --git a/hyperledger_fabric/v2.2.0/scripts/func.sh b/hyperledger_fabric/v2.2.0/scripts/func.sh index 2ed98567..1781c83c 100644 --- a/hyperledger_fabric/v2.2.0/scripts/func.sh +++ b/hyperledger_fabric/v2.2.0/scripts/func.sh @@ -1,47 +1,47 @@ #!/usr/bin/env bash -echo_r () { - [ $# -ne 1 ] && return 0 - echo -e "\033[31m$1\033[0m" +echo_r() { + [ $# -ne 1 ] && return 0 + echo -e "\033[31m$1\033[0m" } -echo_g () { - [ $# -ne 1 ] && return 0 - echo -e "\033[32m$1\033[0m" +echo_g() { + [ $# -ne 1 ] && return 0 + echo -e "\033[32m$1\033[0m" } -echo_y () { - [ $# -ne 1 ] && return 0 - echo -e "\033[33m$1\033[0m" +echo_y() { + [ $# -ne 1 ] && return 0 + echo -e "\033[33m$1\033[0m" } -echo_b () { - [ $# -ne 1 ] && return 0 - echo -e "\033[34m$1\033[0m" +echo_b() { + [ $# -ne 1 ] && return 0 + echo -e "\033[34m$1\033[0m" } # Define those global variables if [ -f ./variables.sh ]; then - source ./variables.sh + source ./variables.sh elif [ -f scripts/variables.sh ]; then - source scripts/variables.sh + source scripts/variables.sh else - echo_r "Cannot find the variables.sh files, pls check" - exit 1 + echo_r "Cannot find the variables.sh files, pls check" + exit 1 fi # Verify $1 is not 0, then output error msg $2 and exit -verifyResult () { - if [ $1 -ne 0 ] ; then - echo "$2" - echo_r "=== ERROR !!! FAILED to execute End-2-End Scenario ===" - exit 1 - fi +verifyResult() { + if [ $1 -ne 0 ]; then + echo "$2" + echo_r "=== ERROR !!! FAILED to execute End-2-End Scenario ===" + exit 1 + fi } # set env to use orderOrg's identity -setOrdererEnvs () { - export CORE_PEER_LOCALMSPID="OrdererMSP" - export CORE_PEER_MSPCONFIGPATH=${ORDERER0_ADMIN_MSP} - export CORE_PEER_TLS_ROOTCERT_FILE=${ORDERER0_TLS_ROOTCERT} - #t="\${ORG${org}_PEER${peer}_URL}" && CORE_PEER_ADDRESS=`eval echo $t` +setOrdererEnvs() { + export CORE_PEER_LOCALMSPID="OrdererMSP" + export CORE_PEER_MSPCONFIGPATH=${ORDERER0_ADMIN_MSP} + export CORE_PEER_TLS_ROOTCERT_FILE=${ORDERER0_TLS_ROOTCERT} + #t="\${ORG${org}_PEER${peer}_URL}" && CORE_PEER_ADDRESS=`eval echo $t` } # Set global env variables for fabric cli, after setting: @@ -55,1043 +55,1049 @@ setOrdererEnvs () { # CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # remote peer to send proposal to # Usage: setEnvs org peer -setEnvs () { - local org=$1 # 1 or 2 - local peer=$2 # 0 or 1 - [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 +setEnvs() { + local org=$1 # 1 or 2 + local peer=$2 # 0 or 1 + [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - local t="" - export CORE_PEER_LOCALMSPID="Org${org}MSP" - #CORE_PEER_MSPCONFIGPATH=\$${ORG${org}_ADMIN_MSP} - t="\${ORG${org}_PEER${peer}_URL}" && export CORE_PEER_ADDRESS=`eval echo $t` # this is not needed if specifying peerAddresses - t="\${ORG${org}_ADMIN_MSP}" && export CORE_PEER_MSPCONFIGPATH=`eval echo $t` - t="\${ORG${org}_PEER${peer}_TLS_ROOTCERT}" && export CORE_PEER_TLS_ROOTCERT_FILE=`eval echo $t` + local t="" + export CORE_PEER_LOCALMSPID="Org${org}MSP" + #CORE_PEER_MSPCONFIGPATH=\$${ORG${org}_ADMIN_MSP} + t="\${ORG${org}_PEER${peer}_URL}" && export CORE_PEER_ADDRESS=$(eval echo $t) # this is not needed if specifying peerAddresses + t="\${ORG${org}_ADMIN_MSP}" && export CORE_PEER_MSPCONFIGPATH=$(eval echo $t) + t="\${ORG${org}_PEER${peer}_TLS_ROOTCERT}" && export CORE_PEER_TLS_ROOTCERT_FILE=$(eval echo $t) - #env |grep CORE - export FABRIC_LOGGING_SPEC="INFO" - #export GOCACHE=/root/.cache/go-build - #go get + #env |grep CORE + export FABRIC_LOGGING_SPEC="INFO" + #export GOCACHE=/root/.cache/go-build + #go get } # Internal func called by channelCreate # channelCreateAction channel tx orderer_url orderer_tls_rootcert -channelCreateAction(){ - local channel=$1 - local channel_tx=$2 - local orderer_url=$3 - local orderer_tls_rootcert=$4 +channelCreateAction() { + local channel=$1 + local channel_tx=$2 + local orderer_url=$3 + local orderer_tls_rootcert=$4 - if [ -z "$CORE_PEER_TLS_ENABLED" ] || [ "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer channel create \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ - --timeout "${TIMEOUT}s" - else - peer channel create \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ - --timeout "${TIMEOUT}s" \ - --tls \ - --cafile ${orderer_tls_rootcert} - fi - return $? + if [ -z "$CORE_PEER_TLS_ENABLED" ] || [ "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel create \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ + --timeout "${TIMEOUT}s" + else + peer channel create \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${channel_tx} \ + --timeout "${TIMEOUT}s" \ + --tls \ + --cafile ${orderer_tls_rootcert} + fi + return $? } # Use peer0/org1's identity to create a channel # channelCreate APP_CHANNEL APP_CHANNEL.tx org peer orderer_url orderer_tls_rootcert channelCreate() { - local channel=$1 - local tx=$2 - local org=$3 - local peer=$4 - local orderer_url=$5 - local orderer_tls_rootcert=$6 + local channel=$1 + local tx=$2 + local org=$3 + local peer=$4 + local orderer_url=$5 + local orderer_tls_rootcert=$6 - [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 + [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - echo "=== Create Channel ${channel} by org $org/peer $peer === " - setEnvs $org $peer - local rc=1 - local counter=0 - while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do - channelCreateAction ${channel} ${tx} ${orderer_url} ${orderer_tls_rootcert} - rc=$? - let counter=${counter}+1 - #COUNTER=` expr $COUNTER + 1` - [ $rc -ne 0 ] && echo "Failed to create channel $channel, retry after 5s" && sleep 5 - done - [ $rc -ne 0 ] && cat log.txt - verifyResult ${rc} "Channel ${channel} creation failed" - echo "=== Channel ${channel} is created. === " + echo "=== Create Channel ${channel} by org $org/peer $peer === " + setEnvs $org $peer + local rc=1 + local counter=0 + while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do + channelCreateAction ${channel} ${tx} ${orderer_url} ${orderer_tls_rootcert} + rc=$? + let counter=${counter}+1 + #COUNTER=` expr $COUNTER + 1` + [ $rc -ne 0 ] && echo "Failed to create channel $channel, retry after 5s" && sleep 5 + done + [ $rc -ne 0 ] && cat log.txt + verifyResult ${rc} "Channel ${channel} creation failed" + echo "=== Channel ${channel} is created. === " } # called by channelJoinWithRetry -channelJoinAction () { - local channel=$1 - peer channel join \ - -b ${channel}.block \ - >&log.txt +channelJoinAction() { + local channel=$1 + peer channel join \ + -b ${channel}.block \ + >&log.txt } ## Sometimes Join takes time hence RETRY atleast for 5 times -channelJoinWithRetry () { - local channel=$1 - local peer=$2 - local counter=0 - channelJoinAction ${channel} - local rc=$? - while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do - echo "peer${peer} failed to join channel ${channel}, retry after 2s" - sleep 2 - channelJoinAction ${channel} - rc=$? - let counter=${counter}+1 - done - [ $rc -ne 0 ] && cat log.txt +channelJoinWithRetry() { + local channel=$1 + local peer=$2 + local counter=0 + channelJoinAction ${channel} + local rc=$? + while [ ${counter} -lt ${MAX_RETRY} -a ${rc} -ne 0 ]; do + echo "peer${peer} failed to join channel ${channel}, retry after 2s" + sleep 2 + channelJoinAction ${channel} + rc=$? + let counter=${counter}+1 + done + [ $rc -ne 0 ] && cat log.txt verifyResult ${rc} "After $MAX_RETRY attempts, peer${peer} failed to Join the Channel" } # Join given (by default all) peers into the channel # channelJoin channel org peer -channelJoin () { - local channel=$1 - local org=$2 - local peer=$3 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 +channelJoin() { + local channel=$1 + local org=$2 + local peer=$3 + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - echo "=== Join org $org/peer $peer into channel ${channel} === " - setEnvs $org $peer - channelJoinWithRetry ${channel} $peer - echo "=== org $org/peer $peer joined into channel ${channel} === " + echo "=== Join org $org/peer $peer into channel ${channel} === " + setEnvs $org $peer + channelJoinWithRetry ${channel} $peer + echo "=== org $org/peer $peer joined into channel ${channel} === " } -getShaSum () { - [ ! $# -eq 1 ] && exit 1 - shasum ${1} | awk '{print $1}' +getShaSum() { + [ ! $# -eq 1 ] && exit 1 + shasum ${1} | awk '{print $1}' } # List the channel that the peer joined # E.g., for peer 0 at org 1, will do # channelList 1 0 -channelList () { - local org=$1 - local peer=$2 - echo "=== List the channels that org${org}/peer${peer} joined === " +channelList() { + local org=$1 + local peer=$2 + echo "=== List the channels that org${org}/peer${peer} joined === " - setEnvs $org $peer + setEnvs $org $peer - peer channel list >&log.txt - rc=$? - [ $rc -ne 0 ] && cat log.txt - if [ $rc -ne 0 ]; then - echo "=== Failed to list the channels that org${org}/peer${peer} joined === " - else - echo "=== Done to list the channels that org${org}/peer${peer} joined === " - fi + peer channel list >&log.txt + rc=$? + [ $rc -ne 0 ] && cat log.txt + if [ $rc -ne 0 ]; then + echo "=== Failed to list the channels that org${org}/peer${peer} joined === " + else + echo "=== Done to list the channels that org${org}/peer${peer} joined === " + fi } # Get the info of specific channel, including {height, currentBlockHash, previousBlockHash}. # E.g., for peer 0 at org 1, get info of business channel will do # channelGetInfo businesschannel 1 0 -channelGetInfo () { - local channel=$1 - local org=$2 - local peer=$3 - echo "=== Get channel info (height, currentBlockHash, previousBlockHash) of ${channel} with id of org${org}/peer${peer} === " +channelGetInfo() { + local channel=$1 + local org=$2 + local peer=$3 + echo "=== Get channel info (height, currentBlockHash, previousBlockHash) of ${channel} with id of org${org}/peer${peer} === " - setEnvs $org $peer + setEnvs $org $peer - peer channel getinfo -c ${channel} >&log.txt - rc=$? - cat log.txt - if [ $rc -ne 0 ]; then - echo "=== Fail to get channel info of ${channel} with id of org${org}/peer${peer} === " - else - echo "=== Done to get channel info of ${channel} with id of org${org}/peer${peer} === " - fi + peer channel getinfo -c ${channel} >&log.txt + rc=$? + cat log.txt + if [ $rc -ne 0 ]; then + echo "=== Fail to get channel info of ${channel} with id of org${org}/peer${peer} === " + else + echo "=== Done to get channel info of ${channel} with id of org${org}/peer${peer} === " + fi } # Fetch all blocks for a channel # Usage: channelFetchAll channel org peer orderer_url orderer_tls_rootcert -channelFetchAll () { - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 +channelFetchAll() { + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 - echo "=== Fetch all block for channel $channel === " + echo "=== Fetch all block for channel $channel === " - local block_file=/tmp/${channel}_newest.block - channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "newest" ${block_file} - [ $? -ne 0 ] && exit 1 - newest_block_shasum=$(getShaSum ${block_file}) - echo "fetch newest block ${block_file} with shasum=${newest_block_shasum}" + local block_file=/tmp/${channel}_newest.block + channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "newest" ${block_file} + [ $? -ne 0 ] && exit 1 + newest_block_shasum=$(getShaSum ${block_file}) + echo "fetch newest block ${block_file} with shasum=${newest_block_shasum}" - block_file=${CHANNEL_ARTIFACTS}/${channel}_config.block - channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "config" ${block_file} - [ $? -ne 0 ] && exit 1 - echo "fetch config block ${block_file}" + block_file=${CHANNEL_ARTIFACTS}/${channel}_config.block + channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} "config" ${block_file} + [ $? -ne 0 ] && exit 1 + echo "fetch config block ${block_file}" - for i in $(seq 0 16); do # we at most fetch 16 blocks - block_file=${CHANNEL_ARTIFACTS}/${channel}_${i}.block - channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} $i ${block_file} - [ $? -ne 0 ] && exit 1 - [ -f $block_file ] || break - echo "fetch block $i and saved into ${block_file}" - block_shasum=$(getShaSum ${block_file}) - [ ${block_shasum} = ${newest_block_shasum} ] && { echo "Block $i is the last one for channel $channel"; break; } - done + for i in $(# we at most fetch 16 blocks + seq 0 16 + ); do + block_file=${CHANNEL_ARTIFACTS}/${channel}_${i}.block + channelFetch ${channel} $org $peer ${orderer_url} ${orderer_tls_rootcert} $i ${block_file} + [ $? -ne 0 ] && exit 1 + [ -f $block_file ] || break + echo "fetch block $i and saved into ${block_file}" + block_shasum=$(getShaSum ${block_file}) + [ ${block_shasum} = ${newest_block_shasum} ] && { + echo "Block $i is the last one for channel $channel" + break + } + done } # Fetch some block from a given channel # channelFetch channel org peer orderer_url blockNum block_file -channelFetch () { - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 - local num=$6 - local block_file=$7 - echo "=== Fetch block $num of channel $channel === " +channelFetch() { + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 + local num=$6 + local block_file=$7 + echo "=== Fetch block $num of channel $channel === " - #setEnvs $org $peer - setOrdererEnvs # system channel required id from ordererOrg - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "${CORE_PEER_TLS_ENABLED}" ] || [ "${CORE_PEER_TLS_ENABLED}" = "false" ]; then - peer channel fetch $num ${block_file} \ - -o ${orderer_url} \ - -c ${channel} \ - >&log.txt - else - peer channel fetch $num ${block_file} \ - -o ${orderer_url} \ - -c ${channel} \ - --tls \ - --cafile ${orderer_tls_rootcert} \ - >&log.txt - fi - if [ $? -ne 0 ]; then - cat log.txt - echo_r "Fetch block $num of channel $channel failed" - return 1 - else - echo "=== Fetch block $num of channel $channel OK === " - return 0 - fi + #setEnvs $org $peer + setOrdererEnvs # system channel required id from ordererOrg + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "${CORE_PEER_TLS_ENABLED}" ] || [ "${CORE_PEER_TLS_ENABLED}" = "false" ]; then + peer channel fetch $num ${block_file} \ + -o ${orderer_url} \ + -c ${channel} \ + >&log.txt + else + peer channel fetch $num ${block_file} \ + -o ${orderer_url} \ + -c ${channel} \ + --tls \ + --cafile ${orderer_tls_rootcert} \ + >&log.txt + fi + if [ $? -ne 0 ]; then + cat log.txt + echo_r "Fetch block $num of channel $channel failed" + return 1 + else + echo "=== Fetch block $num of channel $channel OK === " + return 0 + fi } # Sign a channel config tx # Usage: channelSignConfigTx channel org peer transaction -channelSignConfigTx () { - local channel=$1 - local org=$2 - local peer=$3 - local tx=$4 - [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - echo "=== Sign channel config tx $tx for channel $channel by org $org/peer $peer === " - [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { echo_r "${tx} not exist"; exit 1; } +channelSignConfigTx() { + local channel=$1 + local org=$2 + local peer=$3 + local tx=$4 + [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 + echo "=== Sign channel config tx $tx for channel $channel by org $org/peer $peer === " + [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { + echo_r "${tx} not exist" + exit 1 + } - setEnvs $org $peer + setEnvs $org $peer - peer channel signconfigtx -f ${CHANNEL_ARTIFACTS}/${tx} >&log.txt - rc=$? - [ $rc -ne 0 ] && cat log.txt - if [ $rc -ne 0 ]; then - echo_r "Sign channel config tx for channel $channel by org $org/peer $peer failed" - else - echo "=== Sign channel config tx channel $channel by org $org/peer $peer is successful === " - fi + peer channel signconfigtx -f ${CHANNEL_ARTIFACTS}/${tx} >&log.txt + rc=$? + [ $rc -ne 0 ] && cat log.txt + if [ $rc -ne 0 ]; then + echo_r "Sign channel config tx for channel $channel by org $org/peer $peer failed" + else + echo "=== Sign channel config tx channel $channel by org $org/peer $peer is successful === " + fi } # Update a channel config # Usage: channelUpdate channel org peer orderer_url orderer_tls_rootcert transaction_file channelUpdate() { - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 - local tx=$6 - [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 + local tx=$6 + [ -z $channel ] && [ -z $tx ] && [ -z $org ] && [ -z $peer ] && echo_r "input param invalid" && exit -1 - setEnvs $org $peer - echo "=== Update config on channel ${channel} === " - [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { echo_r "${tx} not exist"; exit 1; } - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer channel update \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${tx} \ - >&log.txt - else - peer channel update \ - -c ${channel} \ - -o ${orderer_url} \ - -f ${CHANNEL_ARTIFACTS}/${tx} \ - --tls \ - --cafile ${orderer_tls_rootcert} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "peer channel update failed" - echo "=== Channel ${channel} is updated. === " - sleep 2 + setEnvs $org $peer + echo "=== Update config on channel ${channel} === " + [ -f ${CHANNEL_ARTIFACTS}/${tx} ] || { + echo_r "${tx} not exist" + exit 1 + } + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer channel update \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${tx} \ + >&log.txt + else + peer channel update \ + -c ${channel} \ + -o ${orderer_url} \ + -f ${CHANNEL_ARTIFACTS}/${tx} \ + --tls \ + --cafile ${orderer_tls_rootcert} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "peer channel update failed" + echo "=== Channel ${channel} is updated. === " + sleep 2 } # Install chaincode on the peer node # In v2.x it will package, install and approve # chaincodeInstall peer cc_name version cc_path [lang] -chaincodeInstall () { - if [ "$#" -ne 7 ]; then - echo_r "Wrong param number for chaincode install" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local cc_name=$5 - local version=$6 - local cc_path=$7 +chaincodeInstall() { + if [ "$#" -ne 7 ]; then + echo_r "Wrong param number for chaincode install" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local cc_name=$5 + local version=$6 + local cc_path=$7 - [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $version ] && [ -z $cc_path ] && echo_r "input param invalid" && exit -1 - echo "=== Install Chaincode on org ${org}/peer ${peer} === " - echo "cc_name=${cc_name}, version=${version}, path=${cc_path}" - setEnvs $org $peer - echo "packaging chaincode into tar.gz package" - local label=${cc_name} - #local label=${cc_name}_${version} + [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $version ] && [ -z $cc_path ] && echo_r "input param invalid" && exit -1 + echo "=== Install Chaincode on org ${org}/peer ${peer} === " + echo "cc_name=${cc_name}, version=${version}, path=${cc_path}" + setEnvs $org $peer + echo "packaging chaincode into tar.gz package" + local label=${cc_name} + #local label=${cc_name}_${version} - #pushd ${GOPATH}/src/${cc_path} - #GO111MODULE=on go mod vendor - #popd - - echo "packaging chaincode ${cc_name} with path ${cc_path} and label ${label}" - peer lifecycle chaincode package ${cc_name}.tar.gz \ + echo "packaging chaincode ${cc_name} with path ${cc_path} and label ${label}" + peer lifecycle chaincode package ${cc_name}.tar.gz \ --path ${cc_path} \ --lang golang \ --label ${label} - rc=$? - [ $rc -ne 0 ] && echo "Error in packaging chaincode ${cc_name}" && exit -1 + rc=$? + [ $rc -ne 0 ] && echo "Error in packaging chaincode ${cc_name}" && exit -1 - # v1.x action - #peer chaincode install \ - # -n ${cc_name} \ - # -v $version \ - # -p ${cc_path} \ - # >&log.txt + # v1.x action + #peer chaincode install \ + # -n ${cc_name} \ + # -v $version \ + # -p ${cc_path} \ + # >&log.txt - echo "installing chaincode to peer${peer}/org${org}" - peer lifecycle chaincode install \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ + echo "installing chaincode to peer${peer}/org${org}" + peer lifecycle chaincode install \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ ${cc_name}.tar.gz | tee >&log.txt - rc=$? - [ $rc -ne 0 ] && cat log.txt + rc=$? + [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode installation on remote org ${org}/peer$peer has Failed" - echo "=== Chaincode is installed on org ${org}/peer $peer === " + verifyResult $rc "Chaincode installation on remote org ${org}/peer$peer has Failed" + echo "=== Chaincode is installed on org ${org}/peer $peer === " } # Query the installed chaincode # chaincodeQueryCommitted org peer peer_url peer_tls_root_cert -chaincodeQueryInstalled () { - if [ "$#" -ne 4 ]; then - echo_r "Wrong param number for chaincode query installed" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 +chaincodeQueryInstalled() { + if [ "$#" -ne 4 ]; then + echo_r "Wrong param number for chaincode query installed" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 - setEnvs $org $peer + setEnvs $org $peer - echo "Query the installed chaincode on peer $peer at $peer_url " - peer lifecycle chaincode queryinstalled \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --output json \ - --connTimeout "3s" - rc=$? - [ $rc -ne 0 ] && cat log.txt - cat log.txt - verifyResult $rc "ChaincodeQueryInstalled Failed: org ${org}/peer$peer" + echo "Query the installed chaincode on peer $peer at $peer_url " + peer lifecycle chaincode queryinstalled \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --output json \ + --connTimeout "3s" + rc=$? + [ $rc -ne 0 ] && cat log.txt + cat log.txt + verifyResult $rc "ChaincodeQueryInstalled Failed: org ${org}/peer$peer" } # Get the installed chaincode packages # chaincodeGetCommitted org peer peer_url peer_tls_root_cert cc_name -chaincodeGetInstalled () { - if [ "$#" -ne 5 ]; then - echo_r "Wrong param number for chaincode get installed" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local cc_name=$5 +chaincodeGetInstalled() { + if [ "$#" -ne 5 ]; then + echo_r "Wrong param number for chaincode get installed" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local cc_name=$5 - setEnvs $org $peer - echo "querying installed chaincode and get its package id" - peer lifecycle chaincode queryinstalled >&query.log - local label=${cc_name} - #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) - package_id=$(grep -o "${label}:[a-z0-9]*" query.log) + setEnvs $org $peer + echo "querying installed chaincode and get its package id" + peer lifecycle chaincode queryinstalled >&query.log + local label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + package_id=$(grep -o "${label}:[a-z0-9]*" query.log) - echo "Get the installed chaincode package with id= ${package_id} on peer $peer at $peer_url " - peer lifecycle chaincode getinstalledpackage \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --package-id ${package_id} \ - --output-directory ./ \ - --output json \ - --connTimeout "3s" - rc=$? - [ $rc -ne 0 ] && cat log.txt - cat log.txt - verifyResult $rc "ChaincodeGetInstalled Failed: org ${org}/peer$peer" + echo "Get the installed chaincode package with id= ${package_id} on peer $peer at $peer_url " + peer lifecycle chaincode getinstalledpackage \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --package-id ${package_id} \ + --output-directory ./ \ + --output json \ + --connTimeout "3s" + rc=$? + [ $rc -ne 0 ] && cat log.txt + cat log.txt + verifyResult $rc "ChaincodeGetInstalled Failed: org ${org}/peer$peer" } - # Approve the chaincode definition # chaincodeApproveForMyOrg channel org peer peer_url peer_tls_root_cert orderer_url orderer_tls_rootcert channel cc_name version -chaincodeApproveForMyOrg () { - if [ "$#" -ne 9 -a "$#" -ne 11 ]; then - echo_r "Wrong param number for chaincode approve" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local orderer_url=$5 - local orderer_tls_rootcert=$6 - local channel=$7 - local cc_name=$8 - local version=$9 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +chaincodeApproveForMyOrg() { + if [ "$#" -ne 9 -a "$#" -ne 11 ]; then + echo_r "Wrong param number for chaincode approve" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local orderer_url=$5 + local orderer_tls_rootcert=$6 + local channel=$7 + local cc_name=$8 + local version=$9 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - if [ ! -z "${10}" ]; then - collection_config=${10} - fi + if [ ! -z "${10}" ]; then + collection_config=${10} + fi - if [ ! -z "${11}" ]; then - policy=${12} - fi + if [ ! -z "${11}" ]; then + policy=${12} + fi - setEnvs $org $peer - echo "querying installed chaincode and get its package id" - peer lifecycle chaincode queryinstalled >&query.log - cat query.log - local label=${cc_name} - #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) - package_id=$(grep -o "${label}:[a-z0-9]*" query.log) - echo "Approve package id=${package_id} by Org ${org}/Peer ${peer}" + setEnvs $org $peer + echo "querying installed chaincode and get its package id" + peer lifecycle chaincode queryinstalled >&query.log + cat query.log + local label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + package_id=$(grep -o "${label}:[a-z0-9]*" query.log) + echo "Approve package id=${package_id} by Org ${org}/Peer ${peer}" - # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer lifecycle chaincode approveformyorg \ - --peerAddresses ${peer_url} \ - --channelID ${channel} \ - --name ${cc_name} \ - --version ${version} \ - --init-required \ - --package-id ${package_id} \ - --sequence 1 \ - --signature-policy "${policy}" \ - --waitForEvent \ - --orderer ${orderer_url} >&log.txt - else - peer lifecycle chaincode approveformyorg \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --channelID ${channel} \ - --name ${cc_name} \ - --version ${version} \ - --init-required \ - --package-id ${package_id} \ - --sequence 1 \ - --signature-policy "${policy}" \ - --waitForEvent \ - --orderer ${orderer_url} \ - --tls true \ - --cafile ${orderer_tls_rootcert} >&log.txt - fi + # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer lifecycle chaincode approveformyorg \ + --peerAddresses ${peer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --package-id ${package_id} \ + --sequence 1 \ + --signature-policy "${policy}" \ + --waitForEvent \ + --orderer ${orderer_url} >&log.txt + else + peer lifecycle chaincode approveformyorg \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --package-id ${package_id} \ + --sequence 1 \ + --signature-policy "${policy}" \ + --waitForEvent \ + --orderer ${orderer_url} \ + --tls true \ + --cafile ${orderer_tls_rootcert} >&log.txt + fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode Approval on remote org ${org}/peer$peer has Failed" - echo "=== Chaincode is approved on remote peer$peer === " + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode Approval on remote org ${org}/peer$peer has Failed" + echo "=== Chaincode is approved on remote peer$peer === " } # Query the Approved chaincode definition # chaincodeQueryApproved org peer peer_url peer_tls_root_cert channel cc_name -chaincodeQueryApproved () { - if [ "$#" -ne 6 ]; then - echo_r "Wrong param number for chaincode queryapproved" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local channel=$5 - local cc_name=$6 +chaincodeQueryApproved() { + if [ "$#" -ne 6 ]; then + echo_r "Wrong param number for chaincode queryapproved" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local channel=$5 + local cc_name=$6 - setEnvs $org $peer + setEnvs $org $peer - echo "Query the approved chaincode definition $cc_name with ${peer_url} " - env | grep CORE_PEER - peer lifecycle chaincode queryapproved \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --channelID ${channel} \ - --name ${cc_name} \ - --output json + echo "Query the approved chaincode definition of $cc_name with ${peer_url} " + env | grep CORE_PEER + peer lifecycle chaincode queryapproved \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --name ${cc_name} \ + --output json - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "ChaincodeQueryCommit Failed: org ${org}/peer$peer" + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeQueryApproved Failed: org ${org}/peer$peer" } # Check the commitReadiness of the chaincode definition # chaincodeCheckCommitReadiness channel org peer cc_name version sequence -chaincodeCheckCommitReadiness () { - if [ "$#" -ne 8 ]; then - echo_r "Wrong param number for chaincode queryapproval" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local channel=$5 - local cc_name=$6 - local version=$7 - local sequence=$8 +chaincodeCheckCommitReadiness() { + if [ "$#" -ne 8 ]; then + echo_r "Wrong param number for chaincode queryapproval" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local channel=$5 + local cc_name=$6 + local version=$7 + local sequence=$8 - setEnvs $org $peer + setEnvs $org $peer - echo "checkcommitreadiness with chaincode $cc_name $version $sequence" - peer lifecycle chaincode checkcommitreadiness \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --channelID ${channel} \ - --name ${cc_name} \ - --output json \ - --version ${version} \ - --sequence ${sequence} + echo "checkcommitreadiness with chaincode $cc_name $version $sequence" + peer lifecycle chaincode checkcommitreadiness \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --name ${cc_name} \ + --output json \ + --version ${version} \ + --sequence ${sequence} - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "ChaincodeQueryApproval Failed: org ${org}/peer$peer" + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeQueryApproval Failed: org ${org}/peer$peer" } # Anyone can commit the chaincode definition once it's approved by major # chaincodeCommit org peer channel orderer_url orderer_tls_rootcert cc_name version [collection-config] [endorse-policy] -chaincodeCommit () { - if [ "$#" -ne 7 -a "$#" -ne 9 ]; then - echo_r "Wrong param number for chaincode commit" - exit -1 - fi - local org=$1 - local peer=$2 - local channel=$3 - local orderer_url=$4 - local orderer_tls_rootcert=$5 - local cc_name=$6 - local version=$7 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +chaincodeCommit() { + if [ "$#" -ne 7 -a "$#" -ne 9 ]; then + echo_r "Wrong param number for chaincode commit" + exit -1 + fi + local org=$1 + local peer=$2 + local channel=$3 + local orderer_url=$4 + local orderer_tls_rootcert=$5 + local cc_name=$6 + local version=$7 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - if [ ! -z "$8" ]; then - collection_config=$8 - fi + if [ ! -z "$8" ]; then + collection_config=$8 + fi - if [ ! -z "$9" ]; then - policy=$9 # chaincode endorsement policy - fi + if [ ! -z "$9" ]; then + policy=$9 # chaincode endorsement policy + fi - setEnvs $org $peer - echo "querying installed chaincode and get its package id" - peer lifecycle chaincode queryinstalled >&query.log - label=${cc_name} - #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) - package_id=$(grep -o "${label}:[a-z0-9]*" query.log) - echo "package_id=${package_id}" + setEnvs $org $peer + echo "querying installed chaincode and get its package id" + peer lifecycle chaincode queryinstalled >&query.log + label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + package_id=$(grep -o "${label}:[a-z0-9]*" query.log) + echo "package_id=${package_id}" - echo "Committing package id=${package_id} by Org ${org}/Peer ${peer}" - # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer lifecycle chaincode commit \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${cc_name} \ - --version ${version} \ - --init-required \ - --sequence 1 \ - --peerAddresses ${ORG1_PEER0_URL} \ + echo "Committing package id=${package_id} by Org ${org}/Peer ${peer}" + # use the --init-required flag to request the ``Init`` function be invoked to initialize the chaincode + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer lifecycle chaincode commit \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --sequence 1 \ + --peerAddresses ${ORG1_PEER0_URL} \ --tlsRootCertFiles ${ORG1_PEER0_TLS_ROOTCERT} \ --peerAddresses ${ORG2_PEER0_URL} \ --tlsRootCertFiles ${ORG2_PEER0_TLS_ROOTCERT} \ - --waitForEvent \ - --collections-config "${collection_config}" \ - --signature-policy "${policy}" - else - peer lifecycle chaincode commit \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${cc_name} \ - --version ${version} \ - --init-required \ - --sequence 1 \ - --peerAddresses ${ORG1_PEER0_URL} \ + --waitForEvent \ + --collections-config "${collection_config}" \ + --signature-policy "${policy}" + else + peer lifecycle chaincode commit \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --version ${version} \ + --init-required \ + --sequence 1 \ + --peerAddresses ${ORG1_PEER0_URL} \ --tlsRootCertFiles ${ORG1_PEER0_TLS_ROOTCERT} \ --peerAddresses ${ORG2_PEER0_URL} \ --tlsRootCertFiles ${ORG2_PEER0_TLS_ROOTCERT} \ - --waitForEvent \ - --collections-config "${collection_config}" \ - --signature-policy "${policy}" \ - --tls true \ - --cafile ${orderer_tls_rootcert} >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode Commit on remote org ${org}/peer$peer has Failed" - echo "=== Chaincode is committed on channel $channel === " + --waitForEvent \ + --collections-config "${collection_config}" \ + --signature-policy "${policy}" \ + --tls true \ + --cafile ${orderer_tls_rootcert} >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode Commit on remote org ${org}/peer$peer has Failed" + echo "=== Chaincode is committed on channel $channel === " } # Query the Commit the chaincode definition # chaincodeQueryCommitted org peer peer_url peer_tls_root_cert channel cc_name -chaincodeQueryCommitted () { - if [ "$#" -ne 6 ]; then - echo_r "Wrong param number for chaincode querycommit" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_tls_root_cert=$4 - local channel=$5 - local cc_name=$6 +chaincodeQueryCommitted() { + if [ "$#" -ne 6 ]; then + echo_r "Wrong param number for chaincode querycommit" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local channel=$5 + local cc_name=$6 - setEnvs $org $peer + setEnvs $org $peer - echo "Query the committed status of chaincode $cc_name with ${peer_url} " - peer lifecycle chaincode querycommitted \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_tls_root_cert} \ - --channelID ${channel} \ - --output json \ - --name ${cc_name} + echo "Query the committed status of chaincode $cc_name with ${peer_url} " + peer lifecycle chaincode querycommitted \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --output json \ + --name ${cc_name} - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "ChaincodeQueryCommit Failed: org ${org}/peer$peer" + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeQueryCommit Failed: org ${org}/peer$peer" } # Instantiate chaincode on specifized peer node # chaincodeInstantiate channel org peer orderer_url cc_name version args -chaincodeInstantiate () { - if [ "$#" -gt 9 -a "$#" -lt 7 ]; then - echo_r "Wrong param number for chaincode instantaite" - exit -1 - fi - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local cc_name=$5 - local version=$6 - local args=$7 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +chaincodeInstantiate() { + if [ "$#" -gt 9 -a "$#" -lt 7 ]; then + echo_r "Wrong param number for chaincode instantaite" + exit -1 + fi + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local cc_name=$5 + local version=$6 + local args=$7 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - if [ ! -z "$8" ]; then - collection_config=$8 - fi + if [ ! -z "$8" ]; then + collection_config=$8 + fi - if [ ! -z "$9" ]; then - policy=$9 - fi + if [ ! -z "$9" ]; then + policy=$9 + fi - setEnvs $org $peer - echo "=== chaincodeInstantiate for channel ${channel} on org $org/peer $peer ====" - echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode instantiate \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${cc_name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - >&log.txt - else - peer chaincode instantiate \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${cc_name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - --tls \ - --cafile ${ORDERER0_TLS_CA} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "ChaincodeInstantiation on org $org/peer$peer in channel ${channel} failed" - echo "=== Chaincode Instantiated in channel ${channel} by peer$peer ===" + setEnvs $org $peer + echo "=== chaincodeInstantiate for channel ${channel} on org $org/peer $peer ====" + echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode instantiate \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + >&log.txt + else + peer chaincode instantiate \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + --tls \ + --cafile ${ORDERER0_TLS_CA} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeInstantiation on org $org/peer$peer in channel ${channel} failed" + echo "=== Chaincode Instantiated in channel ${channel} by peer$peer ===" } # Invoke the Init func of chaincode to start the container # Usage: chaincodeInit org peer channel orderer cc_name args peer_url peer_org_tlsca -chaincodeInit () { - if [ "$#" -ne 8 ]; then - echo_r "Wrong param number for chaincode Init" - exit -1 - fi - local org=$1 - local peer=$2 - local channel=$3 - local orderer=$4 - local cc_name=$5 - local args=$6 - local peer_url=$7 - local peer_org_tlsca=$8 +chaincodeInit() { + if [ "$#" -ne 8 ]; then + echo_r "Wrong param number for chaincode Init" + exit -1 + fi + local org=$1 + local peer=$2 + local channel=$3 + local orderer=$4 + local cc_name=$5 + local args=$6 + local peer_url=$7 + local peer_org_tlsca=$8 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 - echo "=== chaincodeInit to orderer by id of org${org}/peer${peer} === " - echo "channel=${channel}, cc_name=${cc_name}, args=${args}" - setEnvs $org $peer - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode invoke \ - -o ${orderer} \ - --channelID ${channel} \ - --name ${cc_name} \ - --peerAddresses ${peer_url} \ + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + echo "=== chaincodeInit to orderer by id of org${org}/peer${peer} === " + echo "channel=${channel}, cc_name=${cc_name}, args=${args}" + setEnvs $org $peer + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke \ + -o ${orderer} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ - --isInit \ - -c ${args} \ - >&log.txt - else - peer chaincode invoke \ - -o ${orderer} \ - --channelID ${channel} \ - --name ${cc_name} \ - --peerAddresses ${peer_url} \ + --isInit \ + -c ${args} \ + >&log.txt + else + peer chaincode invoke \ + -o ${orderer} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ - --isInit \ - -c ${args} \ - --tls \ - --cafile ${ORDERER0_TLS_CA} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode Init failed: peer$peer in channel ${channel}" - echo "=== Chaincode Init done: peer$peer in channel ${channel} === " + --isInit \ + -c ${args} \ + --tls \ + --cafile ${ORDERER0_TLS_CA} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode Init failed: peer$peer in channel ${channel}" + echo "=== Chaincode Init done: peer$peer in channel ${channel} === " } # Usage: chaincodeInvoke org peer channel orderer cc_name args peer_url peer_org_tlsca -chaincodeInvoke () { - if [ "$#" -ne 9 ]; then - echo_r "Wrong param number for chaincode Invoke" - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_org_tlsca=$4 - local channel=$5 - local orderer_url=$6 - local orderer_tls_rootcert=$7 - local cc_name=$8 - local args=$9 +chaincodeInvoke() { + if [ "$#" -ne 9 ]; then + echo_r "Wrong param number for chaincode Invoke" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_org_tlsca=$4 + local channel=$5 + local orderer_url=$6 + local orderer_tls_rootcert=$7 + local cc_name=$8 + local args=$9 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 - echo "=== chaincodeInvoke to orderer by id of org${org}/peer${peer} === " - echo "channel=${channel}, cc_name=${cc_name}, args=${args}" - setEnvs $org $peer - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode invoke \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${cc_name} \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_org_tlsca} \ - -c ${args} \ - >&log.txt - else - peer chaincode invoke \ - -o ${orderer_url} \ - --channelID ${channel} \ - --name ${cc_name} \ - --peerAddresses ${peer_url} \ + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + echo "=== chaincodeInvoke to orderer by id of org${org}/peer${peer} === " + echo "channel=${channel}, cc_name=${cc_name}, args=${args}" + setEnvs $org $peer + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode invoke \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ - -c ${args} \ - --tls \ - --cafile ${orderer_tls_rootcert} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Invoke execution on peer$peer failed " - echo "=== Invoke transaction on peer$peer in channel ${channel} is successful === " + -c ${args} \ + >&log.txt + else + peer chaincode invoke \ + -o ${orderer_url} \ + --channelID ${channel} \ + --name ${cc_name} \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_org_tlsca} \ + -c ${args} \ + --tls \ + --cafile ${orderer_tls_rootcert} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Invoke execution on peer$peer failed " + echo "=== Invoke transaction on peer$peer in channel ${channel} is successful === " } # query org peer channel cc_name args expected_result -chaincodeQuery () { - if [ "$#" -ne 7 -a "$#" -ne 8 ]; then - echo_r "Wrong param number $# for chaincode Query" - echo $* - exit -1 - fi - local org=$1 - local peer=$2 - local peer_url=$3 - local peer_org_tlsca=$4 - local channel=$5 - local cc_name=$6 - local args=$7 - local expected_result="" +chaincodeQuery() { + if [ "$#" -ne 7 -a "$#" -ne 8 ]; then + echo_r "Wrong param number $# for chaincode Query" + echo $* + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_org_tlsca=$4 + local channel=$5 + local cc_name=$6 + local args=$7 + local expected_result="" - [ $# -eq 8 ] && local expected_result=$8 + [ $# -eq 8 ] && local expected_result=$8 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 - echo "=== chaincodeQuery to org $org/peer $peer === " - echo "channel=${channel}, cc_name=${cc_name}, args=${args}, expected_result=${expected_result}" - local rc=1 - local starttime=$(date +%s) + echo "=== chaincodeQuery to org $org/peer $peer === " + echo "channel=${channel}, cc_name=${cc_name}, args=${args}, expected_result=${expected_result}" + local rc=1 + local starttime=$(date +%s) - setEnvs $org $peer + setEnvs $org $peer - # we either get a successful response, or reach TIMEOUT - while [ "$(($(date +%s)-starttime))" -lt "$TIMEOUT" -a $rc -ne 0 ]; do - echo "Attempting to Query org ${org}/peer ${peer} ...$(($(date +%s)-starttime)) secs" - peer chaincode query \ - -C "${channel}" \ - -n "${cc_name}" \ - --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_org_tlsca} \ - -c "${args}" \ - >&log.txt - rc=$? - if [ -n "${expected_result}" ]; then # need to check the result - test $? -eq 0 && VALUE=$(cat log.txt | awk 'END {print $NF}') - if [ "$VALUE" = "${expected_result}" ]; then - let rc=0 - echo_b "$VALUE == ${expected_result}, passed" - else - let rc=1 - echo_b "$VALUE != ${expected_result}, will retry" - fi - fi - if [ $rc -ne 0 ]; then - cat log.txt - sleep 2 - fi - done + # we either get a successful response, or reach TIMEOUT + while [ "$(($(date +%s) - starttime))" -lt "$TIMEOUT" -a $rc -ne 0 ]; do + echo "Attempting to Query org ${org}/peer ${peer} ...$(($(date +%s) - starttime)) secs" + peer chaincode query \ + -C "${channel}" \ + -n "${cc_name}" \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_org_tlsca} \ + -c "${args}" \ + >&log.txt + rc=$? + if [ -n "${expected_result}" ]; then # need to check the result + test $? -eq 0 && VALUE=$(cat log.txt | awk 'END {print $NF}') + if [ "$VALUE" = "${expected_result}" ]; then + let rc=0 + echo_b "$VALUE == ${expected_result}, passed" + else + let rc=1 + echo_b "$VALUE != ${expected_result}, will retry" + fi + fi + if [ $rc -ne 0 ]; then + cat log.txt + sleep 2 + fi + done - # rc==0, or timeout - if [ $rc -eq 0 ]; then - echo "=== Query is done: org $org/peer$peer in channel ${channel} === " - else - echo_r "=== Query failed: org $org/peer$peer, run `make stop clean` to clean ===" - exit 1 - fi + # rc==0, or timeout + if [ $rc -eq 0 ]; then + echo "=== Query is done: org $org/peer$peer in channel ${channel} === " + else + echo_r "=== Query failed: org $org/peer$peer, run $(make stop clean) to clean ===" + exit 1 + fi } # List Installed chaincode on specified peer node, and instantiated chaincodes at specific channel # chaincodeList org1 peer0 businesschannel -chaincodeList () { - local org=$1 - local peer=$2 - local channel=$3 +chaincodeList() { + local org=$1 + local peer=$2 + local channel=$3 - [ -z $org ] && [ -z $peer ] && [ -z $channel ] && echo_r "input param invalid" && exit -1 - echo "=== ChaincodeList on org ${org}/peer ${peer} === " - setEnvs $org $peer - echo_b "Get installed chaincodes at peer$peer.org$org" - peer chaincode list \ - --installed > log.txt & - # \ - #--peerAddresses "peer${peer}.org${org}.example.com" --tls false - rc=$? - [ $rc -ne 0 ] && cat log.txt + [ -z $org ] && [ -z $peer ] && [ -z $channel ] && echo_r "input param invalid" && exit -1 + echo "=== ChaincodeList on org ${org}/peer ${peer} === " + setEnvs $org $peer + echo_b "Get installed chaincodes at peer$peer.org$org" + peer chaincode list \ + --installed >log.txt & + # \ + #--peerAddresses "peer${peer}.org${org}.example.com" --tls false + rc=$? + [ $rc -ne 0 ] && cat log.txt verifyResult $rc "List installed chaincodes on remote org ${org}/peer$peer has Failed" - echo_b "Get instantiated chaincodes at channel $org" - peer chaincode list \ - --instantiated \ - -C ${channel} > log.txt & - rc=$? - [ $rc -ne 0 ] && cat log.txt + echo_b "Get instantiated chaincodes at channel $org" + peer chaincode list \ + --instantiated \ + -C ${channel} >log.txt & + rc=$? + [ $rc -ne 0 ] && cat log.txt verifyResult $rc "List installed chaincodes on remote org ${org}/peer$peer has Failed" - echo "=== ChaincodeList is done at peer${peer}.org${org} === " + echo "=== ChaincodeList is done at peer${peer}.org${org} === " } # Start chaincode with dev mode # TODO: use variables instead of hard-coded value -chaincodeStartDev () { - local peer=$1 - local version=$2 - [ -z $peer ] && [ -z $version ] && echo_r "input param invalid" && exit -1 - setEnvs 1 0 - CORE_CHAINCODE_LOGLEVEL=debug \ - CORE_PEER_ADDRESS=peer${peer}.org1.example.com:7052 \ - CORE_CHAINCODE_ID_NAME=${CC_02_NAME}:${version} \ - nohup ./scripts/chaincode_example02 > chaincode_dev.log & - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Chaincode start in dev mode has Failed" - echo "=== Chaincode started in dev mode === " +chaincodeStartDev() { + local peer=$1 + local version=$2 + [ -z $peer ] && [ -z $version ] && echo_r "input param invalid" && exit -1 + setEnvs 1 0 + CORE_CHAINCODE_LOGLEVEL=debug \ + CORE_PEER_ADDRESS=peer${peer}.org1.example.com:7052 \ + CORE_CHAINCODE_ID_NAME=${CC_02_NAME}:${version} \ + nohup ./scripts/chaincode_example02 >chaincode_dev.log & + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Chaincode start in dev mode has Failed" + echo "=== Chaincode started in dev mode === " } # chaincodeUpgrade channel org peer orderer_url cc_name version args -chaincodeUpgrade () { - if [ "$#" -gt 9 -a "$#" -lt 7 ]; then - echo_r "Wrong param number for chaincode instantaite" - exit -1 - fi - local channel=$1 - local org=$2 - local peer=$3 - local orderer_url=$4 - local cc_name=$5 - local version=$6 - local args=$7 - local collection_config="" # collection config file path for sideDB - local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy +chaincodeUpgrade() { + if [ "$#" -gt 9 -a "$#" -lt 7 ]; then + echo_r "Wrong param number for chaincode instantaite" + exit -1 + fi + local channel=$1 + local org=$2 + local peer=$3 + local orderer_url=$4 + local cc_name=$5 + local version=$6 + local args=$7 + local collection_config="" # collection config file path for sideDB + local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy - echo "=== chaincodeUpgrade to orderer by id of org ${org}/peer $peer === " - echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" + echo "=== chaincodeUpgrade to orderer by id of org ${org}/peer $peer === " + echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" - setEnvs $org $peer - # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), - # lets supply it directly as we know it using the "-o" option - if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then - peer chaincode upgrade \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${cc_name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - >&log.txt - else - peer chaincode upgrade \ - -o ${orderer_url} \ - -C ${channel} \ - -n ${cc_name} \ - -v ${version} \ - -c ${args} \ - -P "${policy}" \ - --collections-config "${collection_config}" \ - --tls \ - --cafile ${ORDERER0_TLS_CA} \ - >&log.txt - fi - rc=$? - [ $rc -ne 0 ] && cat log.txt - verifyResult $rc "Upgrade execution on peer$peer failed " - echo "=== Upgrade transaction on peer$peer in channel ${channel} is successful === " + setEnvs $org $peer + # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), + # lets supply it directly as we know it using the "-o" option + if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then + peer chaincode upgrade \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + >&log.txt + else + peer chaincode upgrade \ + -o ${orderer_url} \ + -C ${channel} \ + -n ${cc_name} \ + -v ${version} \ + -c ${args} \ + -P "${policy}" \ + --collections-config "${collection_config}" \ + --tls \ + --cafile ${ORDERER0_TLS_CA} \ + >&log.txt + fi + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "Upgrade execution on peer$peer failed " + echo "=== Upgrade transaction on peer$peer in channel ${channel} is successful === " } # configtxlator encode json to pb # Usage: configtxlatorEncode msgType input output configtxlatorEncode() { - local msgType=$1 - local input=$2 - local output=$3 + local msgType=$1 + local input=$2 + local output=$3 - echo "Encode $input --> $output using type $msgType" - docker exec -it ${CTL_CONTAINER} configtxlator proto_encode \ - --type=${msgType} \ - --input=${input} \ - --output=${output} + echo "Encode $input --> $output using type $msgType" + docker exec -it ${CTL_CONTAINER} configtxlator proto_encode \ + --type=${msgType} \ + --input=${input} \ + --output=${output} - #curl -sX POST \ - # --data-binary @${input} \ - # ${CTL_ENCODE_URL}/${msgType} \ - # >${output} + #curl -sX POST \ + # --data-binary @${input} \ + # ${CTL_ENCODE_URL}/${msgType} \ + # >${output} } # configtxlator decode pb to json # Usage: configtxlatorEncode msgType input output configtxlatorDecode() { - local msgType=$1 - local input=$2 - local output=$3 + local msgType=$1 + local input=$2 + local output=$3 - echo "Config Decode $input --> $output using type $msgType" - if [ ! -f $input ]; then - echo_r "input file not found" - exit 1 - fi + echo "Config Decode $input --> $output using type $msgType" + if [ ! -f $input ]; then + echo_r "input file not found" + exit 1 + fi - docker exec -it ${CTL_CONTAINER} configtxlator proto_decode \ - --type=${msgType} \ - --input=${input} \ - --output=${output} + docker exec -it ${CTL_CONTAINER} configtxlator proto_decode \ + --type=${msgType} \ + --input=${input} \ + --output=${output} - #curl -sX POST \ - # --data-binary @"${input}" \ - # "${CTL_DECODE_URL}/${msgType}" \ - # > "${output}" + #curl -sX POST \ + # --data-binary @"${input}" \ + # "${CTL_DECODE_URL}/${msgType}" \ + # > "${output}" } # compute diff between two pb # Usage: configtxlatorCompare channel origin updated output configtxlatorCompare() { - local channel=$1 - local origin=$2 - local updated=$3 - local output=$4 + local channel=$1 + local origin=$2 + local updated=$3 + local output=$4 - echo "Config Compare $origin vs $updated > ${output} in channel $channel" - if [ ! -f $origin ] || [ ! -f $updated ]; then - echo_r "input file not found" - exit 1 - fi + echo "Config Compare $origin vs $updated > ${output} in channel $channel" + if [ ! -f $origin ] || [ ! -f $updated ]; then + echo_r "input file not found" + exit 1 + fi - docker exec -it ${CTL_CONTAINER} configtxlator compute_update \ - --original=${origin} \ - --updated=${updated} \ - --channel_id=${channel} \ - --output=${output} + docker exec -it ${CTL_CONTAINER} configtxlator compute_update \ + --original=${origin} \ + --updated=${updated} \ + --channel_id=${channel} \ + --output=${output} - #curl -sX POST \ - # -F channel="${channel}" \ - # -F "original=@${origin}" \ - # -F "updated=@${updated}" \ - # "${CTL_COMPARE_URL}" \ - # > "${output}" + #curl -sX POST \ + # -F channel="${channel}" \ + # -F "original=@${origin}" \ + # -F "updated=@${updated}" \ + # "${CTL_COMPARE_URL}" \ + # > "${output}" - [ $? -eq 0 ] || echo_r "Failed to compute config update" + [ $? -eq 0 ] || echo_r "Failed to compute config update" } # Run cmd inside the config generator container gen_con_exec() { - docker exec -it $GEN_CONTAINER "$@" -} \ No newline at end of file + docker exec -it $GEN_CONTAINER "$@" +} diff --git a/hyperledger_fabric/v2.3.0/Makefile b/hyperledger_fabric/v2.3.0/Makefile index fe67c820..12cfaebd 100644 --- a/hyperledger_fabric/v2.3.0/Makefile +++ b/hyperledger_fabric/v2.3.0/Makefile @@ -88,7 +88,7 @@ ready: # create/join channel, install/instantiate cc channel_test: test_channel_create test_channel_join test_channel_list test_channel_getinfo # chaincode related operations -cc_test: test_cc_install test_cc_queryinstalled test_cc_approveformyorg test_cc_checkcommitreadiness test_cc_commit test_cc_querycommitted test_cc_invoke_query +cc_test: test_cc_install test_cc_queryinstalled test_cc_approveformyorg test_cc_queryapproved test_cc_checkcommitreadiness test_cc_commit test_cc_querycommitted test_cc_invoke_query restart: stop start @@ -165,6 +165,10 @@ test_cc_approveformyorg: # Approve the chaincode definition @echo "Approve the chaincode by all orgs" @docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_approveformyorg.sh" +test_cc_queryapproved: # Query the approved chaincode definition + @echo "Query the approved status of chaincode" + @docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_queryapproved.sh" + test_cc_checkcommitreadiness: # Query the approval status of chaincode @echo "Query the chaincode approval status by all orgs" @docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_checkcommitreadiness.sh" diff --git a/hyperledger_fabric/v2.3.0/scripts/download_images.sh b/hyperledger_fabric/v2.3.0/scripts/download_images.sh index 05d57645..223856d9 100644 --- a/hyperledger_fabric/v2.3.0/scripts/download_images.sh +++ b/hyperledger_fabric/v2.3.0/scripts/download_images.sh @@ -44,10 +44,10 @@ done pull_image yeasy/hyperledger-fabric:$FABRIC_IMG_TAG "true" # pull_image yeasy/blockchain-explorer:0.1.0-preview # TODO: wait for official images -echo "=== Pulling fabric core images ${FABRIC_IMG_TAG} from fabric repo... ===" -for IMG in peer orderer ca tools; do - pull_image hyperledger/fabric-${IMG}:$FABRIC_IMG_TAG & # e.g., v2.3.0 -done +#echo "=== Pulling fabric core images ${FABRIC_IMG_TAG} from fabric repo... ===" +#for IMG in peer orderer ca tools; do +# pull_image hyperledger/fabric-${IMG}:$FABRIC_IMG_TAG & # e.g., v2.3.0 +#done echo "=== Pulling fabric chaincode images ${TWO_DIGIT_VERSION} from fabric repo... ===" for IMG in ccenv baseos javaenv nodeenv; do diff --git a/hyperledger_fabric/v2.3.0/scripts/func.sh b/hyperledger_fabric/v2.3.0/scripts/func.sh index 4c982866..4f7cc65e 100644 --- a/hyperledger_fabric/v2.3.0/scripts/func.sh +++ b/hyperledger_fabric/v2.3.0/scripts/func.sh @@ -63,7 +63,7 @@ setEnvs () { local t="" export CORE_PEER_LOCALMSPID="Org${org}MSP" #CORE_PEER_MSPCONFIGPATH=\$${ORG${org}_ADMIN_MSP} - t="\${ORG${org}_PEER${peer}_URL}" && export CORE_PEER_ADDRESS=`eval echo $t` + t="\${ORG${org}_PEER${peer}_URL}" && export CORE_PEER_ADDRESS=`eval echo $t` # this is not needed if specifying peerAddresses t="\${ORG${org}_ADMIN_MSP}" && export CORE_PEER_MSPCONFIGPATH=`eval echo $t` t="\${ORG${org}_PEER${peer}_TLS_ROOTCERT}" && export CORE_PEER_TLS_ROOTCERT_FILE=`eval echo $t` @@ -356,30 +356,30 @@ chaincodeInstall () { local peer=$2 local peer_url=$3 local peer_tls_root_cert=$4 - local name=$5 + local cc_name=$5 local version=$6 local cc_path=$7 - [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $version ] && [ -z $cc_path ] && echo_r "input param invalid" && exit -1 + [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $version ] && [ -z $cc_path ] && echo_r "input param invalid" && exit -1 echo "=== Install Chaincode on org ${org}/peer ${peer} === " - echo "name=${name}, version=${version}, path=${cc_path}" + echo "cc_name=${cc_name}, version=${version}, path=${cc_path}" setEnvs $org $peer echo "packaging chaincode into tar.gz package" - local label=${name} - #local label=${name}_${version} + local label=${cc_name} + #local label=${cc_name}_${version} - echo "packaging chaincode ${name} with path ${cc_path} and label ${label}" - peer lifecycle chaincode package ${name}.tar.gz \ + echo "packaging chaincode ${cc_name} with path ${cc_path} and label ${label}" + peer lifecycle chaincode package ${cc_name}.tar.gz \ --path ${cc_path} \ --lang golang \ --label ${label} rc=$? - [ $rc -ne 0 ] && echo "Error in packaging chaincode ${name}" && exit -1 + [ $rc -ne 0 ] && echo "Error in packaging chaincode ${cc_name}" && exit -1 # v1.x action #peer chaincode install \ - # -n ${name} \ + # -n ${cc_name} \ # -v $version \ # -p ${cc_path} \ # >&log.txt @@ -388,7 +388,7 @@ chaincodeInstall () { peer lifecycle chaincode install \ --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_tls_root_cert} \ - ${name}.tar.gz | tee >&log.txt + ${cc_name}.tar.gz | tee >&log.txt rc=$? [ $rc -ne 0 ] && cat log.txt @@ -439,7 +439,7 @@ chaincodeGetInstalled () { echo "querying installed chaincode and get its package id" peer lifecycle chaincode queryinstalled >&query.log local label=${cc_name} - #package_id=$(grep -o "${name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) package_id=$(grep -o "${label}:[a-z0-9]*" query.log) echo "Get the installed chaincode package with id= ${package_id} on peer $peer at $peer_url " @@ -458,7 +458,7 @@ chaincodeGetInstalled () { # Approve the chaincode definition -# chaincodeApproveForMyOrg channel org peer peer_url peer_tls_root_cert orderer_url orderer_tls_rootcert channel name version +# chaincodeApproveForMyOrg channel org peer peer_url peer_tls_root_cert orderer_url orderer_tls_rootcert channel cc_name version chaincodeApproveForMyOrg () { if [ "$#" -ne 9 -a "$#" -ne 11 ]; then echo_r "Wrong param number for chaincode approve" @@ -471,7 +471,7 @@ chaincodeApproveForMyOrg () { local orderer_url=$5 local orderer_tls_rootcert=$6 local channel=$7 - local name=$8 + local cc_name=$8 local version=$9 local collection_config="" # collection config file path for sideDB local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy @@ -488,8 +488,8 @@ chaincodeApproveForMyOrg () { echo "querying installed chaincode and get its package id" peer lifecycle chaincode queryinstalled >&query.log cat query.log - local label=${name} - #package_id=$(grep -o "${name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + local label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) package_id=$(grep -o "${label}:[a-z0-9]*" query.log) echo "Approve package id=${package_id} by Org ${org}/Peer ${peer}" @@ -498,7 +498,7 @@ chaincodeApproveForMyOrg () { peer lifecycle chaincode approveformyorg \ --peerAddresses ${peer_url} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --version ${version} \ --init-required \ --package-id ${package_id} \ @@ -511,7 +511,7 @@ chaincodeApproveForMyOrg () { --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_tls_root_cert} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --version ${version} \ --init-required \ --package-id ${package_id} \ @@ -529,8 +529,38 @@ chaincodeApproveForMyOrg () { echo "=== Chaincode is approved on remote peer$peer === " } -# Query the Approve the chaincode definition -# chaincodeCheckCommitReadiness channel org peer name version sequence +# Query the Approved chaincode definition +# chaincodeQueryApproved org peer peer_url peer_tls_root_cert channel cc_name +chaincodeQueryApproved () { + if [ "$#" -ne 6 ]; then + echo_r "Wrong param number for chaincode queryapproved" + exit -1 + fi + local org=$1 + local peer=$2 + local peer_url=$3 + local peer_tls_root_cert=$4 + local channel=$5 + local cc_name=$6 + + setEnvs $org $peer + + echo "Query the approved chaincode definition of $cc_name with ${peer_url} " + env | grep CORE_PEER + peer lifecycle chaincode queryapproved \ + --peerAddresses ${peer_url} \ + --tlsRootCertFiles ${peer_tls_root_cert} \ + --channelID ${channel} \ + --name ${cc_name} \ + --output json + + rc=$? + [ $rc -ne 0 ] && cat log.txt + verifyResult $rc "ChaincodeQueryApproved Failed: org ${org}/peer$peer" +} + +# Check the commitReadiness of the chaincode definition +# chaincodeCheckCommitReadiness channel org peer cc_name version sequence chaincodeCheckCommitReadiness () { if [ "$#" -ne 8 ]; then echo_r "Wrong param number for chaincode queryapproval" @@ -541,18 +571,18 @@ chaincodeCheckCommitReadiness () { local peer_url=$3 local peer_tls_root_cert=$4 local channel=$5 - local name=$6 + local cc_name=$6 local version=$7 local sequence=$8 setEnvs $org $peer - echo "checkcommitreadiness with chaincode $name $version $sequence" + echo "checkcommitreadiness with chaincode $cc_name $version $sequence" peer lifecycle chaincode checkcommitreadiness \ --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_tls_root_cert} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --output json \ --version ${version} \ --sequence ${sequence} @@ -563,7 +593,7 @@ chaincodeCheckCommitReadiness () { } # Anyone can commit the chaincode definition once it's approved by major -# chaincodeCommit org peer channel orderer_url orderer_tls_rootcert name version [collection-config] [endorse-policy] +# chaincodeCommit org peer channel orderer_url orderer_tls_rootcert cc_name version [collection-config] [endorse-policy] chaincodeCommit () { if [ "$#" -ne 7 -a "$#" -ne 9 ]; then echo_r "Wrong param number for chaincode commit" @@ -574,7 +604,7 @@ chaincodeCommit () { local channel=$3 local orderer_url=$4 local orderer_tls_rootcert=$5 - local name=$6 + local cc_name=$6 local version=$7 local collection_config="" # collection config file path for sideDB local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy @@ -590,8 +620,8 @@ chaincodeCommit () { setEnvs $org $peer echo "querying installed chaincode and get its package id" peer lifecycle chaincode queryinstalled >&query.log - label=${name} - #package_id=$(grep -o "${name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) + label=${cc_name} + #package_id=$(grep -o "${cc_name}_${version}:[a-z0-9]*" query.log|cut -d ":" -f 2) package_id=$(grep -o "${label}:[a-z0-9]*" query.log) echo "package_id=${package_id}" @@ -601,7 +631,7 @@ chaincodeCommit () { peer lifecycle chaincode commit \ -o ${orderer_url} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --version ${version} \ --init-required \ --sequence 1 \ @@ -616,7 +646,7 @@ chaincodeCommit () { peer lifecycle chaincode commit \ -o ${orderer_url} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --version ${version} \ --init-required \ --sequence 1 \ @@ -648,17 +678,17 @@ chaincodeQueryCommitted () { local peer_url=$3 local peer_tls_root_cert=$4 local channel=$5 - local name=$6 + local cc_name=$6 setEnvs $org $peer - echo "Query the committed status of chaincode $name with ${ORG1_PEER0_URL} " + echo "Query the committed status of chaincode $cc_name with ${peer_url} " peer lifecycle chaincode querycommitted \ --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_tls_root_cert} \ --channelID ${channel} \ --output json \ - --name ${name} + --name ${cc_name} rc=$? [ $rc -ne 0 ] && cat log.txt @@ -666,7 +696,7 @@ chaincodeQueryCommitted () { } # Instantiate chaincode on specifized peer node -# chaincodeInstantiate channel org peer orderer_url name version args +# chaincodeInstantiate channel org peer orderer_url cc_name version args chaincodeInstantiate () { if [ "$#" -gt 9 -a "$#" -lt 7 ]; then echo_r "Wrong param number for chaincode instantaite" @@ -676,7 +706,7 @@ chaincodeInstantiate () { local org=$2 local peer=$3 local orderer_url=$4 - local name=$5 + local cc_name=$5 local version=$6 local args=$7 local collection_config="" # collection config file path for sideDB @@ -692,14 +722,14 @@ chaincodeInstantiate () { setEnvs $org $peer echo "=== chaincodeInstantiate for channel ${channel} on org $org/peer $peer ====" - echo "name=${name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" + echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), # lets supply it directly as we know it using the "-o" option if [ -z "$CORE_PEER_TLS_ENABLED" -o "$CORE_PEER_TLS_ENABLED" = "false" ]; then peer chaincode instantiate \ -o ${orderer_url} \ -C ${channel} \ - -n ${name} \ + -n ${cc_name} \ -v ${version} \ -c ${args} \ -P "${policy}" \ @@ -709,7 +739,7 @@ chaincodeInstantiate () { peer chaincode instantiate \ -o ${orderer_url} \ -C ${channel} \ - -n ${name} \ + -n ${cc_name} \ -v ${version} \ -c ${args} \ -P "${policy}" \ @@ -725,7 +755,7 @@ chaincodeInstantiate () { } # Invoke the Init func of chaincode to start the container -# Usage: chaincodeInit org peer channel orderer name args peer_url peer_org_tlsca +# Usage: chaincodeInit org peer channel orderer cc_name args peer_url peer_org_tlsca chaincodeInit () { if [ "$#" -ne 8 ]; then echo_r "Wrong param number for chaincode Init" @@ -735,14 +765,14 @@ chaincodeInit () { local peer=$2 local channel=$3 local orderer=$4 - local name=$5 + local cc_name=$5 local args=$6 local peer_url=$7 local peer_org_tlsca=$8 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 echo "=== chaincodeInit to orderer by id of org${org}/peer${peer} === " - echo "channel=${channel}, name=${name}, args=${args}" + echo "channel=${channel}, cc_name=${cc_name}, args=${args}" setEnvs $org $peer # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), # lets supply it directly as we know it using the "-o" option @@ -750,7 +780,7 @@ chaincodeInit () { peer chaincode invoke \ -o ${orderer} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ --isInit \ @@ -760,7 +790,7 @@ chaincodeInit () { peer chaincode invoke \ -o ${orderer} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ --isInit \ @@ -775,7 +805,7 @@ chaincodeInit () { echo "=== Chaincode Init done: peer$peer in channel ${channel} === " } -# Usage: chaincodeInvoke org peer channel orderer name args peer_url peer_org_tlsca +# Usage: chaincodeInvoke org peer channel orderer cc_name args peer_url peer_org_tlsca chaincodeInvoke () { if [ "$#" -ne 9 ]; then echo_r "Wrong param number for chaincode Invoke" @@ -788,12 +818,12 @@ chaincodeInvoke () { local channel=$5 local orderer_url=$6 local orderer_tls_rootcert=$7 - local name=$8 + local cc_name=$8 local args=$9 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 echo "=== chaincodeInvoke to orderer by id of org${org}/peer${peer} === " - echo "channel=${channel}, name=${name}, args=${args}" + echo "channel=${channel}, cc_name=${cc_name}, args=${args}" setEnvs $org $peer # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), # lets supply it directly as we know it using the "-o" option @@ -801,7 +831,7 @@ chaincodeInvoke () { peer chaincode invoke \ -o ${orderer_url} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ -c ${args} \ @@ -810,9 +840,9 @@ chaincodeInvoke () { peer chaincode invoke \ -o ${orderer_url} \ --channelID ${channel} \ - --name ${name} \ + --name ${cc_name} \ --peerAddresses ${peer_url} \ - --tlsRootCertFiles ${peer_org_tlsca} \ + --tlsRootCertFiles ${peer_org_tlsca} \ -c ${args} \ --tls \ --cafile ${orderer_tls_rootcert} \ @@ -824,7 +854,7 @@ chaincodeInvoke () { echo "=== Invoke transaction on peer$peer in channel ${channel} is successful === " } -# query org peer channel name args expected_result +# query org peer channel cc_name args expected_result chaincodeQuery () { if [ "$#" -ne 7 -a "$#" -ne 8 ]; then echo_r "Wrong param number $# for chaincode Query" @@ -836,16 +866,16 @@ chaincodeQuery () { local peer_url=$3 local peer_org_tlsca=$4 local channel=$5 - local name=$6 + local cc_name=$6 local args=$7 local expected_result="" [ $# -eq 8 ] && local expected_result=$8 - [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 + [ -z $channel ] && [ -z $org ] && [ -z $peer ] && [ -z $cc_name ] && [ -z $args ] && echo_r "input param invalid" && exit -1 echo "=== chaincodeQuery to org $org/peer $peer === " - echo "channel=${channel}, name=${name}, args=${args}, expected_result=${expected_result}" + echo "channel=${channel}, cc_name=${cc_name}, args=${args}, expected_result=${expected_result}" local rc=1 local starttime=$(date +%s) @@ -856,7 +886,7 @@ chaincodeQuery () { echo "Attempting to Query org ${org}/peer ${peer} ...$(($(date +%s)-starttime)) secs" peer chaincode query \ -C "${channel}" \ - -n "${name}" \ + -n "${cc_name}" \ --peerAddresses ${peer_url} \ --tlsRootCertFiles ${peer_org_tlsca} \ -c "${args}" \ @@ -933,7 +963,7 @@ chaincodeStartDev () { echo "=== Chaincode started in dev mode === " } -# chaincodeUpgrade channel org peer orderer_url name version args +# chaincodeUpgrade channel org peer orderer_url cc_name version args chaincodeUpgrade () { if [ "$#" -gt 9 -a "$#" -lt 7 ]; then echo_r "Wrong param number for chaincode instantaite" @@ -943,14 +973,14 @@ chaincodeUpgrade () { local org=$2 local peer=$3 local orderer_url=$4 - local name=$5 + local cc_name=$5 local version=$6 local args=$7 local collection_config="" # collection config file path for sideDB local policy="OR ('Org1MSP.member','Org2MSP.member')" # endorsement policy echo "=== chaincodeUpgrade to orderer by id of org ${org}/peer $peer === " - echo "name=${name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" + echo "cc_name=${cc_name}, version=${version}, args=${args}, collection_config=${collection_config}, policy=${policy}" setEnvs $org $peer # while 'peer chaincode' command can get the orderer endpoint from the peer (if join was successful), @@ -959,7 +989,7 @@ chaincodeUpgrade () { peer chaincode upgrade \ -o ${orderer_url} \ -C ${channel} \ - -n ${name} \ + -n ${cc_name} \ -v ${version} \ -c ${args} \ -P "${policy}" \ @@ -969,7 +999,7 @@ chaincodeUpgrade () { peer chaincode upgrade \ -o ${orderer_url} \ -C ${channel} \ - -n ${name} \ + -n ${cc_name} \ -v ${version} \ -c ${args} \ -P "${policy}" \ diff --git a/hyperledger_fabric/v2.3.0/scripts/test_cc_queryapproved.sh b/hyperledger_fabric/v2.3.0/scripts/test_cc_queryapproved.sh new file mode 100644 index 00000000..f1ad2ca0 --- /dev/null +++ b/hyperledger_fabric/v2.3.0/scripts/test_cc_queryapproved.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Importing useful functions for cc testing +if [ -f ./func.sh ]; then + source ./func.sh +elif [ -f scripts/func.sh ]; then + source scripts/func.sh +fi + +CC_NAME=${CC_NAME:-$CC_02_NAME} +CC_PATH=${CC_PATH:-$CC_02_PATH} + +echo_b "=== Query Approved Chaincode for ${CC_NAME} on all organizations ... ===" + +for org in "${ORGS[@]}" +do + t="\${ORG${org}_PEER0_URL}" && peer_url=`eval echo $t` + t="\${ORG${org}_PEER0_TLS_ROOTCERT}" && peer_tls_rootcert=`eval echo $t` + chaincodeQueryApproved "$org" 0 ${peer_url} ${peer_tls_rootcert} "${APP_CHANNEL}" ${CC_NAME} +done + +echo_g "=== Query Approved Chaincode done ===" + +echo