Add cscc test

pull/135/head
Baohua Yang 2018-11-09 15:46:31 +08:00
parent 075084cc7c
commit dd90dba4d2
25 changed files with 25970 additions and 26573 deletions

View File

@ -57,6 +57,7 @@ ready: # create/join channel, install/instantiate cc
make test_lscc # test lscc operations
make test_qscc # test qscc operations
make test_cscc # test cscc operations
make test_fetch_blocks # fetch block files
@ -163,6 +164,10 @@ test_cc_invoke_query: # test user chaincode on all peers
@echo "Invoke and query cc example02 on all peers"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_invoke_query.sh"
test_cscc: # test cscc queries
@echo "Test CSCC query"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cscc.sh"
test_qscc: # test qscc queries
@echo "Test QSCC query"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_qscc.sh"

View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
# This script will run some qscc queries 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 "CSCC testing"
org=1
peer=0
#peer chaincode query \
# -C "" \
# -n cscc \
# -c '{"Args":["GetConfigBlock","'${APP_CHANNEL}'"]}'
echo_b "CSCC GetConfigBlock"
chaincodeQuery ${APP_CHANNEL} $org $peer cscc '{"Args":["GetConfigBlock","'${APP_CHANNEL}'"]}'
echo_b "CSCC GetChannels"
chaincodeQuery ${APP_CHANNEL} $org $peer cscc '{"Args":["GetChannels"]}'
echo_b "CSCC GetConfigTree"
chaincodeQuery ${APP_CHANNEL} $org $peer cscc '{"Args":["GetConfigTree","'${APP_CHANNEL}'"]}'
echo_g "CSCC testing done!"
echo

View File

@ -14,22 +14,22 @@ echo_b "QSCC testing"
org=1
peer=0
echo_b "QSCC GetChainInfo"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetChainInfo","'${APP_CHANNEL}'"]}'
echo_b "QSCC GetBlockByNumber 2"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetBlockByNumber","'${APP_CHANNEL}'","2"]}'
#peer chaincode query \
# -C "" \
# -n qscc \
# -c '{"Args":["GetChainInfo","'${APP_CHANNEL}'"]}'
echo_b "QSCC GetChainInfo"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetChainInfo","'${APP_CHANNEL}'"]}'
#peer chaincode query \
# -C "" \
# -n qscc \
# -c '{"Args":["GetBlockByNumber","'${APP_CHANNEL}'","2"]}'
echo_b "QSCC GetBlockByNumber 2"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetBlockByNumber","'${APP_CHANNEL}'","2"]}'
echo_g "QSCC testing done!"
echo

View File

@ -158,6 +158,10 @@ test_cc_invoke_query: # test user chaincode on all peers
@echo "Invoke and query cc example02 on all peers"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cc_invoke_query.sh"
test_cscc: # test cscc queries
@echo "Test CSCC query"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_cscc.sh"
test_qscc: # test qscc queries
@echo "Test QSCC query"
@docker exec -it fabric-cli bash -c "cd /tmp; bash scripts/test_qscc.sh"

View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
# This script will run some qscc queries 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 "CSCC testing"
org=1
peer=0
#peer chaincode query \
# -C "" \
# -n cscc \
# -c '{"Args":["GetConfigBlock","'${APP_CHANNEL}'"]}'
echo_b "CSCC GetConfigBlock"
chaincodeQuery ${APP_CHANNEL} $org $peer cscc '{"Args":["GetConfigBlock","'${APP_CHANNEL}'"]}'
echo_b "CSCC GetChannels"
chaincodeQuery ${APP_CHANNEL} $org $peer cscc '{"Args":["GetChannels"]}'
echo_b "CSCC GetConfigTree"
chaincodeQuery ${APP_CHANNEL} $org $peer cscc '{"Args":["GetConfigTree","'${APP_CHANNEL}'"]}'
echo_g "CSCC testing done!"
echo

View File

