diff --git a/hyperledger/latest/Makefile b/hyperledger/latest/Makefile index a4f56bcb..63982b6f 100644 --- a/hyperledger/latest/Makefile +++ b/hyperledger/latest/Makefile @@ -22,8 +22,7 @@ all: sleep 2 make ready - make lscc qscc - + make lscc qscc fetch_block make stop clean ready: restart @@ -63,7 +62,6 @@ stop: # stop the fabric network restart: stop start - ################## Chaincode testing operations ################ test_cc: # test user chaincode on all peers @echo "Invoke and query cc example02 on all peers" @@ -79,6 +77,14 @@ qscc: # test qscc queries lscc: # test lscc quries docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_lscc.sh" +fetch_block: # test channel fetch + docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_fetch.sh" + docker cp fabric-cli:/tmp/block_0.block kafka/channel-artifacts/ + docker cp fabric-cli:/tmp/block_1.block kafka/channel-artifacts/ + docker cp fabric-cli:/tmp/block_2.block kafka/channel-artifacts/ + docker cp fabric-cli:/tmp/block_3.block kafka/channel-artifacts/ + + ################## Env setup related, no need to see usually ################ setup: # setup the environment diff --git a/hyperledger/latest/docker-compose-base-dev.yaml b/hyperledger/latest/docker-compose-base-dev.yaml index 9d21d55e..8caa813a 100644 --- a/hyperledger/latest/docker-compose-base-dev.yaml +++ b/hyperledger/latest/docker-compose-base-dev.yaml @@ -11,7 +11,7 @@ services: extends: file: base.yaml service: orderer-base - image: yeasy/hyperledger-fabric:latest # TODO: latest orderer code cannot work + image: yeasy/hyperledger-fabric:latest container_name: orderer.example.com hostname: orderer.example.com ports: @@ -80,7 +80,7 @@ services: - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp volumes: - $GOPATH/src/github.com/hyperledger/fabric:/opt/gopath/src/github.com/hyperledger/fabric - - /tmp/:/tmp/ + #- /tmp/:/tmp/ - ./scripts:/tmp/scripts # e2e mode configuration #- ./e2e_cli/channel-artifacts:/tmp/channel-artifacts diff --git a/hyperledger/latest/kafka/channel-artifacts/block_0.block b/hyperledger/latest/kafka/channel-artifacts/block_0.block new file mode 100644 index 00000000..83d4d39c Binary files /dev/null and b/hyperledger/latest/kafka/channel-artifacts/block_0.block differ diff --git a/hyperledger/latest/kafka/channel-artifacts/block_0.block.json b/hyperledger/latest/kafka/channel-artifacts/block_0.block.json new file mode 100644 index 00000000..5a80c9a1 --- /dev/null +++ b/hyperledger/latest/kafka/channel-artifacts/block_0.block.json @@ -0,0 +1,774 @@ +{ + "data": { + "data": [ + { + "payload": { + "data": { + "config": { + "channel_group": { + "groups": { + "Application": { + "groups": { + "Org1MSP": { + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org1MSP", + "role": "ADMIN" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org1MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org1MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + } + }, + "values": { + "MSP": { + "mod_policy": "Admins", + "value": { + "config": { + "admins": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "crypto_config": { + "identity_identifier_hash_function": "SHA256", + "signature_hash_family": "SHA2" + }, + "name": "Org1MSP", + "root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSRENDQWVxZ0F3SUJBZ0lSQUxHa2ZJRThZNFNKdU1Zd2lWWGdST0F3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NUzVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkFJQTMrZ2R4QW8vRDdhakdkeFdtelFNV05NY3ZGTjhCV1RYNWRLd1o0M1pHa1hxM1p6WWM2YitkS0FVYktLWQpWaUsrSXhNQkorM2RIMEhocEhzVU9lbWpYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSVA1OUNlV3k0dmV4eXdxVjRxZ1EKNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDdFIzMFJJU0V0OWc3YwpHUGt5Zi92V25XVmtabjJIYUxyaldPQzhsRkdIQUFJZ0k0eXNVekZJa2ZkY2MySjNhRkFnc0w1MGVLbkl3MjZVCkR5T2kwaHlkYS84PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "tls_root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNTakNDQWZDZ0F3SUJBZ0lSQUxrM1R5cXFSYUlqZGtsdTZWRzVyVnN3Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpFdVpYaGhiWEJzWlM1amIyMHdIaGNOTVRjeE1EQTJNVEUwT0RBeFdoY05NamN4TURBME1URTAKT0RBeFdqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTVM1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCSnpQVk1iZDFaOWVodTRTYU5BeW5vaWE3bGkrUXJjTGxqeWR5VitaSGQ5b3N0VzA4b01VTVF5cgo1OGdsczdYZ2lyVkF6ay9oSTR4ZnVHY2I5aW9sOFFLalh6QmRNQTRHQTFVZER3RUIvd1FFQXdJQnBqQVBCZ05WCkhTVUVDREFHQmdSVkhTVUFNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdLUVlEVlIwT0JDSUVJT3VsQnhyZXR0dlYKcXVRUVU5eXFhT2JxcEZtYzE3NnJrcStLekpyTlNoeW9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUNGc1BjVQo5VVQyRFNQZGhqU3lTQnF6UUE2ZG1hMk9waEx3K2NZcHBhYmtDQUlnWGJheStiaVlnWThEYUFyT0hCUTRhNllRCm9pWU9NeGRuQWM3SDROUXFkd3c9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K" + ] + }, + "type": 0 + }, + "version": "0" + } + }, + "version": "0" + }, + "Org2MSP": { + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org2MSP", + "role": "ADMIN" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org2MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org2MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + } + }, + "values": { + "MSP": { + "mod_policy": "Admins", + "value": { + "config": { + "admins": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHVENDQWIrZ0F3SUJBZ0lRQjgzYWNLdEtGOHpOSWd4SjVPQSt6akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHhOekV3TURZeE1UUTRNREZhRncweU56RXdNRFF4TVRRNE1ERmEKTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFEREJaQlpHMXBia0J2Y21jeUxtVjRZVzF3YkdVdVkyOXRNRmt3CkV3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFODZNR0tDNWFXSEFob0xMMmxFcDV6Y05IMEN3ZTIvSFIKVUNKQXVhSVM0bVRQN3VsbTFVR1RaYm9MMC9qRmdXN2JGWHphc3V5OUpTTWRRTXFnQlJzVVphTk5NRXN3RGdZRApWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0Fna0NHUnZRN2N2cnlvClAwWlo3OWhWdFZoTFRkQkY2NHFPTFpoVytzbnh2dWd3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtiUk5YUE4KcGZReS9xWEc3Zzdxbi8zclpYSko3VGF4U0RKUkt1MDJNVW1qQWlBMWJvdmhUSW1YeWlVbE9lM0RHeGkzejlTRQpLUTZMS0R5M1VjcGFMTC8xVWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "crypto_config": { + "identity_identifier_hash_function": "SHA256", + "signature_hash_family": "SHA2" + }, + "name": "Org2MSP", + "root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSRENDQWVxZ0F3SUJBZ0lSQU1YazFMLzZ2V1dRQkZ6eDJqdy9FSlF3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NaTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQk5URVNPaW1DaUFZMG9seWtEN1Z1RWN0WTNCb29EN2ZMRS83WUhsc3NLMlhaTEFQekVuODRxRk43VDI0UW5YdQovdFMwYVRLYmxuQmRWNEJWRnROSEZ1cWpYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUpBaGtiME8zTDY4cUQ5R1dlL1kKVmJWWVMwM1FSZXVLamkyWVZ2cko4YjdvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDTEZIclZMcUdyUHhDMQovRGlWV3NKMGJSUGNhbVl2dzc5SWFMajVZczlBcEFJZ2R1RnU2TysrVFFYeUNGSGprVFppWVVua3ZSNU8vQVVWCmYyOXRiZzNpajlrPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "tls_root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNTVENDQWZDZ0F3SUJBZ0lSQU5LZ1Y3dDZmSGVEeTlmOVpqdnBkMk13Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpJdVpYaGhiWEJzWlM1amIyMHdIaGNOTVRjeE1EQTJNVEUwT0RBeFdoY05NamN4TURBME1URTAKT0RBeFdqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCS0tXQXMwb3ZtMTg0ZXlSbFhWanlmSStrcGtWWUg1d3VERStmM3ZxQ0VWWU1EcUIyYURIN1RpcwpCN1hwZkVtQVRsaStERGQzcnFXKzNFeHdDSkVUQXlLalh6QmRNQTRHQTFVZER3RUIvd1FFQXdJQnBqQVBCZ05WCkhTVUVDREFHQmdSVkhTVUFNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdLUVlEVlIwT0JDSUVJRWp1ZUJocXFmOC8KekowTmNHZWRIVUFTYThSU0pBeWs5UG5hYytXVzQ4SXZNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQmxHdWY0eQprUTZoMDdwdXBuS0Jtd3RvLzlmS3JRMWE2ZlVvOWcwMXRJSi9BaUIrSlJ2ck9oWlJBOElDYUVqN1c4WGRoK3Z4CjBjUERSVThieHE0Q1NHOVc3dz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K" + ] + }, + "type": 0 + }, + "version": "0" + } + }, + "version": "0" + } + }, + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "MAJORITY", + "sub_policy": "Admins" + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Readers" + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + } + }, + "version": "1" + }, + "Orderer": { + "groups": { + "OrdererOrg": { + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "OrdererMSP", + "role": "ADMIN" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "OrdererMSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "OrdererMSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + } + }, + "values": { + "MSP": { + "mod_policy": "Admins", + "value": { + "config": { + "admins": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDVENDQWJDZ0F3SUJBZ0lRTHBmNnNKL3o5dGQvVGRSd1A5RjFRakFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTNNVEF3TmpFeE5EZ3dNVm9YRFRJM01UQXdOREV4TkRnd01Wb3dWakVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4R2pBWUJnTlZCQU1NRVVGa2JXbHVRR1Y0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCnpqMERBUWNEUWdBRVVMRVQ0SGZUa21kRmc5bGNJbFc3SjFZb29hRXRjTVZDdTA1YytJc2hrU2NpZ0tOQ0h1SVMKcFp5dHVNWXpwejZpcmJFUkVENmhrUjZrTTJEd2ZQSTVjNk5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3RwpBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZzJacUxneU5KMU85Yy96VjcxYkFnU2ZHNzlqR3JLSjhmCnJzY0MyYU03Q3Rrd0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2JwZ3pOd0lFd2ZKVVFIRGJBTWNxTUxSQ3B3ZncKRDVDZnNDVHh0eWFBSGdJQ0lDMThGSjZuZDlHY3V2TVh0UElqZ2NHTkI0UkR6MDVndVVDYWlTQWorczZ1Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K" + ], + "crypto_config": { + "identity_identifier_hash_function": "SHA256", + "signature_hash_family": "SHA2" + }, + "name": "OrdererMSP", + "root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNMakNDQWRXZ0F3SUJBZ0lRRVRyM1NIdWg0T0I1eEJEQnNzZ3JIVEFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTNNVEF3TmpFeE5EZ3dNVm9YRFRJM01UQXdOREV4TkRnd01Wb3dhVEVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdGNHeGxMbU52CmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJFOEcwbG1Hck10QUlEWnhOWkV5VkIyb3hTZGYKZ2VTTkRTb2ErUTRTTFZ1MzNqMjlVWGc4Rzg4VmR4cXozK0p3cTBvRnc3VkZEcVV2eENqY1FjcWxIOEtqWHpCZApNQTRHQTFVZER3RUIvd1FFQXdJQnBqQVBCZ05WSFNVRUNEQUdCZ1JWSFNVQU1BOEdBMVVkRXdFQi93UUZNQU1CCkFmOHdLUVlEVlIwT0JDSUVJTm1haTRNalNkVHZYUDgxZTlXd0lFbnh1L1l4cXlpZkg2N0hBdG1qT3dyWk1Bb0cKQ0NxR1NNNDlCQU1DQTBjQU1FUUNJRTg0N2ZMSnBmandRT2Q1b3AvZFMwck5Ca21XenFFMEhtVVY4eHVrYS82ZwpBaUFCNXQrU0trWEtJK3cyWCsvdWtKRHVKbVI3MUpta1Z6NFdOOGtubUovcVJ3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" + ], + "tls_root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNOVENDQWR5Z0F3SUJBZ0lSQU5VS0FIRDZjWWE3VnpWbVhmMmNXZVV3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB4TnpFd01EWXhNVFE0TURGYUZ3MHlOekV3TURReE1UUTRNREZhTUd3eEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SUXdFZ1lEVlFRS0V3dGxlR0Z0Y0d4bExtTnZiVEVhTUJnR0ExVUVBeE1SZEd4elkyRXVaWGhoCmJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUUDQyMEZ1L1puWUhzeVhxZi8KdmpteGhaNUcvbEdIZG5VL3c5NTkvekp2N0Y1SkQ3dThYbnBjL3BsdVZvNFJSaTlCQ2JPblBBZVJMY3RLRms0YQpPRFpzbzE4d1hUQU9CZ05WSFE4QkFmOEVCQU1DQWFZd0R3WURWUjBsQkFnd0JnWUVWUjBsQURBUEJnTlZIUk1CCkFmOEVCVEFEQVFIL01Da0dBMVVkRGdRaUJDRG5sQkpYdG1WNkZuTncrY1FnSlVCTWRuZGx6Mkw0RGYwTGR1T1IKeFlYamNqQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUZpV3l0VFgwbGlydGM2ZTRVd3F6V0lJUG9DQ21ScHJBVQpsaTU4OCt4empBSWdSRktRUFlSKytnd3pmZnRBZjliQ2w1aEEwcGl4WE9zaXpYNzhXcGJvM0lBPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ] + }, + "type": 0 + }, + "version": "0" + } + }, + "version": "0" + } + }, + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "MAJORITY", + "sub_policy": "Admins" + } + }, + "version": "0" + }, + "BlockValidation": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Readers" + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + } + }, + "values": { + "BatchSize": { + "mod_policy": "Admins", + "value": { + "absolute_max_bytes": 102760448, + "max_message_count": 10, + "preferred_max_bytes": 524288 + }, + "version": "0" + }, + "BatchTimeout": { + "mod_policy": "Admins", + "value": { + "timeout": "2s" + }, + "version": "0" + }, + "ChannelRestrictions": { + "mod_policy": "Admins", + "version": "0" + }, + "ConsensusType": { + "mod_policy": "Admins", + "value": { + "type": "kafka" + }, + "version": "0" + }, + "KafkaBrokers": { + "mod_policy": "Admins", + "value": { + "brokers": [ + "kafka0:9092", + "kafka1:9092", + "kafka2:9092", + "kafka3:9092" + ] + }, + "version": "0" + } + }, + "version": "0" + } + }, + "mod_policy": "", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "MAJORITY", + "sub_policy": "Admins" + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Readers" + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + } + }, + "values": { + "BlockDataHashingStructure": { + "mod_policy": "Admins", + "value": { + "width": 4294967295 + }, + "version": "0" + }, + "Consortium": { + "mod_policy": "", + "value": { + "name": "SampleConsortium" + }, + "version": "0" + }, + "HashingAlgorithm": { + "mod_policy": "Admins", + "value": { + "name": "SHA256" + }, + "version": "0" + }, + "OrdererAddresses": { + "mod_policy": "/Channel/Orderer/Admins", + "value": { + "addresses": [ + "orderer.example.com:7050" + ] + }, + "version": "0" + } + }, + "version": "0" + }, + "sequence": "1", + "type": 0 + }, + "last_update": { + "payload": { + "data": { + "config_update": { + "channel_id": "businesschannel", + "isolated_data": { + "rscc_seed_data": { + "channel_group": { + "mod_policy": "/Channel/Application/Admins", + "policies": { + "Example": { + "mod_policy": "Example", + "policy": { + "type": 1, + "value": { + "rule": { + "n_out_of": { + "n": 0 + } + }, + "version": 0 + } + }, + "version": "0" + } + }, + "values": { + "QSCC.Example1": { + "mod_policy": "/Channel/Application/Admins", + "value": { + "policy_ref": "/Channel/Application/Admins" + }, + "version": "0" + }, + "QSCC.Example2": { + "mod_policy": "/Channel/Application/Admins", + "value": { + "policy_ref": "Example" + }, + "version": "0" + } + }, + "version": "0" + }, + "sequence": "0", + "type": 1 + } + }, + "read_set": { + "groups": { + "Application": { + "groups": { + "Org1MSP": { + "mod_policy": "", + "version": "0" + }, + "Org2MSP": { + "mod_policy": "", + "version": "0" + } + }, + "mod_policy": "", + "version": "0" + } + }, + "mod_policy": "", + "values": { + "Consortium": { + "mod_policy": "", + "value": { + "name": "SampleConsortium" + }, + "version": "0" + } + }, + "version": "0" + }, + "type": 0, + "write_set": { + "groups": { + "Application": { + "groups": { + "Org1MSP": { + "mod_policy": "", + "version": "0" + }, + "Org2MSP": { + "mod_policy": "", + "version": "0" + } + }, + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "MAJORITY", + "sub_policy": "Admins" + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Readers" + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + } + }, + "version": "1" + } + }, + "mod_policy": "", + "values": { + "Consortium": { + "mod_policy": "", + "value": { + "name": "SampleConsortium" + }, + "version": "0" + } + }, + "version": "0" + } + }, + "signatures": [ + { + "signature": "MEQCIF+/1A0ve9qijUO81fP732Ktm53eNgYKoH/vgiknHlfEAiBzV0rWkE2JQXWnMTCfsLLWxbhirBbz3BkwS76XeemKSA==", + "signature_header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "nkeXfga1WAHVJhI/6cylAMwIw/JZx3z9" + } + } + ] + }, + "header": { + "channel_header": { + "channel_id": "businesschannel", + "epoch": "0", + "timestamp": "2017-10-08T01:54:48.000Z", + "tx_id": "", + "type": 2, + "version": 0 + }, + "signature_header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "RGk+4J2y8YzWSZ8865tvlHVs404lTEfe" + } + } + }, + "signature": "MEUCIQDJWC1OO0y1g6oMY36j64t/pvIaLn8+UwNbUgKLppaORgIgGnIFHwU5ZlKfpaT1VpEbGazn+ZOrZGXljd7MqlnR4nQ=" + } + }, + "header": { + "channel_header": { + "channel_id": "businesschannel", + "epoch": "0", + "timestamp": "2017-10-08T01:54:48.000Z", + "tx_id": "", + "type": 1, + "version": 0 + }, + "signature_header": { + "creator": "CgpPcmRlcmVyTVNQEusFLS0tLS1CRUdJTiAtLS0tLQpNSUlDRERDQ0FiT2dBd0lCQWdJUkFJUjJJQ25pVk9xQW1rL3Y0anJvekZjd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB4TnpFd01EWXhNVFE0TURGYUZ3MHlOekV3TURReE1UUTRNREZhTUZneEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1Sd3dHZ1lEVlFRREV4TnZjbVJsY21WeUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSQpLb1pJemowREFRY0RRZ0FFRlcyNmM5RktMOFVqVzAyWXBsSHJSUnVQV1VmQ256REhBWEVqZjdoSUp4Y1cwOE1DCldvNXJUU3o3RmhZN3dpZWhKSjkzY3ZkK0lka3dZTnBjR3dvQmVxTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUEKTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnMlpxTGd5TkoxTzljL3pWNzFiQWdTZkc3OWpHcgpLSjhmcnNjQzJhTTdDdGt3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUloQU5pNEUwbTJqQWx3ZGtzdlh6MEdFMVdDCnhnTDhObzBvNVdtdk9TTHMzL2pEQWg4cklrRnhxZVJITml1bG1WemxJOU9EZ3RaN2JxQ1hMMTN3RXd5N09KQlAKLS0tLS1FTkQgLS0tLS0K", + "nonce": "CxBu2sbWpdDcbOaWemXn8oUvFW+maWv4" + } + } + }, + "signature": "MEQCIFMH76hDZ3LTrCNcXxFj/6ho39zSsZLd75Jop+iGrTpFAiAvX0Bdqd8zw1ypnmlidwsBWae8OIX/fXbEiHUjYtEjOA==" + } + ] + }, + "header": { + "data_hash": "BeDx5V7M8bqzfae5bpPBVwVvfow/73OSRClKylzKdNA=", + "number": "0" + }, + "metadata": { + "metadata": [ + "", + "", + "", + "" + ] + } +} diff --git a/hyperledger/latest/kafka/channel-artifacts/block_1.block b/hyperledger/latest/kafka/channel-artifacts/block_1.block new file mode 100644 index 00000000..50703cb6 Binary files /dev/null and b/hyperledger/latest/kafka/channel-artifacts/block_1.block differ diff --git a/hyperledger/latest/kafka/channel-artifacts/block_1.block.json b/hyperledger/latest/kafka/channel-artifacts/block_1.block.json new file mode 100644 index 00000000..7db883c8 --- /dev/null +++ b/hyperledger/latest/kafka/channel-artifacts/block_1.block.json @@ -0,0 +1,735 @@ +{ + "data": { + "data": [ + { + "payload": { + "data": { + "config": { + "channel_group": { + "groups": { + "Application": { + "groups": { + "Org1MSP": { + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org1MSP", + "role": "ADMIN" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org1MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org1MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + } + }, + "values": { + "AnchorPeers": { + "mod_policy": "Admins", + "value": { + "anchor_peers": [ + { + "host": "peer0.org1.example.com", + "port": 7051 + } + ] + }, + "version": "0" + }, + "MSP": { + "mod_policy": "Admins", + "value": { + "config": { + "admins": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "crypto_config": { + "identity_identifier_hash_function": "SHA256", + "signature_hash_family": "SHA2" + }, + "name": "Org1MSP", + "root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSRENDQWVxZ0F3SUJBZ0lSQUxHa2ZJRThZNFNKdU1Zd2lWWGdST0F3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NUzVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQkFJQTMrZ2R4QW8vRDdhakdkeFdtelFNV05NY3ZGTjhCV1RYNWRLd1o0M1pHa1hxM1p6WWM2YitkS0FVYktLWQpWaUsrSXhNQkorM2RIMEhocEhzVU9lbWpYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSVA1OUNlV3k0dmV4eXdxVjRxZ1EKNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDdFIzMFJJU0V0OWc3YwpHUGt5Zi92V25XVmtabjJIYUxyaldPQzhsRkdIQUFJZ0k0eXNVekZJa2ZkY2MySjNhRkFnc0w1MGVLbkl3MjZVCkR5T2kwaHlkYS84PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "tls_root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNTakNDQWZDZ0F3SUJBZ0lSQUxrM1R5cXFSYUlqZGtsdTZWRzVyVnN3Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpFdVpYaGhiWEJzWlM1amIyMHdIaGNOTVRjeE1EQTJNVEUwT0RBeFdoY05NamN4TURBME1URTAKT0RBeFdqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTVM1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCSnpQVk1iZDFaOWVodTRTYU5BeW5vaWE3bGkrUXJjTGxqeWR5VitaSGQ5b3N0VzA4b01VTVF5cgo1OGdsczdYZ2lyVkF6ay9oSTR4ZnVHY2I5aW9sOFFLalh6QmRNQTRHQTFVZER3RUIvd1FFQXdJQnBqQVBCZ05WCkhTVUVDREFHQmdSVkhTVUFNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdLUVlEVlIwT0JDSUVJT3VsQnhyZXR0dlYKcXVRUVU5eXFhT2JxcEZtYzE3NnJrcStLekpyTlNoeW9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUNGc1BjVQo5VVQyRFNQZGhqU3lTQnF6UUE2ZG1hMk9waEx3K2NZcHBhYmtDQUlnWGJheStiaVlnWThEYUFyT0hCUTRhNllRCm9pWU9NeGRuQWM3SDROUXFkd3c9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K" + ] + }, + "type": 0 + }, + "version": "0" + } + }, + "version": "1" + }, + "Org2MSP": { + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org2MSP", + "role": "ADMIN" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org2MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "Org2MSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + } + }, + "values": { + "MSP": { + "mod_policy": "Admins", + "value": { + "config": { + "admins": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHVENDQWIrZ0F3SUJBZ0lRQjgzYWNLdEtGOHpOSWd4SjVPQSt6akFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHhOekV3TURZeE1UUTRNREZhRncweU56RXdNRFF4TVRRNE1ERmEKTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFEREJaQlpHMXBia0J2Y21jeUxtVjRZVzF3YkdVdVkyOXRNRmt3CkV3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFODZNR0tDNWFXSEFob0xMMmxFcDV6Y05IMEN3ZTIvSFIKVUNKQXVhSVM0bVRQN3VsbTFVR1RaYm9MMC9qRmdXN2JGWHphc3V5OUpTTWRRTXFnQlJzVVphTk5NRXN3RGdZRApWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0Fna0NHUnZRN2N2cnlvClAwWlo3OWhWdFZoTFRkQkY2NHFPTFpoVytzbnh2dWd3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtiUk5YUE4KcGZReS9xWEc3Zzdxbi8zclpYSko3VGF4U0RKUkt1MDJNVW1qQWlBMWJvdmhUSW1YeWlVbE9lM0RHeGkzejlTRQpLUTZMS0R5M1VjcGFMTC8xVWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "crypto_config": { + "identity_identifier_hash_function": "SHA256", + "signature_hash_family": "SHA2" + }, + "name": "Org2MSP", + "root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSRENDQWVxZ0F3SUJBZ0lSQU1YazFMLzZ2V1dRQkZ6eDJqdy9FSlF3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCek1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFWk1CY0dBMVVFQ2hNUWIzSm5NaTVsZUdGdGNHeGxMbU52YlRFY01Cb0dBMVVFCkF4TVRZMkV1YjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKQk5URVNPaW1DaUFZMG9seWtEN1Z1RWN0WTNCb29EN2ZMRS83WUhsc3NLMlhaTEFQekVuODRxRk43VDI0UW5YdQovdFMwYVRLYmxuQmRWNEJWRnROSEZ1cWpYekJkTUE0R0ExVWREd0VCL3dRRUF3SUJwakFQQmdOVkhTVUVDREFHCkJnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3S1FZRFZSME9CQ0lFSUpBaGtiME8zTDY4cUQ5R1dlL1kKVmJWWVMwM1FSZXVLamkyWVZ2cko4YjdvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDTEZIclZMcUdyUHhDMQovRGlWV3NKMGJSUGNhbVl2dzc5SWFMajVZczlBcEFJZ2R1RnU2TysrVFFYeUNGSGprVFppWVVua3ZSNU8vQVVWCmYyOXRiZzNpajlrPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ], + "tls_root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNTVENDQWZDZ0F3SUJBZ0lSQU5LZ1Y3dDZmSGVEeTlmOVpqdnBkMk13Q2dZSUtvWkl6ajBFQXdJd2RqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIekFkQmdOVkJBTVRGblJzCmMyTmhMbTl5WnpJdVpYaGhiWEJzWlM1amIyMHdIaGNOTVRjeE1EQTJNVEUwT0RBeFdoY05NamN4TURBME1URTAKT0RBeFdqQjJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRQpCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTWk1bGVHRnRjR3hsTG1OdmJURWZNQjBHCkExVUVBeE1XZEd4elkyRXViM0puTWk1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDkKQXdFSEEwSUFCS0tXQXMwb3ZtMTg0ZXlSbFhWanlmSStrcGtWWUg1d3VERStmM3ZxQ0VWWU1EcUIyYURIN1RpcwpCN1hwZkVtQVRsaStERGQzcnFXKzNFeHdDSkVUQXlLalh6QmRNQTRHQTFVZER3RUIvd1FFQXdJQnBqQVBCZ05WCkhTVUVDREFHQmdSVkhTVUFNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdLUVlEVlIwT0JDSUVJRWp1ZUJocXFmOC8KekowTmNHZWRIVUFTYThSU0pBeWs5UG5hYytXVzQ4SXZNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQmxHdWY0eQprUTZoMDdwdXBuS0Jtd3RvLzlmS3JRMWE2ZlVvOWcwMXRJSi9BaUIrSlJ2ck9oWlJBOElDYUVqN1c4WGRoK3Z4CjBjUERSVThieHE0Q1NHOVc3dz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K" + ] + }, + "type": 0 + }, + "version": "0" + } + }, + "version": "0" + } + }, + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "MAJORITY", + "sub_policy": "Admins" + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Readers" + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + } + }, + "version": "1" + }, + "Orderer": { + "groups": { + "OrdererOrg": { + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "OrdererMSP", + "role": "ADMIN" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "OrdererMSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 1, + "value": { + "identities": [ + { + "principal": { + "msp_identifier": "OrdererMSP", + "role": "MEMBER" + }, + "principal_classification": "ROLE" + } + ], + "rule": { + "n_out_of": { + "n": 1, + "rules": [ + { + "signed_by": 0 + } + ] + } + }, + "version": 0 + } + }, + "version": "0" + } + }, + "values": { + "MSP": { + "mod_policy": "Admins", + "value": { + "config": { + "admins": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDVENDQWJDZ0F3SUJBZ0lRTHBmNnNKL3o5dGQvVGRSd1A5RjFRakFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTNNVEF3TmpFeE5EZ3dNVm9YRFRJM01UQXdOREV4TkRnd01Wb3dWakVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4R2pBWUJnTlZCQU1NRVVGa2JXbHVRR1Y0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCnpqMERBUWNEUWdBRVVMRVQ0SGZUa21kRmc5bGNJbFc3SjFZb29hRXRjTVZDdTA1YytJc2hrU2NpZ0tOQ0h1SVMKcFp5dHVNWXpwejZpcmJFUkVENmhrUjZrTTJEd2ZQSTVjNk5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3RwpBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZzJacUxneU5KMU85Yy96VjcxYkFnU2ZHNzlqR3JLSjhmCnJzY0MyYU03Q3Rrd0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2JwZ3pOd0lFd2ZKVVFIRGJBTWNxTUxSQ3B3ZncKRDVDZnNDVHh0eWFBSGdJQ0lDMThGSjZuZDlHY3V2TVh0UElqZ2NHTkI0UkR6MDVndVVDYWlTQWorczZ1Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K" + ], + "crypto_config": { + "identity_identifier_hash_function": "SHA256", + "signature_hash_family": "SHA2" + }, + "name": "OrdererMSP", + "root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNMakNDQWRXZ0F3SUJBZ0lRRVRyM1NIdWg0T0I1eEJEQnNzZ3JIVEFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTNNVEF3TmpFeE5EZ3dNVm9YRFRJM01UQXdOREV4TkRnd01Wb3dhVEVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdGNHeGxMbU52CmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJFOEcwbG1Hck10QUlEWnhOWkV5VkIyb3hTZGYKZ2VTTkRTb2ErUTRTTFZ1MzNqMjlVWGc4Rzg4VmR4cXozK0p3cTBvRnc3VkZEcVV2eENqY1FjcWxIOEtqWHpCZApNQTRHQTFVZER3RUIvd1FFQXdJQnBqQVBCZ05WSFNVRUNEQUdCZ1JWSFNVQU1BOEdBMVVkRXdFQi93UUZNQU1CCkFmOHdLUVlEVlIwT0JDSUVJTm1haTRNalNkVHZYUDgxZTlXd0lFbnh1L1l4cXlpZkg2N0hBdG1qT3dyWk1Bb0cKQ0NxR1NNNDlCQU1DQTBjQU1FUUNJRTg0N2ZMSnBmandRT2Q1b3AvZFMwck5Ca21XenFFMEhtVVY4eHVrYS82ZwpBaUFCNXQrU0trWEtJK3cyWCsvdWtKRHVKbVI3MUpta1Z6NFdOOGtubUovcVJ3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" + ], + "tls_root_certs": [ + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNOVENDQWR5Z0F3SUJBZ0lSQU5VS0FIRDZjWWE3VnpWbVhmMmNXZVV3Q2dZSUtvWkl6ajBFQXdJd2JERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJvd0dBWURWUVFERXhGMGJITmpZUzVsCmVHRnRjR3hsTG1OdmJUQWVGdzB4TnpFd01EWXhNVFE0TURGYUZ3MHlOekV3TURReE1UUTRNREZhTUd3eEN6QUoKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaApibU5wYzJOdk1SUXdFZ1lEVlFRS0V3dGxlR0Z0Y0d4bExtTnZiVEVhTUJnR0ExVUVBeE1SZEd4elkyRXVaWGhoCmJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUUDQyMEZ1L1puWUhzeVhxZi8KdmpteGhaNUcvbEdIZG5VL3c5NTkvekp2N0Y1SkQ3dThYbnBjL3BsdVZvNFJSaTlCQ2JPblBBZVJMY3RLRms0YQpPRFpzbzE4d1hUQU9CZ05WSFE4QkFmOEVCQU1DQWFZd0R3WURWUjBsQkFnd0JnWUVWUjBsQURBUEJnTlZIUk1CCkFmOEVCVEFEQVFIL01Da0dBMVVkRGdRaUJDRG5sQkpYdG1WNkZuTncrY1FnSlVCTWRuZGx6Mkw0RGYwTGR1T1IKeFlYamNqQUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQUZpV3l0VFgwbGlydGM2ZTRVd3F6V0lJUG9DQ21ScHJBVQpsaTU4OCt4empBSWdSRktRUFlSKytnd3pmZnRBZjliQ2w1aEEwcGl4WE9zaXpYNzhXcGJvM0lBPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" + ] + }, + "type": 0 + }, + "version": "0" + } + }, + "version": "0" + } + }, + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "MAJORITY", + "sub_policy": "Admins" + } + }, + "version": "0" + }, + "BlockValidation": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Readers" + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + } + }, + "values": { + "BatchSize": { + "mod_policy": "Admins", + "value": { + "absolute_max_bytes": 102760448, + "max_message_count": 10, + "preferred_max_bytes": 524288 + }, + "version": "0" + }, + "BatchTimeout": { + "mod_policy": "Admins", + "value": { + "timeout": "2s" + }, + "version": "0" + }, + "ChannelRestrictions": { + "mod_policy": "Admins", + "version": "0" + }, + "ConsensusType": { + "mod_policy": "Admins", + "value": { + "type": "kafka" + }, + "version": "0" + }, + "KafkaBrokers": { + "mod_policy": "Admins", + "value": { + "brokers": [ + "kafka0:9092", + "kafka1:9092", + "kafka2:9092", + "kafka3:9092" + ] + }, + "version": "0" + } + }, + "version": "0" + } + }, + "mod_policy": "", + "policies": { + "Admins": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "MAJORITY", + "sub_policy": "Admins" + } + }, + "version": "0" + }, + "Readers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Readers" + } + }, + "version": "0" + }, + "Writers": { + "mod_policy": "Admins", + "policy": { + "type": 3, + "value": { + "rule": "ANY", + "sub_policy": "Writers" + } + }, + "version": "0" + } + }, + "values": { + "BlockDataHashingStructure": { + "mod_policy": "Admins", + "value": { + "width": 4294967295 + }, + "version": "0" + }, + "Consortium": { + "mod_policy": "", + "value": { + "name": "SampleConsortium" + }, + "version": "0" + }, + "HashingAlgorithm": { + "mod_policy": "Admins", + "value": { + "name": "SHA256" + }, + "version": "0" + }, + "OrdererAddresses": { + "mod_policy": "/Channel/Orderer/Admins", + "value": { + "addresses": [ + "orderer.example.com:7050" + ] + }, + "version": "0" + } + }, + "version": "0" + }, + "sequence": "2", + "type": 0 + }, + "last_update": { + "payload": { + "data": { + "config_update": { + "channel_id": "businesschannel", + "read_set": { + "groups": { + "Application": { + "groups": { + "Org1MSP": { + "mod_policy": "", + "policies": { + "Admins": { + "mod_policy": "", + "version": "0" + }, + "Readers": { + "mod_policy": "", + "version": "0" + }, + "Writers": { + "mod_policy": "", + "version": "0" + } + }, + "values": { + "MSP": { + "mod_policy": "", + "version": "0" + } + }, + "version": "0" + } + }, + "mod_policy": "Admins", + "version": "1" + } + }, + "mod_policy": "", + "version": "0" + }, + "type": 0, + "write_set": { + "groups": { + "Application": { + "groups": { + "Org1MSP": { + "mod_policy": "Admins", + "policies": { + "Admins": { + "mod_policy": "", + "version": "0" + }, + "Readers": { + "mod_policy": "", + "version": "0" + }, + "Writers": { + "mod_policy": "", + "version": "0" + } + }, + "values": { + "AnchorPeers": { + "mod_policy": "Admins", + "value": { + "anchor_peers": [ + { + "host": "peer0.org1.example.com", + "port": 7051 + } + ] + }, + "version": "0" + }, + "MSP": { + "mod_policy": "", + "version": "0" + } + }, + "version": "1" + } + }, + "mod_policy": "Admins", + "version": "1" + } + }, + "mod_policy": "", + "version": "0" + } + }, + "signatures": [ + { + "signature": "MEQCIAFK8WFmCi0NYoUKyspI9cRwXM74FvJ2HQUWAZVYcfdGAiA8Z22b8My7wPnqlhVGDdP7FSAp2XNRqQW/OfTNd63RoQ==", + "signature_header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "UNrfw2sb03Iyw6I6CJhDLsmzccYE1h9t" + } + } + ] + }, + "header": { + "channel_header": { + "channel_id": "businesschannel", + "epoch": "0", + "timestamp": "2017-10-08T01:54:54.000Z", + "tx_id": "", + "type": 2, + "version": 0 + }, + "signature_header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "6PCZ0DbRAr1K+NfhlFdyU7pkN7/o6g/+" + } + } + }, + "signature": "MEUCIQD6E+qEjES81qmEkFVHU3kMCctEMQB3WPP+hm/yV+jTHgIgJumv51fHr4DD+L6Q0CRNtvBLSHPPMBKnLi6fCwvqB4g=" + } + }, + "header": { + "channel_header": { + "channel_id": "businesschannel", + "epoch": "0", + "timestamp": "2017-10-08T01:54:54.000Z", + "tx_id": "", + "type": 1, + "version": 0 + }, + "signature_header": { + "creator": "CgpPcmRlcmVyTVNQEusFLS0tLS1CRUdJTiAtLS0tLQpNSUlDRERDQ0FiT2dBd0lCQWdJUkFJUjJJQ25pVk9xQW1rL3Y0anJvekZjd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB4TnpFd01EWXhNVFE0TURGYUZ3MHlOekV3TURReE1UUTRNREZhTUZneEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1Sd3dHZ1lEVlFRREV4TnZjbVJsY21WeUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSQpLb1pJemowREFRY0RRZ0FFRlcyNmM5RktMOFVqVzAyWXBsSHJSUnVQV1VmQ256REhBWEVqZjdoSUp4Y1cwOE1DCldvNXJUU3o3RmhZN3dpZWhKSjkzY3ZkK0lka3dZTnBjR3dvQmVxTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUEKTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnMlpxTGd5TkoxTzljL3pWNzFiQWdTZkc3OWpHcgpLSjhmcnNjQzJhTTdDdGt3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUloQU5pNEUwbTJqQWx3ZGtzdlh6MEdFMVdDCnhnTDhObzBvNVdtdk9TTHMzL2pEQWg4cklrRnhxZVJITml1bG1WemxJOU9EZ3RaN2JxQ1hMMTN3RXd5N09KQlAKLS0tLS1FTkQgLS0tLS0K", + "nonce": "zKZcZNn2oAV5mCK5X1Z8wDlw+MKotpJy" + } + } + }, + "signature": "MEUCIQCX5h0eXNV3XGHReDh90Nl9tarzs2UG7tR1U239bvz/RAIgNFdyFL87KhcW+CspXFAZdVa6hkVacRS6PBWf464EuXc=" + } + ] + }, + "header": { + "data_hash": "K4cOvg4fZYU7/NOW618SDbBwwMKco80F/MlU0HAJqho=", + "number": "1", + "previous_hash": "JvxyivCjFz5t3msYCeCDGu81OuwNCvAttyixdZdurKU=" + }, + "metadata": { + "metadata": [ + "EuIGCpcGCvoFCgpPcmRlcmVyTVNQEusFLS0tLS1CRUdJTiAtLS0tLQpNSUlDRERDQ0FiT2dBd0lCQWdJUkFJUjJJQ25pVk9xQW1rL3Y0anJvekZjd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB4TnpFd01EWXhNVFE0TURGYUZ3MHlOekV3TURReE1UUTRNREZhTUZneEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1Sd3dHZ1lEVlFRREV4TnZjbVJsY21WeUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSQpLb1pJemowREFRY0RRZ0FFRlcyNmM5RktMOFVqVzAyWXBsSHJSUnVQV1VmQ256REhBWEVqZjdoSUp4Y1cwOE1DCldvNXJUU3o3RmhZN3dpZWhKSjkzY3ZkK0lka3dZTnBjR3dvQmVxTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUEKTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnMlpxTGd5TkoxTzljL3pWNzFiQWdTZkc3OWpHcgpLSjhmcnNjQzJhTTdDdGt3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUloQU5pNEUwbTJqQWx3ZGtzdlh6MEdFMVdDCnhnTDhObzBvNVdtdk9TTHMzL2pEQWg4cklrRnhxZVJITml1bG1WemxJOU9EZ3RaN2JxQ1hMMTN3RXd5N09KQlAKLS0tLS1FTkQgLS0tLS0KEhgpaFc8bKjfPLq1r3XmXco8C7Md8JlsvWcSRjBEAiAyGjWLEbdKihv+Pl4oVSFF5ZVbvA89niDhmIH5NdwrsAIgAk/KZV1Sr/GOGcSsIKtpX4U/8Po1LwwMcSTQwOqePCg=", + "CgIIARLjBgqXBgr6BQoKT3JkZXJlck1TUBLrBS0tLS0tQkVHSU4gLS0tLS0KTUlJQ0REQ0NBYk9nQXdJQkFnSVJBSVIySUNuaVZPcUFtay92NGpyb3pGY3dDZ1lJS29aSXpqMEVBd0l3YVRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnQKY0d4bExtTnZiVEFlRncweE56RXdNRFl4TVRRNE1ERmFGdzB5TnpFd01EUXhNVFE0TURGYU1GZ3hDekFKQmdOVgpCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wCmMyTnZNUnd3R2dZRFZRUURFeE52Y21SbGNtVnlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUkKS29aSXpqMERBUWNEUWdBRUZXMjZjOUZLTDhValcwMllwbEhyUlJ1UFdVZkNuekRIQVhFamY3aElKeGNXMDhNQwpXbzVyVFN6N0ZoWTd3aWVoSko5M2N2ZCtJZGt3WU5wY0d3b0JlcU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBCk1Bd0dBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZzJacUxneU5KMU85Yy96VjcxYkFnU2ZHNzlqR3IKS0o4ZnJzY0MyYU03Q3Rrd0NnWUlLb1pJemowRUF3SURSd0F3UkFJaEFOaTRFMG0yakFsd2Rrc3ZYejBHRTFXQwp4Z0w4Tm8wbzVXbXZPU0xzMy9qREFoOHJJa0Z4cWVSSE5pdWxtVnpsSTlPRGd0WjdicUNYTDEzd0V3eTdPSkJQCi0tLS0tRU5EIC0tLS0tChIY5SmEA/zpDr/BvGF2F/9Hel66gy0v0lgGEkcwRQIhANSzC4LMi86o7vm8ITih7KgoLhEC0yF1F4BZdq/DUNUrAiBkiRXL83KHZcpMLZ2Iaks1dNLQwNBmU/JK+mCsifTvbg==", + "", + "CgIIAQ==" + ] + } +} diff --git a/hyperledger/latest/kafka/channel-artifacts/block_2.block b/hyperledger/latest/kafka/channel-artifacts/block_2.block new file mode 100644 index 00000000..dad4baa4 Binary files /dev/null and b/hyperledger/latest/kafka/channel-artifacts/block_2.block differ diff --git a/hyperledger/latest/kafka/channel-artifacts/block_2.block.json b/hyperledger/latest/kafka/channel-artifacts/block_2.block.json new file mode 100644 index 00000000..e44249da --- /dev/null +++ b/hyperledger/latest/kafka/channel-artifacts/block_2.block.json @@ -0,0 +1,99 @@ +{ + "data": { + "data": [ + { + "payload": { + "data": { + "actions": [ + { + "header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "HsibX7H9Ap4UkDrSPTGUACjNAatjKOiD" + }, + "payload": { + "action": { + "endorsements": [ + { + "endorser": "CgdPcmcxTVNQEpIGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHRENDQWIrZ0F3SUJBZ0lRS21yZVhUS0w4cE5qSHRQVGFjM1lvREFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHhOekV3TURZeE1UUTRNREZhRncweU56RXdNRFF4TVRRNE1ERmEKTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFERXhad1pXVnlNQzV2Y21jeExtVjRZVzF3YkdVdVkyOXRNRmt3CkV3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFV1VCWi96aDU5cDBvdHZaNjc3cUtkN2VHeXlWMXV1WHgKK1F0RUEyRzRPRzZrdkYxTUFVQzNoeG5DeWFQU1ZlSGtOd0xDdkpCRDdWWCtESEJYYU9IcDNxTk5NRXN3RGdZRApWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnL24wSjViTGk5N0hMCkNwWGlxQkRpaVEyMWI3azlzeWxhTUExMDMzYXA4M3N3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUloQUlWQnU5L0UKUFMwT2p0bW9iVWZlSzJrMys1eGM5OFR2SFJRWldQQVd6TDNaQWg5K2hROWJHM2MzWHAyV2FIcDZHZ0VONUhmZApxOUFVQUJoaEEzRWVOaUQ5Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "signature": "MEUCIQCAD3KRBWcd7tMGCFqaZV29B8WIi+/CoMt63C3wG0PaTAIgZ+jXkufvKF692KMtkv4yoftJcpnMDALe4yIlGImLiR4=" + } + ], + "proposal_response_payload": { + "extension": { + "chaincode_id": { + "name": "lscc", + "path": "", + "version": "1.1.0" + }, + "response": { + "message": "", + "payload": "CgRteWNjEgMxLjAaBGVzY2MiBHZzY2MqKBIMEgoIARICCAASAggBGgsSCQoHT3JnMU1TUBoLEgkKB09yZzJNU1AyRAogU+90p48Zjixh8K7Tqot2+IdL2ieAmrdccayOYxVsDUMSIAcfFCkeFSuyrojn/fnlp3TTE2FroxVKhPag1FoXX2MmOiD2BYMh1GYmd40M+bSxS9XKC1e7c2BfO8cUy7GmSupcp0IsEgwSCggBEgIIABICCAEaDRILCgdPcmcxTVNQEAEaDRILCgdPcmcyTVNQEAE=", + "status": 200 + }, + "results": "EvQBCgRsc2NjEusBCgYKBG15Y2Ma4AEKBG15Y2Ma1wEKBG15Y2MSAzEuMBoEZXNjYyIEdnNjYyooEgwSCggBEgIIABICCAEaCxIJCgdPcmcxTVNQGgsSCQoHT3JnMk1TUDJECiBT73SnjxmOLGHwrtOqi3b4h0vaJ4Cat1xxrI5jFWwNQxIgBx8UKR4VK7KuiOf9+eWndNMTYWujFUqE9qDUWhdfYyY6IPYFgyHUZiZ3jQz5tLFL1coLV7tzYF87xxTLsaZK6lynQiwSDBIKCAESAggAEgIIARoNEgsKB09yZzFNU1AQARoNEgsKB09yZzJNU1AQARIcCgRteWNjEhQaCAoBYRoDMTAwGggKAWIaAzIwMA==" + }, + "proposal_hash": "Qa4wTTQgg4DIu5PZzQvLhNGrKhCrsdb1Xp1zrC+ogo4=" + } + }, + "chaincode_proposal_payload": { + "input": { + "chaincode_spec": { + "chaincode_id": { + "name": "lscc", + "path": "", + "version": "" + }, + "input": { + "args": [ + "ZGVwbG95", + "YnVzaW5lc3NjaGFubmVs", + "CicIARILEgRteWNjGgMxLjAaFgoEaW5pdAoBYQoDMTAwCgFiCgMyMDA=", + "EgwSCggBEgIIABICCAEaCxIJCgdPcmcxTVNQGgsSCQoHT3JnMk1TUA==", + "ZXNjYw==", + "dnNjYw==" + ] + }, + "timeout": 0, + "type": "GOLANG" + }, + "id_generation_alg": "" + } + } + } + } + ] + }, + "header": { + "channel_header": { + "channel_id": "businesschannel", + "epoch": "0", + "extension": "EgYSBGxzY2M=", + "timestamp": "2017-10-08T01:55:05.018301554Z", + "tx_id": "a58218886d8bd744d2466f1e27cdf515f828397310e24959f200191251f081c9", + "type": 3, + "version": 0 + }, + "signature_header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "HsibX7H9Ap4UkDrSPTGUACjNAatjKOiD" + } + } + }, + "signature": "MEUCIQDgWQ8ZGRLIc4bDCgPWVZiZT1dF+VWkRB+OeObLDdKbzwIgFa4c4cRf2zOp0gOiEPcH+djXqmFCQ183xOKcwSu725U=" + } + ] + }, + "header": { + "data_hash": "cuwVOPSyrDjVWV0TAzTP3yYKL18aoOJS+ubex3x8V/s=", + "number": "2", + "previous_hash": "DG3W9xEdVk6C+VMEtOpIfAxFzvkNOKKZw9wfm22/iJw=" + }, + "metadata": { + "metadata": [ + "EuIGCpcGCvoFCgpPcmRlcmVyTVNQEusFLS0tLS1CRUdJTiAtLS0tLQpNSUlDRERDQ0FiT2dBd0lCQWdJUkFJUjJJQ25pVk9xQW1rL3Y0anJvekZjd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB4TnpFd01EWXhNVFE0TURGYUZ3MHlOekV3TURReE1UUTRNREZhTUZneEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1Sd3dHZ1lEVlFRREV4TnZjbVJsY21WeUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSQpLb1pJemowREFRY0RRZ0FFRlcyNmM5RktMOFVqVzAyWXBsSHJSUnVQV1VmQ256REhBWEVqZjdoSUp4Y1cwOE1DCldvNXJUU3o3RmhZN3dpZWhKSjkzY3ZkK0lka3dZTnBjR3dvQmVxTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUEKTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnMlpxTGd5TkoxTzljL3pWNzFiQWdTZkc3OWpHcgpLSjhmcnNjQzJhTTdDdGt3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUloQU5pNEUwbTJqQWx3ZGtzdlh6MEdFMVdDCnhnTDhObzBvNVdtdk9TTHMzL2pEQWg4cklrRnhxZVJITml1bG1WemxJOU9EZ3RaN2JxQ1hMMTN3RXd5N09KQlAKLS0tLS1FTkQgLS0tLS0KEhghb36GDEbCSDVu6pYMTWia3ekL/TB1eVISRjBEAiBEE1hOF1/uT8bj3t+IavMoZjvNdfLurIfECFX1DhQjlQIgDeEmId1ipETmWxOJFTSugBZdRhKt10QeV/Koz9HXc1s=", + "CgIIARLjBgqXBgr6BQoKT3JkZXJlck1TUBLrBS0tLS0tQkVHSU4gLS0tLS0KTUlJQ0REQ0NBYk9nQXdJQkFnSVJBSVIySUNuaVZPcUFtay92NGpyb3pGY3dDZ1lJS29aSXpqMEVBd0l3YVRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnQKY0d4bExtTnZiVEFlRncweE56RXdNRFl4TVRRNE1ERmFGdzB5TnpFd01EUXhNVFE0TURGYU1GZ3hDekFKQmdOVgpCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wCmMyTnZNUnd3R2dZRFZRUURFeE52Y21SbGNtVnlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUkKS29aSXpqMERBUWNEUWdBRUZXMjZjOUZLTDhValcwMllwbEhyUlJ1UFdVZkNuekRIQVhFamY3aElKeGNXMDhNQwpXbzVyVFN6N0ZoWTd3aWVoSko5M2N2ZCtJZGt3WU5wY0d3b0JlcU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBCk1Bd0dBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZzJacUxneU5KMU85Yy96VjcxYkFnU2ZHNzlqR3IKS0o4ZnJzY0MyYU03Q3Rrd0NnWUlLb1pJemowRUF3SURSd0F3UkFJaEFOaTRFMG0yakFsd2Rrc3ZYejBHRTFXQwp4Z0w4Tm8wbzVXbXZPU0xzMy9qREFoOHJJa0Z4cWVSSE5pdWxtVnpsSTlPRGd0WjdicUNYTDEzd0V3eTdPSkJQCi0tLS0tRU5EIC0tLS0tChIYFyMAeWvgr7I3XP/qWIwxOLLGtzwR1mW2EkcwRQIhAM+BJ+EazjsecqsNqsrggz5Wyqen51IpfsT37f/iPUI0AiAgo2NCfollJhv+aSdJLrX330Nb/a8ac/MkuRF1RTfATQ==", + "", + "CgIIAw==" + ] + } +} diff --git a/hyperledger/latest/kafka/channel-artifacts/block_3.block b/hyperledger/latest/kafka/channel-artifacts/block_3.block new file mode 100644 index 00000000..0dcf5042 Binary files /dev/null and b/hyperledger/latest/kafka/channel-artifacts/block_3.block differ diff --git a/hyperledger/latest/kafka/channel-artifacts/block_3.block.json b/hyperledger/latest/kafka/channel-artifacts/block_3.block.json new file mode 100644 index 00000000..77aac089 --- /dev/null +++ b/hyperledger/latest/kafka/channel-artifacts/block_3.block.json @@ -0,0 +1,96 @@ +{ + "data": { + "data": [ + { + "payload": { + "data": { + "actions": [ + { + "header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "x0JVEGFK4xL4ocxJrXy8or8QDJLuVp2n" + }, + "payload": { + "action": { + "endorsements": [ + { + "endorser": "CgdPcmcxTVNQEpIGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHRENDQWIrZ0F3SUJBZ0lRS21yZVhUS0w4cE5qSHRQVGFjM1lvREFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHhOekV3TURZeE1UUTRNREZhRncweU56RXdNRFF4TVRRNE1ERmEKTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFERXhad1pXVnlNQzV2Y21jeExtVjRZVzF3YkdVdVkyOXRNRmt3CkV3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFV1VCWi96aDU5cDBvdHZaNjc3cUtkN2VHeXlWMXV1WHgKK1F0RUEyRzRPRzZrdkYxTUFVQzNoeG5DeWFQU1ZlSGtOd0xDdkpCRDdWWCtESEJYYU9IcDNxTk5NRXN3RGdZRApWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnL24wSjViTGk5N0hMCkNwWGlxQkRpaVEyMWI3azlzeWxhTUExMDMzYXA4M3N3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUloQUlWQnU5L0UKUFMwT2p0bW9iVWZlSzJrMys1eGM5OFR2SFJRWldQQVd6TDNaQWg5K2hROWJHM2MzWHAyV2FIcDZHZ0VONUhmZApxOUFVQUJoaEEzRWVOaUQ5Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "signature": "MEQCIGvXzGGO4n8RCFFgyLLF9eg6YAR41+09EJVX+TeX6K1xAiBTsaO5tnhzO//Olt++OxNO3GQIReAMXbmN6B+Brp5RBA==" + } + ], + "proposal_response_payload": { + "extension": { + "chaincode_id": { + "name": "mycc", + "path": "", + "version": "1.0" + }, + "response": { + "message": "", + "status": 200 + }, + "results": "EhQKBGxzY2MSDAoKCgRteWNjEgIIAhItCgRteWNjEiUKBwoBYRICCAIKBwoBYhICCAIaBwoBYRoCOTAaCAoBYhoDMjEw" + }, + "proposal_hash": "NVneekb/4UqU6JON8x0KWW90uTS99HqbsbEDOriwscw=" + } + }, + "chaincode_proposal_payload": { + "input": { + "chaincode_spec": { + "chaincode_id": { + "name": "mycc", + "path": "", + "version": "" + }, + "input": { + "args": [ + "aW52b2tl", + "YQ==", + "Yg==", + "MTA=" + ] + }, + "timeout": 0, + "type": "GOLANG" + }, + "id_generation_alg": "" + } + } + } + } + ] + }, + "header": { + "channel_header": { + "channel_id": "businesschannel", + "epoch": "0", + "extension": "EgYSBG15Y2M=", + "timestamp": "2017-10-08T01:55:41.048515327Z", + "tx_id": "9ceedae8879db93700d143229786fd2190a6ffef2eca718a85f787bae2e8aedb", + "type": 3, + "version": 0 + }, + "signature_header": { + "creator": "CgdPcmcxTVNQEpYGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUxSUENyNm5lYVdwdzhFUXdHcU42WGN3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpFdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekV1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGN4TURBMk1URTBPREF4V2hjTk1qY3hNREEwTVRFME9EQXgKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1TNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk5sSXlmdTZEQ2hWalBwdTMvalhBQlZ3UTFmZGVNeDIKSkp5RDlXeGpGV3hQS1FTNmxSdjNCTWtRSUY2eUljQWJVWVV5L1R0dXhBd2tnMmVjR1lXTGNCaWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSVA1OUNlV3k0dmV4Cnl3cVY0cWdRNG9rTnRXKzVQYk1wV2pBTmROOTJxZk43TUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEd1AwdUsKTWE1UUxuTEtOS0JxYTh4VXFOTXhJcTVoazkxQzVNWVVETi9FUEFJZ1RtY25OQTNMRUlMNlhraExSV0xDMWhpbApSa0Q3Q1lxaE1UYmZtRGQ1K21jPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "nonce": "x0JVEGFK4xL4ocxJrXy8or8QDJLuVp2n" + } + } + }, + "signature": "MEUCIQDydVhU4sZiJQiuVSmvS5bhUTx3+4Pf4z4N71f437hc2QIgGm61a4oQcirPFQOTr8RT9P541rdmGVySqKnYUW8KMvc=" + } + ] + }, + "header": { + "data_hash": "pVsIhHG/uE9MySGtEy/C1AE8DWYKz3k9JnqiMKpV8TE=", + "number": "3", + "previous_hash": "CPQlwmqyTWIZMJxj24/1a8Ef4Kg2tbwFBeJp13sc5k0=" + }, + "metadata": { + "metadata": [ + "EuIGCpcGCvoFCgpPcmRlcmVyTVNQEusFLS0tLS1CRUdJTiAtLS0tLQpNSUlDRERDQ0FiT2dBd0lCQWdJUkFJUjJJQ25pVk9xQW1rL3Y0anJvekZjd0NnWUlLb1pJemowRUF3SXdhVEVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4RkRBU0JnTlZCQW9UQzJWNFlXMXdiR1V1WTI5dE1SY3dGUVlEVlFRREV3NWpZUzVsZUdGdApjR3hsTG1OdmJUQWVGdzB4TnpFd01EWXhNVFE0TURGYUZ3MHlOekV3TURReE1UUTRNREZhTUZneEN6QUpCZ05WCkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnAKYzJOdk1Sd3dHZ1lEVlFRREV4TnZjbVJsY21WeUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSQpLb1pJemowREFRY0RRZ0FFRlcyNmM5RktMOFVqVzAyWXBsSHJSUnVQV1VmQ256REhBWEVqZjdoSUp4Y1cwOE1DCldvNXJUU3o3RmhZN3dpZWhKSjkzY3ZkK0lka3dZTnBjR3dvQmVxTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUEKTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnMlpxTGd5TkoxTzljL3pWNzFiQWdTZkc3OWpHcgpLSjhmcnNjQzJhTTdDdGt3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUloQU5pNEUwbTJqQWx3ZGtzdlh6MEdFMVdDCnhnTDhObzBvNVdtdk9TTHMzL2pEQWg4cklrRnhxZVJITml1bG1WemxJOU9EZ3RaN2JxQ1hMMTN3RXd5N09KQlAKLS0tLS1FTkQgLS0tLS0KEhh014qetDcUCpg3u4ul+kbO6teKIj3yJbQSRjBEAiBcTM/eO3fX968BL379TXZp12s92+dXJFfkFrzhOYB8RgIgJPyRuIqrgQQc612cDEDymlB+39Opia6ThOwIKXFqtMg=", + "CgIIARLiBgqXBgr6BQoKT3JkZXJlck1TUBLrBS0tLS0tQkVHSU4gLS0tLS0KTUlJQ0REQ0NBYk9nQXdJQkFnSVJBSVIySUNuaVZPcUFtay92NGpyb3pGY3dDZ1lJS29aSXpqMEVBd0l3YVRFTApNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHCmNtRnVZMmx6WTI4eEZEQVNCZ05WQkFvVEMyVjRZVzF3YkdVdVkyOXRNUmN3RlFZRFZRUURFdzVqWVM1bGVHRnQKY0d4bExtTnZiVEFlRncweE56RXdNRFl4TVRRNE1ERmFGdzB5TnpFd01EUXhNVFE0TURGYU1GZ3hDekFKQmdOVgpCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wCmMyTnZNUnd3R2dZRFZRUURFeE52Y21SbGNtVnlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUkKS29aSXpqMERBUWNEUWdBRUZXMjZjOUZLTDhValcwMllwbEhyUlJ1UFdVZkNuekRIQVhFamY3aElKeGNXMDhNQwpXbzVyVFN6N0ZoWTd3aWVoSko5M2N2ZCtJZGt3WU5wY0d3b0JlcU5OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBCk1Bd0dBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZzJacUxneU5KMU85Yy96VjcxYkFnU2ZHNzlqR3IKS0o4ZnJzY0MyYU03Q3Rrd0NnWUlLb1pJemowRUF3SURSd0F3UkFJaEFOaTRFMG0yakFsd2Rrc3ZYejBHRTFXQwp4Z0w4Tm8wbzVXbXZPU0xzMy9qREFoOHJJa0Z4cWVSSE5pdWxtVnpsSTlPRGd0WjdicUNYTDEzd0V3eTdPSkJQCi0tLS0tRU5EIC0tLS0tChIYlUAAFyssOXzZZ8OXS0bOz3zjTVFPyOOtEkYwRAIgKcpH6D0m2/Kc0y6UuV4rXzWolmUVOvZ7igbhea9kq8QCIB3T289QEss36JnfjZpSCSXfoCd9pHpL5V87ZDEKxtcn", + "", + "CgIIBQ==" + ] + } +} diff --git a/hyperledger/latest/kafka/channel-artifacts/orderer.genesis.updated.block b/hyperledger/latest/kafka/channel-artifacts/orderer.genesis.updated.block index daa0fd48..8efcd291 100644 Binary files a/hyperledger/latest/kafka/channel-artifacts/orderer.genesis.updated.block and b/hyperledger/latest/kafka/channel-artifacts/orderer.genesis.updated.block differ diff --git a/hyperledger/latest/kafka/run_configtxlator.sh b/hyperledger/latest/kafka/run_configtxlator.sh index 23f0b955..c2d13bb4 100644 --- a/hyperledger/latest/kafka/run_configtxlator.sh +++ b/hyperledger/latest/kafka/run_configtxlator.sh @@ -4,10 +4,12 @@ CONFIGTXLATOR_IMG=yeasy/hyperledger-fabric:latest CONFIGTXLATOR_CONTAINER=configtxlator -ORDERER_GENESIS_BLOCK=channel-artifacts/orderer.genesis.block -ORDERER_GENESIS_UPDATED_BLOCK=channel-artifacts/orderer.genesis.updated.block -ORDERER_GENESIS_JSON=channel-artifacts/orderer.genesis.json -ORDERER_GENESIS_UPDATED_JSON=channel-artifacts/orderer.genesis.updated.json +ARTIFACTS_DIR=channel-artifacts + +ORDERER_GENESIS_BLOCK=${ARTIFACTS_DIR}/orderer.genesis.block +ORDERER_GENESIS_UPDATED_BLOCK=${ARTIFACTS_DIR}/orderer.genesis.updated.block +ORDERER_GENESIS_JSON=${ARTIFACTS_DIR}/orderer.genesis.json +ORDERER_GENESIS_UPDATED_JSON=${ARTIFACTS_DIR}/orderer.genesis.updated.json MAXBATCHSIZEPATH=".data.data[0].payload.data.config.channel_group.groups.Orderer.values.BatchSize.value.max_message_count" echo "Clean potential existing container $CONFIGTXLATOR_CONTAINER" @@ -23,23 +25,36 @@ docker run \ sleep 1 -echo "Decoding the orderer genesis block to json" -curl -X POST \ - --data-binary @${ORDERER_GENESIS_BLOCK} \ - http://127.0.0.1:7059/protolator/decode/common.Block \ - > ${ORDERER_GENESIS_JSON} +if [ -f ${ORDERER_GENESIS_BLOCK} ]; then + echo "Decoding the orderer genesis block to json" + curl -X POST \ + --data-binary @${ORDERER_GENESIS_BLOCK} \ + http://127.0.0.1:7059/protolator/decode/common.Block \ + > ${ORDERER_GENESIS_JSON} -echo "Checking existing Orderer.BatchSize.max_message_count in the genesis json" -jq "$MAXBATCHSIZEPATH" channel-artifacts/orderer.genesis.json + echo "Checking existing Orderer.BatchSize.max_message_count in the genesis json" + jq "$MAXBATCHSIZEPATH" channel-artifacts/orderer.genesis.json -echo "Creating new genesis json with updated Orderer.BatchSize.max_message_count" -jq "$MAXBATCHSIZEPATH=20" ${ORDERER_GENESIS_JSON} > ${ORDERER_GENESIS_UPDATED_JSON} + echo "Creating new genesis json with updated Orderer.BatchSize.max_message_count" + jq "$MAXBATCHSIZEPATH=20" ${ORDERER_GENESIS_JSON} > ${ORDERER_GENESIS_UPDATED_JSON} -echo "Re-Encoding the orderer genesis json to block" -curl -X POST \ - --data-binary @${ORDERER_GENESIS_UPDATED_JSON} \ - http://127.0.0.1:7059/protolator/encode/common.Block \ - >${ORDERER_GENESIS_UPDATED_BLOCK} + echo "Re-Encoding the orderer genesis json to block" + curl -X POST \ + --data-binary @${ORDERER_GENESIS_UPDATED_JSON} \ + http://127.0.0.1:7059/protolator/encode/common.Block \ + >${ORDERER_GENESIS_UPDATED_BLOCK} +fi +for i in {0..9} +do + BLOCK_FILE=${ARTIFACTS_DIR}/block_${i}.block + if [ -f ${BLOCK_FILE} ]; then + echo "Decoding block $i of app channel to json" + curl -X POST \ + --data-binary @${BLOCK_FILE} \ + http://127.0.0.1:7059/protolator/decode/common.Block \ + > ${BLOCK_FILE}.json + fi +done docker rm -f $CONFIGTXLATOR_CONTAINER diff --git a/hyperledger/latest/scripts/func.sh b/hyperledger/latest/scripts/func.sh index 9abdc536..0b4c98f9 100644 --- a/hyperledger/latest/scripts/func.sh +++ b/hyperledger/latest/scripts/func.sh @@ -254,3 +254,26 @@ chaincodeUpgrade () { echo } +channelFetch () { + PEER=$1 + BLOCK_NO=$2 + setGlobals $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 channel fetch $BLOCK_NO \ + -o orderer.example.com:7050 \ + -c ${CHANNEL_NAME} >&log.txt + else + peer channel fetch $BLOCK_NO block_${BLOCK_NO}.block \ + -o orderer.example.com:7050 \ + -c $CHANNEL_NAME \ + --tls \ + --cafile $ORDERER_CA >&log.txt + fi + res=$? + cat log.txt + verifyResult $res "Fetch block on PEER$PEER failed " + echo_g "===================== Fetch block on PEER$PEER on channel '$CHANNEL_NAME' is successful ===================== " + echo +} \ No newline at end of file diff --git a/hyperledger/latest/scripts/test_fetch.sh b/hyperledger/latest/scripts/test_fetch.sh new file mode 100644 index 00000000..a0c2b4b4 --- /dev/null +++ b/hyperledger/latest/scripts/test_fetch.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# This script will fetch blocks for testing. + +# 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 + +echo_b "Channel name: $CHANNEL_NAME" + +echo_b "====================Fetching blocks================================" + +echo_b "Fetch block 0" +channelFetch 0 0 + +echo_b "Fetch block 1" +channelFetch 0 1 + +echo_b "Fetch block 2" +channelFetch 0 2 + +echo_b "Fetch block 3" +channelFetch 0 3 + +echo_g "Block fetching done!" \ No newline at end of file diff --git a/hyperledger/latest/scripts/test_fetch_blocks.sh b/hyperledger/latest/scripts/test_fetch_blocks.sh deleted file mode 100644 index 518f97b5..00000000 --- a/hyperledger/latest/scripts/test_fetch_blocks.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env bash - -# This script will fetch blocks for testing. - -# Detecting whether can import the header file to render colorful cli output -# Need add choice option -if [ -f ./header.sh ]; then - source ./header.sh -elif [ -f scripts/header.sh ]; then - source scripts/header.sh -else - alias echo_r="echo" - alias echo_g="echo" - alias echo_b="echo" -fi - -ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem - -CHANNEL_NAME="$1" -: ${CHANNEL_NAME:="businesschannel"} - -echo_b "LSCC testing" - -# invoke required following params - #-o orderer.example.com:7050 \ - #--tls "true" \ - #--cafile ${ORDERER_CA} \ - -echo_b "Get id" -peer chaincode query \ - -C "${CHANNEL_NAME}" \ - -n lscc \ - -c '{"Args":["getid","businesschannel", "mycc"]}' - -echo_b "Get cc ChaincodeDeploymentSpec" -peer chaincode query \ - -C "${CHANNEL_NAME}" \ - -n lscc \ - -c '{"Args":["getdepspec","businesschannel", "mycc"]}' - -echo_b "Get cc bytes" -peer chaincode query \ - -C "${CHANNEL_NAME}" \ - -n lscc \ - -c '{"Args":["getccdata","businesschannel", "mycc"]}' - -echo_b "Get all chaincodes installed on the channel" -peer chaincode query \ - -C "${CHANNEL_NAME}" \ - -n lscc \ - -c '{"Args":["getinstalledchaincodes"]}' - -echo_b "Get all chaincodes instantiated on the channel" -peer chaincode query \ - -C "${CHANNEL_NAME}" \ - -n lscc \ - -c '{"Args":["getchaincodes"]}' - -echo_g "LSCC testing done!" \ No newline at end of file