@ -14,22 +14,25 @@ echo_b "QSCC testing"
org=1
peer=0
echo_b "QSCC GetChainInfo"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetChainInfo","'${APP_CHANNEL}'"]}'
echo_b "QSCC GetBlockByNumber 2"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetBlockByNumber","'${APP_CHANNEL}'","2"]}'
#peer chaincode query \
# -C "" \
# -n qscc \
# -c '{"Args":["GetChainInfo","'${APP_CHANNEL}'"]}'
echo_b "QSCC GetChainInfo"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetChainInfo","'${APP_CHANNEL}'"]}'
#peer chaincode query \
# -C "" \
# -n qscc \
# -c '{"Args":["GetBlockByNumber","'${APP_CHANNEL}'","2"]}'
echo_b "QSCC GetBlockByNumber 0"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetBlockByNumber","'${APP_CHANNEL}'","0"]}'
echo_b "QSCC GetBlockByNumber 2"
chaincodeQuery ${APP_CHANNEL} $org $peer qscc '{"Args":["GetBlockByNumber","'${APP_CHANNEL}'","2"]}'
echo_g "QSCC testing done!"
echo

View File

@ -101,18 +101,6 @@
}
},
"values": {
"AnchorPeers": {
"mod_policy": "Admins",
"value": {
"anchor_peers": [
{
"host": "peer0.org1.example.com",
"port": 7051
}
]
},
"version": "0"
},
"MSP": {
"mod_policy": "Admins",
"value": {
@ -137,7 +125,7 @@
"version": "0"
}
},
"version": "1"
"version": "0"
},
"Org2MSP": {
"mod_policy": "Admins",
@ -231,18 +219,6 @@
}
},
"values": {
"AnchorPeers": {
"mod_policy": "Admins",
"value": {
"anchor_peers": [
{
"host": "peer0.org2.example.com",
"port": 7051
}
]
},
"version": "0"
},
"MSP": {
"mod_policy": "Admins",
"value": {
@ -267,7 +243,7 @@
"version": "0"
}
},
"version": "1"
"version": "0"
}
},
"mod_policy": "Admins",
@ -602,7 +578,7 @@
},
"version": "0"
},
"sequence": "3",
"sequence": "1",
"type": 0
},
"last_update": {
@ -614,36 +590,26 @@
"groups": {
"Application": {
"groups": {
"Org1MSP": {
"mod_policy": "",
"version": "0"
},
"Org2MSP": {
"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"
}
},
"mod_policy": "",
"values": {
"Consortium": {
"mod_policy": "",
"version": "0"
}
},
"version": "0"
},
"type": 0,
@ -651,60 +617,82 @@
"groups": {
"Application": {
"groups": {
"Org1MSP": {
"mod_policy": "",
"version": "0"
},
"Org2MSP": {
"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.org2.example.com",
"port": 7051
}
]
},
"version": "0"
},
"MSP": {
"mod_policy": "",
"version": "0"
}
},
"version": "1"
"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"
}
},
"values": {
"Capabilities": {
"mod_policy": "Admins",
"version": "0"
}
},
"version": "1"
}
},
"mod_policy": "",
"values": {
"Consortium": {
"mod_policy": "",
"value": {
"name": "SampleConsortium"
},
"version": "0"
}
},
"version": "0"
}
},
"signatures": [
{
"signature": "MEMCH0A0HdGfdvC88DuaCr4rZLSbf4R4bzITvsogjO1UMVICIHa8VFoAQackJhIQL+WSCnIgEX6PYDyXE9WrqHWkelPx",
"signature": "MEQCICTsuj0Wfpv/UUG9CJI6yF2tky0fdOkeLVC2vLan2bSvAiBG+Jhu1Gxo6hZgmxjgnKlyZ0v+pihL6lWeZs6RqTm68Q==",
"signature_header": {
"creator": {
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUlGd0tEeURCdXh6ZWg4NGljSmh0ejh3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TkRBeU1ESXpNRE0zV2hjTk1qZ3dNek13TURJek1ETTMKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk1SQ2lBVEQwNHI3WEE1MlR1d21rbVFpb1BNNDNrWjAKR29mVUVwazZMM3BLc0lXZDRyOEVyY1l2aGpKOUZ3TC9aa1FwamJmVWczTDVOTXZQVVlzRUJOcWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU14bWdiWEIySDQyClpaSElxZk1yUm1ZTXJGTlFjRVFMWkRNQXpSNllTT25oTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFESXFIbkYKTVRueENhY3VqWFExSWRNYjRQM1dQNkFwRzJvNDFmODlzWHQ0RGdJZ1pHR2lIckQ2eG5nMEdIQ1R6dVpjay9keApEVTRteGhRT3piQmxOOUJSaXRVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "Org2MSP"
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHRENDQWIrZ0F3SUJBZ0lRRXlMaEZMdXpvWFdRcHMzYzJvSXZ6ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHhPREEwTURJd01qTXdNelphRncweU9EQXpNekF3TWpNd016WmEKTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFEREJaQlpHMXBia0J2Y21jeExtVjRZVzF3YkdVdVkyOXRNRmt3CkV3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFb29zbHNQbFZPdVluSXd0LzJVUnpWMFJhdUl1ejdPWG0KMTNuUXpMTWFLNlMvWkUyOGdmbFBMWUtpMU1tc2VaNVppS2l2SWVWYnpwK3hyL1ZmSmxwZDdxTk5NRXN3RGdZRApWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FneHZKd1crT0w1TDJkCjFCamtlVzdpSjFybjdmSUU2eXMrc1lBRWFuZ3dwRHd3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnZm5seFdRWVYKZGM2Z1oreXAzOURGUlYzMHZUaW5MbkkvNTM5SHlHdHdWRHNDSUh6bkdqNHpsK2dLbDRqUHE2OFpyU0ROUUdrYwpzN2YzRzBPaHBYak9JTWpFCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
"mspid": "Org1MSP"
},
"nonce": "i5DG2Q3U3ghQN5UNfyPselKS283OD7rC"
"nonce": "QUPtUP7fLh0Aj+nXyA3SOniI+KARxbcr"
}
}
]
@ -713,28 +701,28 @@
"channel_header": {
"channel_id": "businesschannel",
"epoch": "0",
"timestamp": "2018-09-25T07:49:19.000Z",
"timestamp": "2018-11-09T02:25:55.000Z",
"tx_id": "",
"type": 2,
"version": 0
},
"signature_header": {
"creator": {
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHakNDQWNDZ0F3SUJBZ0lSQUlGd0tEeURCdXh6ZWg4NGljSmh0ejh3Q2dZSUtvWkl6ajBFQXdJd2N6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHVEFYQmdOVkJBb1RFRzl5WnpJdVpYaGhiWEJzWlM1amIyMHhIREFhQmdOVkJBTVRFMk5oCkxtOXlaekl1WlhoaGJYQnNaUzVqYjIwd0hoY05NVGd3TkRBeU1ESXpNRE0zV2hjTk1qZ3dNek13TURJek1ETTMKV2pCYk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnhNTgpVMkZ1SUVaeVlXNWphWE5qYnpFZk1CMEdBMVVFQXd3V1FXUnRhVzVBYjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEJaCk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQk1SQ2lBVEQwNHI3WEE1MlR1d21rbVFpb1BNNDNrWjAKR29mVUVwazZMM3BLc0lXZDRyOEVyY1l2aGpKOUZ3TC9aa1FwamJmVWczTDVOTXZQVVlzRUJOcWpUVEJMTUE0RwpBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHQTFVZEl3UWtNQ0tBSU14bWdiWEIySDQyClpaSElxZk1yUm1ZTXJGTlFjRVFMWkRNQXpSNllTT25oTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFESXFIbkYKTVRueENhY3VqWFExSWRNYjRQM1dQNkFwRzJvNDFmODlzWHQ0RGdJZ1pHR2lIckQ2eG5nMEdIQ1R6dVpjay9keApEVTRteGhRT3piQmxOOUJSaXRVPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "Org2MSP"
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHRENDQWIrZ0F3SUJBZ0lRRXlMaEZMdXpvWFdRcHMzYzJvSXZ6ekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHhPREEwTURJd01qTXdNelphRncweU9EQXpNekF3TWpNd016WmEKTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFEREJaQlpHMXBia0J2Y21jeExtVjRZVzF3YkdVdVkyOXRNRmt3CkV3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFb29zbHNQbFZPdVluSXd0LzJVUnpWMFJhdUl1ejdPWG0KMTNuUXpMTWFLNlMvWkUyOGdmbFBMWUtpMU1tc2VaNVppS2l2SWVWYnpwK3hyL1ZmSmxwZDdxTk5NRXN3RGdZRApWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FneHZKd1crT0w1TDJkCjFCamtlVzdpSjFybjdmSUU2eXMrc1lBRWFuZ3dwRHd3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnZm5seFdRWVYKZGM2Z1oreXAzOURGUlYzMHZUaW5MbkkvNTM5SHlHdHdWRHNDSUh6bkdqNHpsK2dLbDRqUHE2OFpyU0ROUUdrYwpzN2YzRzBPaHBYak9JTWpFCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
"mspid": "Org1MSP"
},
"nonce": "NxSAlx0I9wk+9r6OJbgQrAWe1QPhfAiw"
"nonce": "T4kGZu90W6ZaCm67oHSkUK4tg1GKDuEr"
}
}
},
"signature": "MEUCIQClP1j2MwvVHroVvUfuw17+7Fu35z2wFV2LFmS4YQRiLwIgYUtCG9rjf9L//HoQcVCadQFqY2etT6TLCsrkvf6D7yM="
"signature": "MEUCIQChejzMaiuM5M2z85voJxoj53n4sDLSsocMRYrBrBpjLwIgEwzwyWP5Xx4k6b2Nc7GH1THuH+UkqbaKGBApZGv1wdc="
}
},
"header": {
"channel_header": {
"channel_id": "businesschannel",
"epoch": "0",
"timestamp": "2018-09-25T07:49:19.000Z",
"timestamp": "2018-11-09T02:25:55.000Z",
"tx_id": "",
"type": 1,
"version": 0
@ -744,23 +732,22 @@
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNERENDQWJLZ0F3SUJBZ0lRUysyUitKSWo5WnBKTHhOSWk1MmtHREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNRFF3TWpBeU16QXpOMW9YRFRJNE1ETXpNREF5TXpBek4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWlJMzQ2VitObUJNM2xVcGxoODVpTFYzbmF1aVNLRzRjZjE4NWVQTXgxWWp4RG53RlkKaUx5aEFzMmtxSTA3Ly9COXFCOFZwOVh4TVlBeVU3UXVGZGhNbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDQ1BhWDVvUEsyVk5lN2NxU2g2KzRmQVVPRSszQk9FCnJjbGtRSE0xSlpORFFqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUF0N283UGkzZWVweGpWd24zRTB6Y2ptd2sKQTBIVDh4MnpSYXMwTjlqZ0E0OENJQ1kzUTRjMXM3QlJHcXRsSkF2VU9vMUo0SitXbkRhTGVlS01ZWmRWUWl6TgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"mspid": "OrdererMSP"
},
"nonce": "j7A26eBxfcJW8KAMosZY0ZIhLBa81tMn"
"nonce": "WNuEpfTuJzKcJu6GfibZdVn8183dw02w"
}
}
},
"signature": "MEUCIQC/W0Hitof3EcnutYIKtVqFNZbmzKbnjZthACXlUPAN8AIgFbvh8fmZQgyJIoHSxk4uAM/S/YOSi+p8suuh8/Yz4kw="
"signature": "MEQCIGKUFjJR/kUrzz438eWEbprk6ltLzPoutv+ENz7BN63uAiBinbaQ/nn375/ABEoFmR2/dgKDtPy12GvkvRiycDWmBA=="
}
]
},
"header": {
"data_hash": "EIZ2FxvWtISg8HB5TJpHGes7pVjn5x8u6FprxnsPEWo=",
"number": "2",
"previous_hash": "aPW/2bE21C9v+tMs3z5CuE7a/isHqJ4+cWfsLVOjxrI="
"data_hash": "fvgu9UdJ2G6bNMcbOrtGw6kexhTwi27QSEzNS823gDY=",
"number": "0"
},
"metadata": {
"metadata": [
"EvgGCq0GCpAGCgpPcmRlcmVyTVNQEoEGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNERENDQWJLZ0F3SUJBZ0lRUysyUitKSWo5WnBKTHhOSWk1MmtHREFLQmdncWhrak9QUVFEQWpCcE1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVVNQklHQTFVRUNoTUxaWGhoYlhCc1pTNWpiMjB4RnpBVkJnTlZCQU1URG1OaExtVjRZVzF3CmJHVXVZMjl0TUI0WERURTRNRFF3TWpBeU16QXpOMW9YRFRJNE1ETXpNREF5TXpBek4xb3dXREVMTUFrR0ExVUUKQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkdjbUZ1WTJsegpZMjh4SERBYUJnTlZCQU1URTI5eVpHVnlaWEl1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCmhrak9QUU1CQndOQ0FBUWlJMzQ2VitObUJNM2xVcGxoODVpTFYzbmF1aVNLRzRjZjE4NWVQTXgxWWp4RG53RlkKaUx5aEFzMmtxSTA3Ly9COXFCOFZwOVh4TVlBeVU3UXVGZGhNbzAwd1N6QU9CZ05WSFE4QkFmOEVCQU1DQjRBdwpEQVlEVlIwVEFRSC9CQUl3QURBckJnTlZIU01FSkRBaWdDQ1BhWDVvUEsyVk5lN2NxU2g2KzRmQVVPRSszQk9FCnJjbGtRSE0xSlpORFFqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUF0N283UGkzZWVweGpWd24zRTB6Y2ptd2sKQTBIVDh4MnpSYXMwTjlqZ0E0OENJQ1kzUTRjMXM3QlJHcXRsSkF2VU9vMUo0SitXbkRhTGVlS01ZWmRWUWl6TgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tChIYlzxQYZrzmpgKAO8gf7f1YJkhI8EqIl3rEkYwRAIgAr+92zE+NwEtXmQBGkh6uJ+VrRtisBFO+Nor2F0OmCkCIHYJBSHpzpvADAHqaAbDqouaWThZ+qw1alDFLMs2v7bZ",
"CgIIAhL4BgqtBgqQBgoKT3JkZXJlck1TUBKBBi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlDRERDQ0FiS2dBd0lCQWdJUVMrMlIrSklqOVpwSkx4TklpNTJrR0RBS0JnZ3Foa2pPUFFRREFqQnBNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVVTUJJR0ExVUVDaE1MWlhoaGJYQnNaUzVqYjIweEZ6QVZCZ05WQkFNVERtTmhMbVY0WVcxdwpiR1V1WTI5dE1CNFhEVEU0TURRd01qQXlNekF6TjFvWERUSTRNRE16TURBeU16QXpOMW93V0RFTE1Ba0dBMVVFCkJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHoKWTI4eEhEQWFCZ05WQkFNVEUyOXlaR1Z5WlhJdVpYaGhiWEJzWlM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFpSTM0NlYrTm1CTTNsVXBsaDg1aUxWM25hdWlTS0c0Y2YxODVlUE14MVlqeERud0ZZCmlMeWhBczJrcUkwNy8vQjlxQjhWcDlYeE1ZQXlVN1F1RmRoTW8wMHdTekFPQmdOVkhROEJBZjhFQkFNQ0I0QXcKREFZRFZSMFRBUUgvQkFJd0FEQXJCZ05WSFNNRUpEQWlnQ0NQYVg1b1BLMlZOZTdjcVNoNis0ZkFVT0UrM0JPRQpyY2xrUUhNMUpaTkRRakFLQmdncWhrak9QUVFEQWdOSUFEQkZBaUVBdDdvN1BpM2VlcHhqVnduM0UwemNqbXdrCkEwSFQ4eDJ6UmFzME45amdBNDhDSUNZM1E0YzFzN0JSR3F0bEpBdlVPbzFKNEorV25EYUxlZUtNWVpkVlFpek4KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoSGLGkkramGhwbtX9AGtYybYZlrNW2YGUFehJGMEQCIGO8RELou5CrN2NulnBMcF6g92eu5/Eb8ptDLfzYekZZAiB/vPv2oFLf9M7BIkwTXzcmbSwsZ+19yLQCFX20zF2/HA==",
"",
"",
"",
""
]

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long