Bootstrap a development network with 4 peers (2 orgs) and 1 orderer (1 org), each having a single independent root of trust (No fabric-ca, just openssl) -- @1.1 Orderer Options
Step 1
Given the orderer network has organizations
Organization
Readers
Writers
Admins
ordererOrg0
member
member
admin
Created new organization ordererOrg0 with public cert
-----BEGIN CERTIFICATE-----
MIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl
ck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX
MBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3
MTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK
BgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu
YTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt
g64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU
MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR
pzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC
A0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1
4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==
-----END CERTIFICATE-----
from cryptography import x509
from cryptography.hazmat.backends import default_backend
pem_data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dir-org-ordererorg0-cert.pem') as f:
pem_data = f.read()
cert_for_ordererOrg0 = x509.load_pem_x509_certificate(pem_data, default_backend())
ski_for_ordererOrg0= cert_for_ordererOrg0.extensions.get_extension_for_oid(x509.oid.ExtensionOID.SUBJECT_KEY_IDENTIFIER)
Step 2
And user requests role of orderer admin by creating a key and csr for orderer and acquires signed certificate from organization
User
Orderer
Organization
orderer0Signer
orderer0
ordererOrg0
orderer1Signer
orderer1
ordererOrg0
orderer2Signer
orderer2
ordererOrg0
Created new user orderer0Signer with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIJxD1AzQZguXJ1pcRmCelguOds9FLR1AkrHe+bVlm2+WoAoGCCqGSM49
AwEHoUQDQgAEHwFzXF69MQ5BXs7mYiOpA/982mr80ygi6IWcWQb7VLkyx2V53sAR
QyB5RoQ/xT/Ax+pHwR1vlx3CR4fjuU/MdA==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'orderer0Signer', nodeName=u'orderer0', organization=u'ordererOrg0')
-----BEGIN CERTIFICATE-----
MIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl
ck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX
MBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3
MTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV
BAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo
IuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud
IwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp
CM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L
38MGiwiA78Rt5aElon+ejTE=
-----END CERTIFICATE-----
Created new user orderer1Signer with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIOk/cu6HN5xVuJgsV3+yrD7rEyAQhBEg2ElUVb61AOvyoAoGCCqGSM49
AwEHoUQDQgAE2+uIGIQowWaMtHOECYVhryH8o/QJb5GZ7bMZ0FcnJu9x/CAmbUJW
n/TF8JS4+SvmJyM9PYCb6Z0odVeLcHDgRA==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'orderer1Signer', nodeName=u'orderer1', organization=u'ordererOrg0')
-----BEGIN CERTIFICATE-----
MIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl
ck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX
MBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3
MTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMTELMAkGA1UEBhMCVVMxDDAKBgNV
BAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABNvriBiEKMFmjLRzhAmFYa8h/KP0CW+R
me2zGdBXJybvcfwgJm1CVp/0xfCUuPkr5icjPT2Am+mdKHVXi3Bw4ESjUDBOMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFNbbR1HOqs3NymXMxYv6m6fnWgQGMB8GA1Ud
IwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIC7P
gvGW7BJ7A7tUXR0v87vlNj5dxOzSMABv/G6yHnd6AiEA1f9LtNTAz0Y7UvvgAyq3
I2dmJBdJeDUatIFO79IvyN4=
-----END CERTIFICATE-----
Created new user orderer2Signer with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEID5DSwlHOhz61XeIEqWjv1mOKky4Qn9bVN+aSs3d1v0moAoGCCqGSM49
AwEHoUQDQgAENGJDq6rs6lm/dvXYHxAszmIeymKcQ8rTxYAWYTMfg8zn9BP4Ccjv
/AJZ/8bkZD/1jka9ysZpZP7Ocs7cJNsw+g==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'orderer2Signer', nodeName=u'orderer2', organization=u'ordererOrg0')
-----BEGIN CERTIFICATE-----
MIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl
ck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX
MBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3
MTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMjELMAkGA1UEBhMCVVMxDDAKBgNV
BAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABDRiQ6uq7OpZv3b12B8QLM5iHspinEPK
08WAFmEzH4PM5/QT+AnI7/wCWf/G5GQ/9Y5GvcrGaWT+znLO3CTbMPqjUDBOMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFOZIN9L+DwqHRGGp1UxwzJEcLG3IMB8GA1Ud
IwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIQCC
KLqIZQ0or/T0H0704hGPQd1YkyDQ9WcG9sEABXefzgIgGcPhxLAUgCVgNVWcwCzS
DefbQKK6d2Z8ysda/hkm/6Y=
-----END CERTIFICATE-----
Step 3
And the peer network has organizations
Organization
Readers
Writers
Admins
peerOrg0
member
member
admin
Created new organization peerOrg0 with public cert
-----BEGIN CERTIFICATE-----
MIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0
OTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM
A1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG
ByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea
moa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud
EwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G
A1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC
IQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G
v4D1ZnEJ9emNk6FETGC8NKnnUuc=
-----END CERTIFICATE-----
from cryptography import x509
from cryptography.hazmat.backends import default_backend
pem_data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dir-org-peerorg0-cert.pem') as f:
pem_data = f.read()
cert_for_peerOrg0 = x509.load_pem_x509_certificate(pem_data, default_backend())
ski_for_peerOrg0= cert_for_peerOrg0.extensions.get_extension_for_oid(x509.oid.ExtensionOID.SUBJECT_KEY_IDENTIFIER)
Step 4
And a ordererBootstrapAdmin is identified and given access to all public certificates and orderer node info
Created new user ordererBootstrapAdmin with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEINuAq3vwSWeNaFN11VioqewChRNNkHx96JBOMbYcqayAoAoGCCqGSM49
AwEHoUQDQgAEj+jXLuSVLv4dxNelhdtfmtJAGFQJdm1qrCDeoxSc/Vc4+mJD3rbe
aprPJIKmc+2WwnqGN9hERUi+F9Lg99mROg==
-----END EC PRIVATE KEY-----
Step 5
And the ordererBootstrapAdmin creates a cert alias "bootstrapCertAlias" for orderer network bootstrap purposes for organizations
Created new named node admin tuple: NodeAdminTuple(user='ordererBootstrapAdmin', nodeName='ordererBootstrapAdmin', organization=u'ordererOrg0')
-----BEGIN CERTIFICATE-----
MIIB+zCCAaCgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl
ck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX
MBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3
MTg0OTM0WjBiMR4wHAYDVQQDDBVvcmRlcmVyQm9vdHN0cmFwQWRtaW4xCzAJBgNV
BAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUGA1UECAwOTm9y
dGggQ2Fyb2xpbmEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASP6Ncu5JUu/h3E
16WF21+a0kAYVAl2bWqsIN6jFJz9Vzj6YkPett5qms8kgqZz7ZbCeoY32ERFSL4X
0uD32ZE6o1AwTjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTFirck6c1lBS6qkaaE
FYO7Y8wiaTAfBgNVHSMEGDAWgBQ0U4190CTgB250RFpGKJIV0ac7BjAKBggqhkjO
PQQDAgNJADBGAiEAgUXKeWSiMnxaUFL/+bnzh0EQmE56RqKWhEAf5gRWLUECIQDc
+Ktmy69TTYNd8zhIdz8PXFVcip5/TUZB4Fojcvl1PA==
-----END CERTIFICATE-----
User ordererBootstrapAdmin setting tag key bootstrapCertAlias to value
NodeAdminTuple(user='ordererBootstrapAdmin', nodeName='ordererBootstrapAdmin', organization=u'ordererOrg0')
Step 6
And the ordererBootstrapAdmin generates a GUUID to identify the orderer system chain and refer to it by name as "OrdererSystemChainId"
User ordererBootstrapAdmin setting tag key OrdererSystemChainId to value
40dc98352b7a11e79ac800163e000427
Step 7
And the ordererBootstrapAdmin creates a consortium "consortium1" (network name) for peer orgs who wish to form a network
User ordererBootstrapAdmin setting tag key consortium1 to value
Protobuf message in binary form
groups {
key: "Consortiums"
value {
groups {
key: "consortium1"
value {
groups {
key: "peerOrg0"
value {
values {
key: "MSP"
value {
value: "\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n"
mod_policy: "Admins"
}
}
policies {
key: "Admins"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001"
}
mod_policy: "Admins"
}
}
policies {
key: "Readers"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0"
}
mod_policy: "Admins"
}
}
policies {
key: "Writers"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0"
}
mod_policy: "Admins"
}
}
}
}
values {
key: "ChannelCreationPolicy"
value {
value: "\010\003\022\013\n\007Writers\020\001"
mod_policy: "Admins"
}
}
}
}
}
}
from common.configtx_pb2 import ConfigGroup
configGroup = ConfigGroup()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/ordererbootstrapadmin-consortium1-0000.protobuf') as f:
data = f.read()
configGroup.ParseFromString(data)
Step 8
And the ordererBootstrapAdmin using cert alias "bootstrapCertAlias" creates the genesis block "ordererGenesisBlock" for chain "OrdererSystemChainId" for network config policy "<PolicyType>" and consensus "solo" using consortiums
User ordererBootstrapAdmin setting tag key ordererGenesisBlock_genesis_channel_config to value
Protobuf message in binary form
groups {
key: "Consortiums"
value {
groups {
key: "consortium1"
value {
groups {
key: "peerOrg0"
value {
values {
key: "MSP"
value {
value: "\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n"
mod_policy: "Admins"
}
}
policies {
key: "Admins"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001"
}
mod_policy: "Admins"
}
}
policies {
key: "Readers"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0"
}
mod_policy: "Admins"
}
}
policies {
key: "Writers"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0"
}
mod_policy: "Admins"
}
}
}
}
values {
key: "ChannelCreationPolicy"
value {
value: "\010\003\022\013\n\007Writers\020\001"
mod_policy: "Admins"
}
}
}
}
}
}
groups {
key: "Orderer"
value {
groups {
key: "ordererOrg0"
value {
values {
key: "MSP"
value {
value: "\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n"
mod_policy: "Admins"
}
}
policies {
key: "Admins"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001"
}
mod_policy: "Admins"
}
}
policies {
key: "Readers"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0"
}
mod_policy: "Admins"
}
}
policies {
key: "Writers"
value {
policy {
type: 1
policy: "\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0"
}
mod_policy: "Admins"
}
}
}
}
values {
key: "BatchSize"
value {
value: "\010\n\020\200\302\327/\030\200\200 "
mod_policy: "Admins"
}
}
values {
key: "BatchTimeout"
value {
value: "\n\0021s"
mod_policy: "Admins"
}
}
values {
key: "ChannelRestrictions"
value {
mod_policy: "Admins"
}
}
values {
key: "ConsensusType"
value {
value: "\n\004solo"
mod_policy: "Admins"
}
}
policies {
key: "Admins"
value {
policy {
type: 3
policy: "\n\006Admins\020\002"
}
mod_policy: "Admins"
}
}
policies {
key: "BlockValidation"
value {
policy {
type: 3
policy: "\n\007Writers"
}
mod_policy: "Admins"
}
}
policies {
key: "Readers"
value {
policy {
type: 3
policy: "\n\007Readers"
}
mod_policy: "Admins"
}
}
policies {
key: "Writers"
value {
policy {
type: 3
policy: "\n\007Writers"
}
mod_policy: "Admins"
}
}
}
}
values {
key: "BlockDataHashingStructure"
value {
value: "\010\377\377\377\377\017"
mod_policy: "Admins"
}
}
values {
key: "HashingAlgorithm"
value {
value: "\n\006SHA256"
mod_policy: "Admins"
}
}
values {
key: "OrdererAddresses"
value {
value: "\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050"
mod_policy: "Admins"
}
}
policies {
key: "Admins"
value {
policy {
type: 3
policy: "\n\006Admins\020\002"
}
mod_policy: "Admins"
}
}
policies {
key: "Readers"
value {
policy {
type: 3
policy: "\n\007Readers"
}
mod_policy: "Admins"
}
}
policies {
key: "Writers"
value {
policy {
type: 3
policy: "\n\007Writers"
}
mod_policy: "Admins"
}
}
from common.configtx_pb2 import ConfigGroup
configGroup = ConfigGroup()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/ordererbootstrapadmin-orderergenesisblock-genesis-channel-config.protobuf') as f:
data = f.read()
configGroup.ParseFromString(data)
User ordererBootstrapAdmin setting tag key ordererGenesisBlock to value
Protobuf message in binary form
header {
data_hash: "\222>\031f\2510\240\233\224\001O\321\301\253W\215\300\300/1\351\032U\262 \006\212/\305\243A^"
}
data {
data: "\n\253&\n\315\006\n.\010\001\020\001\032\006\010\275\372\210\310\005\" 40dc98352b7a11e79ac800163e000427\022\232\006\n\375\005\n\013ordererOrg0\022\355\005-----BEGIN CERTIFICATE-----\nMIIB+zCCAaCgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3\nMTg0OTM0WjBiMR4wHAYDVQQDDBVvcmRlcmVyQm9vdHN0cmFwQWRtaW4xCzAJBgNV\nBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUGA1UECAwOTm9y\ndGggQ2Fyb2xpbmEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASP6Ncu5JUu/h3E\n16WF21+a0kAYVAl2bWqsIN6jFJz9Vzj6YkPett5qms8kgqZz7ZbCeoY32ERFSL4X\n0uD32ZE6o1AwTjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTFirck6c1lBS6qkaaE\nFYO7Y8wiaTAfBgNVHSMEGDAWgBQ0U4190CTgB250RFpGKJIV0ac7BjAKBggqhkjO\nPQQDAgNJADBGAiEAgUXKeWSiMnxaUFL/+bnzh0EQmE56RqKWhEAf5gRWLUECIQDc\n+Ktmy69TTYNd8zhIdz8PXFVcip5/TUZB4Fojcvl1PA==\n-----END CERTIFICATE-----\n\022\030\034o\213\305D2\344q\271\313A\t\n\253\247U9=TO-\360l_\022\330\037\n\325\037\022\322\037\022\344\r\n\013Consortiums\022\324\r\022\321\r\n\013consortium1\022\301\r\022\212\r\n\010peerOrg0\022\375\014\032\340\013\n\003MSP\022\330\013\022\315\013\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\032\006Admins\"1\n\007Writers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"1\n\007Readers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"2\n\006Admins\022(\022\036\010\001\022\032\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001\032\006Admins\0322\n\025ChannelCreationPolicy\022\031\022\017\010\003\022\013\n\007Writers\020\001\032\006Admins\022\330\017\n\007Orderer\022\314\017\022\251\r\n\013ordererOrg0\022\231\r\032\363\013\n\003MSP\022\353\013\022\340\013\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\032\006Admins\"4\n\007Writers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"4\n\007Readers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"5\n\006Admins\022+\022!\010\001\022\035\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001\032\006Admins\032\"\n\tBatchSize\022\025\022\013\010\n\020\200\302\327/\030\200\200 \032\006Admins\032\037\n\023ChannelRestrictions\022\010\032\006Admins\032\036\n\014BatchTimeout\022\016\022\004\n\0021s\032\006Admins\032!\n\rConsensusType\022\020\022\006\n\004solo\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\"*\n\017BlockValidation\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\032K\n\020OrdererAddresses\0227\022-\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050\032\006Admins\032&\n\020HashingAlgorithm\022\022\022\010\n\006SHA256\032\006Admins\032-\n\031BlockDataHashingStructure\022\020\022\006\010\377\377\377\377\017\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\022G0E\002!\000\233w\314\366\255\226q[\n\026\331\366w\254\203\225Rn\021{|f\202R\261~\265\232o\356\324Q\002 [\347\025\254>\031\016{\013\347\030\262\022`\3573\024\031Ns\303\004[\360\352a\321n\241J\243\265"
}
metadata {
metadata: ""
metadata: ""
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/ordererbootstrapadmin-orderergenesisblock.protobuf') as f:
data = f.read()
block.ParseFromString(data)
User ordererBootstrapAdmin setting tag key ConsensusType to value
solo
Step 9
And the orderer admins inspect and approve the genesis block for chain "OrdererSystemChainId"
Step 10
And the orderer admins use the genesis block for chain "OrdererSystemChainId" to configure orderers
Step 11
And user requests role for peer by creating a key and csr for peer and acquires signed certificate from organization
User
Peer
Organization
AliasSavedUnder
peer0Signer
peer0
peerOrg0
peer1Signer
peer1
peerOrg0
peer2Signer
peer2
peerOrg0
peer3Signer
peer3
peerOrg0
peer0Admin
peer0
peerOrg0
peer-admin-cert
peer1Admin
peer1
peerOrg0
peer-admin-cert
peer2Admin
peer2
peerOrg0
peer-admin-cert
peer3Admin
peer3
peerOrg0
peer-admin-cert
Created new user peer0Signer with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIHYjlKtT6926f+2N9HwxK0m0J6ZKRJrp8zgeTjsjBGt6oAoGCCqGSM49
AwEHoUQDQgAEnL1Qr6he4ZJulvOBlTrhpWnsuwyOTvkKxwyMHkhoPZ1SXZaZwsZ4
C0GpsfIxYaNzYlGx4Iqe61uA/CeSb1QIFg==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer0Signer', nodeName=u'peer0', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB6DCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0
OTM0WjBSMQ4wDAYDVQQDDAVwZWVyMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABJy9UK+oXuGSbpbzgZU64aVp7LsMjk75CscMjB5I
aD2dUl2WmcLGeAtBqbHyMWGjc2JRseCKnutbgPwnkm9UCBajUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFPtBGBSCzm6QkrZH6e/mCSa2M9PrMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQDvOHWvdVLz
OOOO6zVzlTlnpx7l3tnFYENIX3bPx0mMWwIhANWacbcNaErmH+AO7iSpTEG0+yOv
ricFnKdPqNrYWOOK
-----END CERTIFICATE-----
Created new user peer1Signer with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDp95qas/9sscmhVI1U3DAnx0xDm3obaEOshxE9gcu82oAoGCCqGSM49
AwEHoUQDQgAEi0dKGDsrQPbp2qfurgWvlDO7riwJkIBNe0HQrM5XkSmzuHRS1X8k
+LtkKLCRmjNH/n9pskN/Q3sOxCI+WwhEGw==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer1Signer', nodeName=u'peer1', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB5jCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0
OTM1WjBSMQ4wDAYDVQQDDAVwZWVyMTELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABItHShg7K0D26dqn7q4Fr5Qzu64sCZCATXtB0KzO
V5Eps7h0UtV/JPi7ZCiwkZozR/5/abJDf0N7DsQiPlsIRBujUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFP6sIl84LZgg3VHNciGVV3Rap2pfMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0cAMEQCIGqXT5wDGoOS
IwEbrtSk9CHXYQyTO3Uoe/zzRYWqZ+tDAiAoBV/uQOI0G49nBtVtWCv4wVtBoTYS
HImiP797V9l6ZQ==
-----END CERTIFICATE-----
Created new user peer2Signer with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDuWl51KocFZf5p/bOc2Ou9DHn+IFPaLjADF3wLHvriOoAoGCCqGSM49
AwEHoUQDQgAEPRPw5e9rtFRBDljroEk5eFZH59EmAj64lx6Zm7wvF6O8w8JMh7++
o4kYKAAVgGwQS79QBEgI4WTrzySwcSUqaA==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer2Signer', nodeName=u'peer2', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0
OTM1WjBSMQ4wDAYDVQQDDAVwZWVyMjELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABD0T8OXva7RUQQ5Y66BJOXhWR+fRJgI+uJcemZu8
LxejvMPCTIe/vqOJGCgAFYBsEEu/UARICOFk688ksHElKmijUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFKin2+gnq87xKAR+ipKYcsJS3rTUMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIBk2lroR3Q8b
xxLGeCjwY7TIPO5rONr4KGG6mOiLHIoZAiEAy9rZZ2i5oLtkxHaScy18I+9paj2u
MFB4/f++r6yDDi8=
-----END CERTIFICATE-----
Created new user peer3Signer with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIIAVypc6oKH4+C3NYKwzz/UA7PASSOtdWy3mM+xxAW9GoAoGCCqGSM49
AwEHoUQDQgAEf8M67Sc9P8Jfvpzk0tlZuXx2ma0F1bLEtHcN6X0Wwi7UWsUYj7Uq
4XXFl9NB3Wkyp8y0gXP2I3TjtOTvJC7G5g==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer3Signer', nodeName=u'peer3', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0
OTM1WjBSMQ4wDAYDVQQDDAVwZWVyMzELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABH/DOu0nPT/CX76c5NLZWbl8dpmtBdWyxLR3Del9
FsIu1FrFGI+1KuF1xZfTQd1pMqfMtIFz9iN047Tk7yQuxuajUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFIYo30F+UeBuLlWYOqkRh3JAYpZsMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCICasZcI4qCVc
e7XQV6eQFZ/UwyACO3ADpn2HwvA7AQBmAiEA1BMBiAu0X9FgLOaYyXB4h8grSP52
ngI3UuzTdHbNTTA=
-----END CERTIFICATE-----
Created new user peer0Admin with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDxnCCZcsV5kP4k8m4aW/yU77ly5zr4/zUxX/Cuj4qxroAoGCCqGSM49
AwEHoUQDQgAEzEgoPnl2sVbHogW+hL7eDZ2ACp4U4zQ6ksSwYuq7HntoKRAs8Qfm
VkYt4gKIvSwjaXpiKZEiWhWrOQD+Bkd9yQ==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer0Admin', nodeName=u'peer0', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0
OTM1WjBSMQ4wDAYDVQQDDAVwZWVyMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABMxIKD55drFWx6IFvoS+3g2dgAqeFOM0OpLEsGLq
ux57aCkQLPEH5lZGLeICiL0sI2l6YimRIloVqzkA/gZHfcmjUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFBa9PAITNqPCrAxIOR+pCaNRUiHeMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIQCgF2WFUsoy
SxxYKKRR9yS4dcQKhjAgGLo8UX3ug0MGawIgfRY4+LwPDnLv0FRx3Hwmjw9Z+PDf
8VY/zoZZcWzM3u0=
-----END CERTIFICATE-----
User peer0Admin setting tag key peer-admin-cert to value
NodeAdminTuple(user=u'peer0Admin', nodeName=u'peer0', organization=u'peerOrg0')
Created new user peer1Admin with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIJysKvQcUhHd6ZoN+sR8dFsJ8fgh3zLPNMS0UPvijcLUoAoGCCqGSM49
AwEHoUQDQgAEN+mkCvhPd2W+TS5+YK5H/4K/MEpBWKgZyAAMrv7xaO9kWnNDZHMA
bJMjJ1vXj+X6EM2njfCTW9/x0ny/CDQjHg==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer1Admin', nodeName=u'peer1', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM2WhcNMTgwNDI3MTg0
OTM2WjBSMQ4wDAYDVQQDDAVwZWVyMTELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABDfppAr4T3dlvk0ufmCuR/+CvzBKQVioGcgADK7+
8WjvZFpzQ2RzAGyTIydb14/l+hDNp43wk1vf8dJ8vwg0Ix6jUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFM3Wj2f6wA6snCM1GTFZkmesWTSBMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIAzqajN4XFRz
TOj2CK39lF7Vx3/uPla9ooPIJjgJGjU4AiEA4dHn2KtDImCVCwo0Zja5Skefm0Cz
hYWuSt0qeCXw1FY=
-----END CERTIFICATE-----
User peer1Admin setting tag key peer-admin-cert to value
NodeAdminTuple(user=u'peer1Admin', nodeName=u'peer1', organization=u'peerOrg0')
Created new user peer2Admin with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIJ9EIVADhVNQLoUGifENjIeT7WvSaY9H4fF2hYEmvf3zoAoGCCqGSM49
AwEHoUQDQgAEV4V1gkuBwq4pc4olF9RAicthfUsjg6yVLODd5xYrgTYb5LY2Dx5X
anajp1qS0Zkxaf+lfyZK1kCgeAdL9fjtMw==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer2Admin', nodeName=u'peer2', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB6DCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM2WhcNMTgwNDI3MTg0
OTM2WjBSMQ4wDAYDVQQDDAVwZWVyMjELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABFeFdYJLgcKuKXOKJRfUQInLYX1LI4OslSzg3ecW
K4E2G+S2Ng8eV2p2o6daktGZMWn/pX8mStZAoHgHS/X47TOjUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFBQXXCr+x0jRBznXUn9fyV1fnAoMMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCuEXbVSwwK
x3bv9/jJZzEF1oFDah9V59U+XEyugk7XTwIhANmrlxI+R6VhhSq1tNj2X0ewaROx
JvWYaNzp9maPSwvy
-----END CERTIFICATE-----
User peer2Admin setting tag key peer-admin-cert to value
NodeAdminTuple(user=u'peer2Admin', nodeName=u'peer2', organization=u'peerOrg0')
Created new user peer3Admin with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIKp8+XtRG/LKeG861lXpQrRnNXiJ+WRroijDKeiGUn6YoAoGCCqGSM49
AwEHoUQDQgAENHXdUR+VmDsjCEOduTYlvnq2Pj//VQe6kqjgAxFBwvY6GD+2RpO7
OLmZyjALvRmAaWLs1WWxVblBk19yEyTPTQ==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'peer3Admin', nodeName=u'peer3', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM2WhcNMTgwNDI3MTg0
OTM2WjBSMQ4wDAYDVQQDDAVwZWVyMzELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU
UDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABDR13VEflZg7IwhDnbk2Jb56tj4//1UHupKo4AMR
QcL2Ohg/tkaTuzi5mcowC70ZgGli7NVlsVW5QZNfchMkz02jUDBOMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFFU9pbjNkxgQ0/PQG4GV/5PrkUGQMB8GA1UdIwQYMBaA
FMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIGw0WJ3+otqZ
t5bEtMqbACZUi/XkXmTuLoNQo53kqHptAiEAk0Dg2aNI5JCdCaC9YkKLcbbTnJ7O
T2FvUoHwEFmDh3k=
-----END CERTIFICATE-----
User peer3Admin setting tag key peer-admin-cert to value
NodeAdminTuple(user=u'peer3Admin', nodeName=u'peer3', organization=u'peerOrg0')
Step 12
And we compose "docker-compose-next-4.yml"
COMPOSE_PROJECT_NAME=40dc98342b7a11e79ac800163e000427 CORE_PEER_NETWORKID=40dc98342b7a11e79ac800163e000427 ORDERER0_ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/localMspConfig ORDERER0_ORDERER_GENERAL_LOCALMSPID=ordererOrg0 ORDERER0_ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.crt ORDERER0_ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.key ORDERER_GENERAL_GENESISFILE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/genesis_file ORDERER_GENERAL_GENESISMETHOD=file PEER0_CORE_PEER_LOCALMSPID=peerOrg0 PEER0_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig PEER0_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.crt PEER0_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.key PEER0_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig/cacerts/peerOrg0.pem PEER0_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0 PEER1_CORE_PEER_LOCALMSPID=peerOrg0 PEER1_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig PEER1_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.crt PEER1_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.key PEER1_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig/cacerts/peerOrg0.pem PEER1_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer1 PEER2_CORE_PEER_LOCALMSPID=peerOrg0 PEER2_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig PEER2_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.crt PEER2_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.key PEER2_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig/cacerts/peerOrg0.pem PEER2_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer2 PEER3_CORE_PEER_LOCALMSPID=peerOrg0 PEER3_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig PEER3_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.crt PEER3_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.key PEER3_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig/cacerts/peerOrg0.pem PEER3_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer3 docker-compose -f docker-compose-next-4.yml config
Configuration
networks: {}
services:
orderer0:
command: orderer
environment:
CONFIGTX_ORDERER_ORDERERTYPE: solo
ORDERER_GENERAL_BATCHSIZE: '10'
ORDERER_GENERAL_BATCHTIMEOUT: 10s
ORDERER_GENERAL_GENESISFILE: /var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/genesis_file
ORDERER_GENERAL_GENESISMETHOD: file
ORDERER_GENERAL_LEDGERTYPE: ram
ORDERER_GENERAL_LISTENADDRESS: 0.0.0.0
ORDERER_GENERAL_LISTENPORT: '7050'
ORDERER_GENERAL_LOCALMSPDIR: /var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/localMspConfig
ORDERER_GENERAL_LOCALMSPID: ordererOrg0
ORDERER_GENERAL_LOGLEVEL: debug
ORDERER_GENERAL_MAXWINDOWSIZE: '1000'
ORDERER_GENERAL_QUEUESIZE: '1000'
ORDERER_GENERAL_TLS_CERTIFICATE: /var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.crt
ORDERER_GENERAL_TLS_ENABLED: 'true'
ORDERER_GENERAL_TLS_PRIVATEKEY: /var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.key
ORDERER_GENERAL_TLS_ROOTCAS: ''
ORDERER_RAMLEDGER_HISTORY_SIZE: '100'
image: hyperledger/fabric-orderer
ports:
- 7050/tcp
volumes:
- /home/fabric/gopath/src/github.com/hyperledger/fabric/bddtests/volumes/orderer:/var/hyperledger/bddtests/volumes/orderer:rw
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
peer0:
command: peer node start --peer-defaultchain=false
depends_on:
- orderer0
environment:
CORE_LOGGING_LEVEL: DEBUG
CORE_NEXT: 'true'
CORE_PEER_ADDRESSAUTODETECT: 'true'
CORE_PEER_COMMITTER_LEDGER_ORDERER: orderer0:7050
CORE_PEER_ENDORSER_ENABLED: 'true'
CORE_PEER_GOSSIP_BOOTSTRAP: peer1:7051
CORE_PEER_GOSSIP_ORGLEADER: 'false'
CORE_PEER_GOSSIP_SKIPHANDSHAKE: 'true'
CORE_PEER_GOSSIP_USELEADERELECTION: 'true'
CORE_PEER_ID: vp0
CORE_PEER_LOCALMSPID: peerOrg0
CORE_PEER_MSPCONFIGPATH: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig
CORE_PEER_NETWORKID: 40dc98342b7a11e79ac800163e000427
CORE_PEER_PROFILE_ENABLED: 'true'
CORE_PEER_TLS_CERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.crt
CORE_PEER_TLS_ENABLED: 'true'
CORE_PEER_TLS_KEY_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.key
CORE_PEER_TLS_ROOTCERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig/cacerts/peerOrg0.pem
CORE_PEER_TLS_SERVERHOSTOVERRIDE: peer0
image: hyperledger/fabric-peer
ports:
- 7051/tcp
- 7053/tcp
volumes:
- /home/fabric/gopath/src/github.com/hyperledger/fabric/bddtests/volumes/peer:/var/hyperledger/bddtests/volumes/peer:rw
- /var/run/docker.sock:/var/run/docker.sock:rw
peer1:
command: peer node start --peer-defaultchain=false
depends_on:
- orderer0
- peer0
environment:
CORE_LOGGING_LEVEL: DEBUG
CORE_NEXT: 'true'
CORE_PEER_ADDRESSAUTODETECT: 'true'
CORE_PEER_COMMITTER_LEDGER_ORDERER: orderer0:7050
CORE_PEER_ENDORSER_ENABLED: 'true'
CORE_PEER_GOSSIP_BOOTSTRAP: peer0:7051
CORE_PEER_GOSSIP_ORGLEADER: 'false'
CORE_PEER_GOSSIP_SKIPHANDSHAKE: 'true'
CORE_PEER_GOSSIP_USELEADERELECTION: 'true'
CORE_PEER_ID: vp1
CORE_PEER_LOCALMSPID: peerOrg0
CORE_PEER_MSPCONFIGPATH: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig
CORE_PEER_NETWORKID: 40dc98342b7a11e79ac800163e000427
CORE_PEER_TLS_CERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.crt
CORE_PEER_TLS_ENABLED: 'true'
CORE_PEER_TLS_KEY_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.key
CORE_PEER_TLS_ROOTCERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig/cacerts/peerOrg0.pem
CORE_PEER_TLS_SERVERHOSTOVERRIDE: peer1
image: hyperledger/fabric-peer
ports:
- 7051/tcp
- 7053/tcp
volumes:
- /home/fabric/gopath/src/github.com/hyperledger/fabric/bddtests/volumes/peer:/var/hyperledger/bddtests/volumes/peer:rw
- /var/run/docker.sock:/var/run/docker.sock:rw
peer2:
command: peer node start --peer-defaultchain=false
depends_on:
- orderer0
- peer0
environment:
CORE_LOGGING_LEVEL: DEBUG
CORE_NEXT: 'true'
CORE_PEER_ADDRESSAUTODETECT: 'true'
CORE_PEER_COMMITTER_LEDGER_ORDERER: orderer0:7050
CORE_PEER_ENDORSER_ENABLED: 'true'
CORE_PEER_GOSSIP_BOOTSTRAP: peer3:7051
CORE_PEER_GOSSIP_ORGLEADER: 'false'
CORE_PEER_GOSSIP_SKIPHANDSHAKE: 'true'
CORE_PEER_GOSSIP_USELEADERELECTION: 'true'
CORE_PEER_ID: vp2
CORE_PEER_LOCALMSPID: peerOrg0
CORE_PEER_MSPCONFIGPATH: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig
CORE_PEER_NETWORKID: 40dc98342b7a11e79ac800163e000427
CORE_PEER_TLS_CERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.crt
CORE_PEER_TLS_ENABLED: 'true'
CORE_PEER_TLS_KEY_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.key
CORE_PEER_TLS_ROOTCERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig/cacerts/peerOrg0.pem
CORE_PEER_TLS_SERVERHOSTOVERRIDE: peer2
image: hyperledger/fabric-peer
ports:
- 7051/tcp
- 7053/tcp
volumes:
- /home/fabric/gopath/src/github.com/hyperledger/fabric/bddtests/volumes/peer:/var/hyperledger/bddtests/volumes/peer:rw
- /var/run/docker.sock:/var/run/docker.sock:rw
peer3:
command: peer node start --peer-defaultchain=false
depends_on:
- orderer0
- peer0
environment:
CORE_LOGGING_LEVEL: DEBUG
CORE_NEXT: 'true'
CORE_PEER_ADDRESSAUTODETECT: 'true'
CORE_PEER_COMMITTER_LEDGER_ORDERER: orderer0:7050
CORE_PEER_ENDORSER_ENABLED: 'true'
CORE_PEER_GOSSIP_BOOTSTRAP: peer2:7051
CORE_PEER_GOSSIP_ORGLEADER: 'false'
CORE_PEER_GOSSIP_SKIPHANDSHAKE: 'true'
CORE_PEER_GOSSIP_USELEADERELECTION: 'true'
CORE_PEER_ID: vp3
CORE_PEER_LOCALMSPID: peerOrg0
CORE_PEER_MSPCONFIGPATH: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig
CORE_PEER_NETWORKID: 40dc98342b7a11e79ac800163e000427
CORE_PEER_TLS_CERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.crt
CORE_PEER_TLS_ENABLED: 'true'
CORE_PEER_TLS_KEY_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.key
CORE_PEER_TLS_ROOTCERT_FILE: /var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig/cacerts/peerOrg0.pem
CORE_PEER_TLS_SERVERHOSTOVERRIDE: peer3
image: hyperledger/fabric-peer
ports:
- 7051/tcp
- 7053/tcp
volumes:
- /home/fabric/gopath/src/github.com/hyperledger/fabric/bddtests/volumes/peer:/var/hyperledger/bddtests/volumes/peer:rw
- /var/run/docker.sock:/var/run/docker.sock:rw
version: '2.0'
volumes: {}
Network Graph
COMPOSE_PROJECT_NAME=40dc98342b7a11e79ac800163e000427 CORE_PEER_NETWORKID=40dc98342b7a11e79ac800163e000427 ORDERER0_ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/localMspConfig ORDERER0_ORDERER_GENERAL_LOCALMSPID=ordererOrg0 ORDERER0_ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.crt ORDERER0_ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.key ORDERER_GENERAL_GENESISFILE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/genesis_file ORDERER_GENERAL_GENESISMETHOD=file PEER0_CORE_PEER_LOCALMSPID=peerOrg0 PEER0_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig PEER0_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.crt PEER0_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.key PEER0_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig/cacerts/peerOrg0.pem PEER0_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0 PEER1_CORE_PEER_LOCALMSPID=peerOrg0 PEER1_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig PEER1_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.crt PEER1_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.key PEER1_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig/cacerts/peerOrg0.pem PEER1_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer1 PEER2_CORE_PEER_LOCALMSPID=peerOrg0 PEER2_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig PEER2_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.crt PEER2_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.key PEER2_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig/cacerts/peerOrg0.pem PEER2_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer2 PEER3_CORE_PEER_LOCALMSPID=peerOrg0 PEER3_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig PEER3_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.crt PEER3_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.key PEER3_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig/cacerts/peerOrg0.pem PEER3_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer3 docker-compose -f docker-compose-next-4.yml config --services
COMPOSE_PROJECT_NAME=40dc98342b7a11e79ac800163e000427 CORE_PEER_NETWORKID=40dc98342b7a11e79ac800163e000427 ORDERER0_ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/localMspConfig ORDERER0_ORDERER_GENERAL_LOCALMSPID=ordererOrg0 ORDERER0_ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.crt ORDERER0_ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.key ORDERER_GENERAL_GENESISFILE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/genesis_file ORDERER_GENERAL_GENESISMETHOD=file PEER0_CORE_PEER_LOCALMSPID=peerOrg0 PEER0_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig PEER0_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.crt PEER0_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.key PEER0_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig/cacerts/peerOrg0.pem PEER0_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0 PEER1_CORE_PEER_LOCALMSPID=peerOrg0 PEER1_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig PEER1_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.crt PEER1_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.key PEER1_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig/cacerts/peerOrg0.pem PEER1_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer1 PEER2_CORE_PEER_LOCALMSPID=peerOrg0 PEER2_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig PEER2_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.crt PEER2_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.key PEER2_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig/cacerts/peerOrg0.pem PEER2_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer2 PEER3_CORE_PEER_LOCALMSPID=peerOrg0 PEER3_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig PEER3_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.crt PEER3_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.key PEER3_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig/cacerts/peerOrg0.pem PEER3_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer3 docker-compose -f docker-compose-next-4.yml up -d --force-recreate
COMPOSE_PROJECT_NAME=40dc98342b7a11e79ac800163e000427 CORE_PEER_NETWORKID=40dc98342b7a11e79ac800163e000427 ORDERER0_ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/localMspConfig ORDERER0_ORDERER_GENERAL_LOCALMSPID=ordererOrg0 ORDERER0_ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.crt ORDERER0_ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/orderer0/tls_config/orderer0Signer-orderer0-ordererOrg0-tls.key ORDERER_GENERAL_GENESISFILE=/var/hyperledger/bddtests/volumes/orderer/40dc98342b7a11e79ac800163e000427/genesis_file ORDERER_GENERAL_GENESISMETHOD=file PEER0_CORE_PEER_LOCALMSPID=peerOrg0 PEER0_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig PEER0_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.crt PEER0_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/tls_config/peer0Signer-peer0-peerOrg0-tls.key PEER0_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer0/localMspConfig/cacerts/peerOrg0.pem PEER0_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0 PEER1_CORE_PEER_LOCALMSPID=peerOrg0 PEER1_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig PEER1_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.crt PEER1_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/tls_config/peer1Signer-peer1-peerOrg0-tls.key PEER1_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer1/localMspConfig/cacerts/peerOrg0.pem PEER1_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer1 PEER2_CORE_PEER_LOCALMSPID=peerOrg0 PEER2_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig PEER2_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.crt PEER2_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/tls_config/peer2Signer-peer2-peerOrg0-tls.key PEER2_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer2/localMspConfig/cacerts/peerOrg0.pem PEER2_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer2 PEER3_CORE_PEER_LOCALMSPID=peerOrg0 PEER3_CORE_PEER_MSPCONFIGPATH=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig PEER3_CORE_PEER_TLS_CERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.crt PEER3_CORE_PEER_TLS_KEY_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/tls_config/peer3Signer-peer3-peerOrg0-tls.key PEER3_CORE_PEER_TLS_ROOTCERT_FILE=/var/hyperledger/bddtests/volumes/peer/40dc98342b7a11e79ac800163e000427/peer3/localMspConfig/cacerts/peerOrg0.pem PEER3_CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer3 docker-compose -f docker-compose-next-4.yml ps -q
Step 13
And I wait "0" seconds
Step 14
And the following application developers are defined for peer organizations and each saves their cert as alias
Developer
Consortium
Organization
AliasSavedUnder
dev0Org0
consortium1
peerOrg0
dev0Org0App1
dev0Org1
consortium1
peerOrg0
dev0Org1App1
Created new user dev0Org0 with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIEO4d1W3zGA4PT+v+YfdXuuRc0KECPlYyK9VY7VcGyPwoAoGCCqGSM49
AwEHoUQDQgAEbPcUyi9Gy0ErkO5tNJaXhq5QE2NR4ySZbrHRRsReicr+yPo7kCEQ
3gSSt/JUkX+wD2bnYAeyYTNo/ah0iBgTHw==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'dev0Org0', nodeName=u'consortium1', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0
OTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV
BAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk
mW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud
IwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV
GtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx
UuWd5HCHk0DT3FI2osl/qYIO
-----END CERTIFICATE-----
User dev0Org0 setting tag key dev0Org0App1 to value
NodeAdminTuple(user=u'dev0Org0', nodeName=u'consortium1', organization=u'peerOrg0')
Created new user dev0Org1 with private key
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIAhEOqXZhZ3lngw+n8RjKMyA/6O9VAokOHc9ZwQdrZ7JoAoGCCqGSM49
AwEHoUQDQgAEFqYSxy6AVb10nQXXEL9vLa8PSGLFpEG2IvfE1Y7kIZwqaRzvc3v/
qvrfYsmpvuOh9fq7ATUhv3fmaLaz4uLGZQ==
-----END EC PRIVATE KEY-----
Created new named node admin tuple: NodeAdminTuple(user=u'dev0Org1', nodeName=u'consortium1', organization=u'peerOrg0')
-----BEGIN CERTIFICATE-----
MIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y
ZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG
A1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0
OTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV
BAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB
tiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud
IwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+
k95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy
ahPwqTJzh29i7wDevYXycho=
-----END CERTIFICATE-----
User dev0Org1 setting tag key dev0Org1App1 to value
NodeAdminTuple(user=u'dev0Org1', nodeName=u'consortium1', organization=u'peerOrg0')
Step 15
And the user "dev0Org0" creates a peer template "template1" with chaincode deployment policy using consortium "consortium1" and peer organizations
User dev0Org0 setting tag key template1 to value
[name:peerOrg0, networks: [<Network.Peer: 2>]]
Step 16
And the user "dev0Org0" creates an peer anchor set "anchors1" for channel "com.acme.blockchain.jdoe.Channel1" for orgs
User
Peer
Organization
peer0Signer
peer0
peerOrg0
User dev0Org0 setting tag key anchors1 to value
Protobuf message in binary form
groups {
key: "Application"
value {
groups {
key: "peerOrg0"
value {
values {
key: "AnchorPeers"
value {
value: "\n\n\n\005peer0\020\2137"
}
}
}
}
}
}
from common.configtx_pb2 import ConfigGroup
configGroup = ConfigGroup()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-anchors1-0000.protobuf') as f:
data = f.read()
configGroup.ParseFromString(data)
Step 17
And the user "dev0Org0" creates a ConfigUpdateEnvelope "createChannelConfigUpdate1"
ChannelID
Template
Consortium
Anchors
com.acme.blockchain.jdoe.Channel1
template1
consortium1
anchors1
User dev0Org0 setting tag key createChannelConfigUpdate1_signedMspConfigItems to value
Protobuf message in binary form
groups {
key: "Application"
value {
groups {
key: "peerOrg0"
value {
}
}
policies {
key: "Admins"
value {
policy {
type: 3
policy: "\n\006Admins\020\002"
}
}
}
policies {
key: "Readers"
value {
policy {
type: 3
policy: "\n\007Readers"
}
}
}
policies {
key: "Writers"
value {
policy {
type: 3
policy: "\n\007Writers"
}
}
}
}
}
from common.configtx_pb2 import ConfigGroup
configGroup = ConfigGroup()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-createchannelconfigupdate1-signedmspconfigitems-0000.protobuf') as f:
data = f.read()
configGroup.ParseFromString(data)
User dev0Org0 setting tag key createChannelConfigUpdate1_channel_config_groups to value
Protobuf message in binary form
groups {
key: "Application"
value {
version: 1
groups {
key: "peerOrg0"
value {
}
}
policies {
key: "Admins"
value {
policy {
type: 3
policy: "\n\006Admins\020\002"
}
}
}
policies {
key: "Readers"
value {
policy {
type: 3
policy: "\n\007Readers"
}
}
}
policies {
key: "Writers"
value {
policy {
type: 3
policy: "\n\007Writers"
}
}
}
}
}
values {
key: "Consortium"
value {
value: "\n\013consortium1"
}
}
from common.configtx_pb2 import ConfigGroup
configGroup = ConfigGroup()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-createchannelconfigupdate1-channel-config-groups.protobuf') as f:
data = f.read()
configGroup.ParseFromString(data)
User dev0Org0 setting tag key createChannelConfigUpdate1 to value
Protobuf message in binary form
config_update: "\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1"
from common.configtx_pb2 import ConfigUpdateEnvelope
configUpdateEnvelope = ConfigUpdateEnvelope()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-createchannelconfigupdate1.protobuf') as f:
data = f.read()
configUpdateEnvelope.ParseFromString(data)
Step 18
And the user "dev0Org0" collects signatures for ConfigUpdateEnvelope "createChannelConfigUpdate1" from developers
Developer
Cert Alias
dev0Org0
dev0Org0App1
dev0Org1
dev0Org1App1
Step 19
And the user "dev0Org0" creates a ConfigUpdate Tx "configUpdateTx1" using cert alias "dev0Org0App1" using signed ConfigUpdateEnvelope "createChannelConfigUpdate1"
User dev0Org0 setting tag key configUpdateTx1 to value
Protobuf message in binary form
payload: "\n\267\006\n/\010\002\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030x\304\242\246\224\317w\014\0279*\355\"\246\2370\220\310\233\305k`\024l\022\241\017\n\372\001\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\2771\351\243\370\256\004\261\324\262~\234\3149\232\346\240\245\016\365\362i\031\234\022G0E\002!\000\360\250\262\200~q\3175C3\233\201\342q\333i\363\324\324dwUD\325\243\017\021\273\205\007Q\"\002 ?\375\301\005\2455\362\215[\231\007\323Y\300\265{C\254\313\200\265\023_\361\365M\272\357\232R2$\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB\ntiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+\nk95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy\nahPwqTJzh29i7wDevYXycho=\n-----END CERTIFICATE-----\n\022\030\357v_\007i\014\375\373\342\013\031\232\217\030;\340)^\203s\225\026;\326\022G0E\002!\000\230sr\217\312\354\350\233\2766\200\035\273\371\2543\\\212r\302-h\316\353\224\206\264c\036\223\315\002\002 N\347=\352O\302\225iX\311\364\200\220\311F}]\201\203\311\246\212*\260R[fZ\312\335\315\'"
signature: "0D\002 ?M\324\270Fr\201\322\000\024S\002\360<cb\351boH4Z\205\216\222\225\025o\304\326\301\003\002 1{(!\376\nsrO\010E\311\275\367\361\353\342[od_\367\217:\036\207L\332c\r\t4"
from common.common_pb2 import Envelope
envelope = Envelope()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-configupdatetx1.protobuf') as f:
data = f.read()
envelope.ParseFromString(data)
Step 20
And the user "dev0Org0" using cert alias "dev0Org0App1" broadcasts ConfigUpdate Tx "configUpdateTx1" to orderer "orderer0" to create channel "com.acme.blockchain.jdoe.Channel1"
Step 21
And I wait "2" seconds
Step 22
When user "dev0Org0" using cert alias "dev0Org0App1" connects to deliver function on orderer "orderer0"
Step 23
And user "dev0Org0" sends deliver a seek request on orderer "orderer0" with properties
ChainId
Start
End
com.acme.blockchain.jdoe.Channel1
0
0
Step 24
Then user "dev0Org0" should get a delivery "genesisBlockForMyNewChannel" from "orderer0" of "1" blocks with "1" messages within "1" seconds
User dev0Org0 setting tag key genesisBlockForMyNewChannel to value
Protobuf message in binary form
header {
data_hash: "y7*\252<\347\257y]15VH\320[\355t\277\207~3\204g\n\263\224\003\261A\305u\260"
}
data {
data: "\n\334<\n\242\006\n-\010\001\032\006\010\306\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030{\346H\310\273\247L\022\326\005\272\202\r-\256Xj\211a\220\225#\242j\022\2646\n\205 \010\001\022\200 \022\330\017\n\007Orderer\022\314\017\022\251\r\n\013ordererOrg0\022\231\r\032\363\013\n\003MSP\022\353\013\022\340\013\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\032\006Admins\"4\n\007Writers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"4\n\007Readers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"5\n\006Admins\022+\022!\010\001\022\035\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001\032\006Admins\032\037\n\023ChannelRestrictions\022\010\032\006Admins\032\036\n\014BatchTimeout\022\016\022\004\n\0021s\032\006Admins\032!\n\rConsensusType\022\020\022\006\n\004solo\032\006Admins\032\"\n\tBatchSize\022\025\022\013\010\n\020\200\302\327/\030\200\200 \032\006Admins\"*\n\017BlockValidation\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\022\363\r\n\013Application\022\343\r\010\001\022\212\r\n\010peerOrg0\022\375\014\032\340\013\n\003MSP\022\330\013\022\315\013\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\032\006Admins\"1\n\007Readers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"2\n\006Admins\022(\022\036\010\001\022\032\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001\032\006Admins\"1\n\007Writers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032K\n\020OrdererAddresses\0227\022-\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050\032\006Admins\032&\n\020HashingAlgorithm\022\022\022\010\n\006SHA256\032\006Admins\032-\n\031BlockDataHashingStructure\022\020\022\006\010\377\377\377\377\017\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\022\251\026\n\336\025\n\267\006\n/\010\002\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030x\304\242\246\224\317w\014\0279*\355\"\246\2370\220\310\233\305k`\024l\022\241\017\n\372\001\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\2771\351\243\370\256\004\261\324\262~\234\3149\232\346\240\245\016\365\362i\031\234\022G0E\002!\000\360\250\262\200~q\3175C3\233\201\342q\333i\363\324\324dwUD\325\243\017\021\273\205\007Q\"\002 ?\375\301\005\2455\362\215[\231\007\323Y\300\265{C\254\313\200\265\023_\361\365M\272\357\232R2$\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB\ntiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+\nk95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy\nahPwqTJzh29i7wDevYXycho=\n-----END CERTIFICATE-----\n\022\030\357v_\007i\014\375\373\342\013\031\232\217\030;\340)^\203s\225\026;\326\022G0E\002!\000\230sr\217\312\354\350\233\2766\200\035\273\371\2543\\\212r\302-h\316\353\224\206\264c\036\223\315\002\002 N\347=\352O\302\225iX\311\364\200\220\311F}]\201\203\311\246\212*\260R[fZ\312\335\315\'\022F0D\002 ?M\324\270Fr\201\322\000\024S\002\360<cb\351boH4Z\205\216\222\225\025o\304\326\301\003\002 1{(!\376\nsrO\010E\311\275\367\361\353\342[od_\367\217:\036\207L\332c\r\t4\022F0D\002 g\374\032Q\236{\362:\204\207\230\330\205\030b\200^J]R\026\2500\300\314\244IT\321is\344\002 E\306\271s\273\2613y\021\027\222d\217\303M\320\t\374(\323\323MS\263\225\303\300\347\201\013\021\006"
}
metadata {
metadata: ""
metadata: ""
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-genesisblockformynewchannel-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)
Step 25
Given user "dev0Org0" gives "genesisBlockForMyNewChannel" to user "dev0Org1"
User dev0Org1 setting tag key genesisBlockForMyNewChannel to value
Protobuf message in binary form
header {
data_hash: "y7*\252<\347\257y]15VH\320[\355t\277\207~3\204g\n\263\224\003\261A\305u\260"
}
data {
data: "\n\334<\n\242\006\n-\010\001\032\006\010\306\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030{\346H\310\273\247L\022\326\005\272\202\r-\256Xj\211a\220\225#\242j\022\2646\n\205 \010\001\022\200 \022\330\017\n\007Orderer\022\314\017\022\251\r\n\013ordererOrg0\022\231\r\032\363\013\n\003MSP\022\353\013\022\340\013\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\032\006Admins\"4\n\007Writers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"4\n\007Readers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"5\n\006Admins\022+\022!\010\001\022\035\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001\032\006Admins\032\037\n\023ChannelRestrictions\022\010\032\006Admins\032\036\n\014BatchTimeout\022\016\022\004\n\0021s\032\006Admins\032!\n\rConsensusType\022\020\022\006\n\004solo\032\006Admins\032\"\n\tBatchSize\022\025\022\013\010\n\020\200\302\327/\030\200\200 \032\006Admins\"*\n\017BlockValidation\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\022\363\r\n\013Application\022\343\r\010\001\022\212\r\n\010peerOrg0\022\375\014\032\340\013\n\003MSP\022\330\013\022\315\013\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\032\006Admins\"1\n\007Readers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"2\n\006Admins\022(\022\036\010\001\022\032\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001\032\006Admins\"1\n\007Writers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032K\n\020OrdererAddresses\0227\022-\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050\032\006Admins\032&\n\020HashingAlgorithm\022\022\022\010\n\006SHA256\032\006Admins\032-\n\031BlockDataHashingStructure\022\020\022\006\010\377\377\377\377\017\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\022\251\026\n\336\025\n\267\006\n/\010\002\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030x\304\242\246\224\317w\014\0279*\355\"\246\2370\220\310\233\305k`\024l\022\241\017\n\372\001\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\2771\351\243\370\256\004\261\324\262~\234\3149\232\346\240\245\016\365\362i\031\234\022G0E\002!\000\360\250\262\200~q\3175C3\233\201\342q\333i\363\324\324dwUD\325\243\017\021\273\205\007Q\"\002 ?\375\301\005\2455\362\215[\231\007\323Y\300\265{C\254\313\200\265\023_\361\365M\272\357\232R2$\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB\ntiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+\nk95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy\nahPwqTJzh29i7wDevYXycho=\n-----END CERTIFICATE-----\n\022\030\357v_\007i\014\375\373\342\013\031\232\217\030;\340)^\203s\225\026;\326\022G0E\002!\000\230sr\217\312\354\350\233\2766\200\035\273\371\2543\\\212r\302-h\316\353\224\206\264c\036\223\315\002\002 N\347=\352O\302\225iX\311\364\200\220\311F}]\201\203\311\246\212*\260R[fZ\312\335\315\'\022F0D\002 ?M\324\270Fr\201\322\000\024S\002\360<cb\351boH4Z\205\216\222\225\025o\304\326\301\003\002 1{(!\376\nsrO\010E\311\275\367\361\353\342[od_\367\217:\036\207L\332c\r\t4\022F0D\002 g\374\032Q\236{\362:\204\207\230\330\205\030b\200^J]R\026\2500\300\314\244IT\321is\344\002 E\306\271s\273\2613y\021\027\222d\217\303M\320\t\374(\323\323MS\263\225\303\300\347\201\013\021\006"
}
metadata {
metadata: ""
metadata: ""
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org1-genesisblockformynewchannel-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)
Step 26
Given user "dev0Org0" gives "genesisBlockForMyNewChannel" to user "peer0Admin"
User peer0Admin setting tag key genesisBlockForMyNewChannel to value
Protobuf message in binary form
header {
data_hash: "y7*\252<\347\257y]15VH\320[\355t\277\207~3\204g\n\263\224\003\261A\305u\260"
}
data {
data: "\n\334<\n\242\006\n-\010\001\032\006\010\306\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030{\346H\310\273\247L\022\326\005\272\202\r-\256Xj\211a\220\225#\242j\022\2646\n\205 \010\001\022\200 \022\330\017\n\007Orderer\022\314\017\022\251\r\n\013ordererOrg0\022\231\r\032\363\013\n\003MSP\022\353\013\022\340\013\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\032\006Admins\"4\n\007Writers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"4\n\007Readers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"5\n\006Admins\022+\022!\010\001\022\035\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001\032\006Admins\032\037\n\023ChannelRestrictions\022\010\032\006Admins\032\036\n\014BatchTimeout\022\016\022\004\n\0021s\032\006Admins\032!\n\rConsensusType\022\020\022\006\n\004solo\032\006Admins\032\"\n\tBatchSize\022\025\022\013\010\n\020\200\302\327/\030\200\200 \032\006Admins\"*\n\017BlockValidation\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\022\363\r\n\013Application\022\343\r\010\001\022\212\r\n\010peerOrg0\022\375\014\032\340\013\n\003MSP\022\330\013\022\315\013\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\032\006Admins\"1\n\007Readers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"2\n\006Admins\022(\022\036\010\001\022\032\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001\032\006Admins\"1\n\007Writers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032K\n\020OrdererAddresses\0227\022-\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050\032\006Admins\032&\n\020HashingAlgorithm\022\022\022\010\n\006SHA256\032\006Admins\032-\n\031BlockDataHashingStructure\022\020\022\006\010\377\377\377\377\017\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\022\251\026\n\336\025\n\267\006\n/\010\002\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030x\304\242\246\224\317w\014\0279*\355\"\246\2370\220\310\233\305k`\024l\022\241\017\n\372\001\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\2771\351\243\370\256\004\261\324\262~\234\3149\232\346\240\245\016\365\362i\031\234\022G0E\002!\000\360\250\262\200~q\3175C3\233\201\342q\333i\363\324\324dwUD\325\243\017\021\273\205\007Q\"\002 ?\375\301\005\2455\362\215[\231\007\323Y\300\265{C\254\313\200\265\023_\361\365M\272\357\232R2$\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB\ntiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+\nk95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy\nahPwqTJzh29i7wDevYXycho=\n-----END CERTIFICATE-----\n\022\030\357v_\007i\014\375\373\342\013\031\232\217\030;\340)^\203s\225\026;\326\022G0E\002!\000\230sr\217\312\354\350\233\2766\200\035\273\371\2543\\\212r\302-h\316\353\224\206\264c\036\223\315\002\002 N\347=\352O\302\225iX\311\364\200\220\311F}]\201\203\311\246\212*\260R[fZ\312\335\315\'\022F0D\002 ?M\324\270Fr\201\322\000\024S\002\360<cb\351boH4Z\205\216\222\225\025o\304\326\301\003\002 1{(!\376\nsrO\010E\311\275\367\361\353\342[od_\367\217:\036\207L\332c\r\t4\022F0D\002 g\374\032Q\236{\362:\204\207\230\330\205\030b\200^J]R\026\2500\300\314\244IT\321is\344\002 E\306\271s\273\2613y\021\027\222d\217\303M\320\t\374(\323\323MS\263\225\303\300\347\201\013\021\006"
}
metadata {
metadata: ""
metadata: ""
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer0admin-genesisblockformynewchannel-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)
Step 27
Given user "dev0Org0" gives "genesisBlockForMyNewChannel" to user "peer1Admin"
User peer1Admin setting tag key genesisBlockForMyNewChannel to value
Protobuf message in binary form
header {
data_hash: "y7*\252<\347\257y]15VH\320[\355t\277\207~3\204g\n\263\224\003\261A\305u\260"
}
data {
data: "\n\334<\n\242\006\n-\010\001\032\006\010\306\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030{\346H\310\273\247L\022\326\005\272\202\r-\256Xj\211a\220\225#\242j\022\2646\n\205 \010\001\022\200 \022\330\017\n\007Orderer\022\314\017\022\251\r\n\013ordererOrg0\022\231\r\032\363\013\n\003MSP\022\353\013\022\340\013\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\032\006Admins\"4\n\007Writers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"4\n\007Readers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"5\n\006Admins\022+\022!\010\001\022\035\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001\032\006Admins\032\037\n\023ChannelRestrictions\022\010\032\006Admins\032\036\n\014BatchTimeout\022\016\022\004\n\0021s\032\006Admins\032!\n\rConsensusType\022\020\022\006\n\004solo\032\006Admins\032\"\n\tBatchSize\022\025\022\013\010\n\020\200\302\327/\030\200\200 \032\006Admins\"*\n\017BlockValidation\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\022\363\r\n\013Application\022\343\r\010\001\022\212\r\n\010peerOrg0\022\375\014\032\340\013\n\003MSP\022\330\013\022\315\013\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\032\006Admins\"1\n\007Readers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"2\n\006Admins\022(\022\036\010\001\022\032\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001\032\006Admins\"1\n\007Writers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032K\n\020OrdererAddresses\0227\022-\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050\032\006Admins\032&\n\020HashingAlgorithm\022\022\022\010\n\006SHA256\032\006Admins\032-\n\031BlockDataHashingStructure\022\020\022\006\010\377\377\377\377\017\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\022\251\026\n\336\025\n\267\006\n/\010\002\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030x\304\242\246\224\317w\014\0279*\355\"\246\2370\220\310\233\305k`\024l\022\241\017\n\372\001\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\2771\351\243\370\256\004\261\324\262~\234\3149\232\346\240\245\016\365\362i\031\234\022G0E\002!\000\360\250\262\200~q\3175C3\233\201\342q\333i\363\324\324dwUD\325\243\017\021\273\205\007Q\"\002 ?\375\301\005\2455\362\215[\231\007\323Y\300\265{C\254\313\200\265\023_\361\365M\272\357\232R2$\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB\ntiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+\nk95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy\nahPwqTJzh29i7wDevYXycho=\n-----END CERTIFICATE-----\n\022\030\357v_\007i\014\375\373\342\013\031\232\217\030;\340)^\203s\225\026;\326\022G0E\002!\000\230sr\217\312\354\350\233\2766\200\035\273\371\2543\\\212r\302-h\316\353\224\206\264c\036\223\315\002\002 N\347=\352O\302\225iX\311\364\200\220\311F}]\201\203\311\246\212*\260R[fZ\312\335\315\'\022F0D\002 ?M\324\270Fr\201\322\000\024S\002\360<cb\351boH4Z\205\216\222\225\025o\304\326\301\003\002 1{(!\376\nsrO\010E\311\275\367\361\353\342[od_\367\217:\036\207L\332c\r\t4\022F0D\002 g\374\032Q\236{\362:\204\207\230\330\205\030b\200^J]R\026\2500\300\314\244IT\321is\344\002 E\306\271s\273\2613y\021\027\222d\217\303M\320\t\374(\323\323MS\263\225\303\300\347\201\013\021\006"
}
metadata {
metadata: ""
metadata: ""
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer1admin-genesisblockformynewchannel-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)
Step 28
When user "peer0Admin" using cert alias "peer-admin-cert" requests to join channel using genesis block "genesisBlockForMyNewChannel" on peers with result "joinChannelResult"
User peer0Admin setting tag key joinChannelResult to value
Protobuf message in binary form
response {
status: 200
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer0admin-joinchannelresult-peer0.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 29
Then user "peer0Admin" expects result code for "joinChannelResult" of "200" from peers
Step 30
When user "peer1Admin" using cert alias "peer-admin-cert" requests to join channel using genesis block "genesisBlockForMyNewChannel" on peers with result "joinChannelResult"
User peer1Admin setting tag key joinChannelResult to value
Protobuf message in binary form
response {
status: 200
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer1admin-joinchannelresult-peer1.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 31
Then user "peer1Admin" expects result code for "joinChannelResult" of "200" from peers
Step 32
Given user "dev0Org1" gives "genesisBlockForMyNewChannel" to user "peer2Admin"
User peer2Admin setting tag key genesisBlockForMyNewChannel to value
Protobuf message in binary form
header {
data_hash: "y7*\252<\347\257y]15VH\320[\355t\277\207~3\204g\n\263\224\003\261A\305u\260"
}
data {
data: "\n\334<\n\242\006\n-\010\001\032\006\010\306\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030{\346H\310\273\247L\022\326\005\272\202\r-\256Xj\211a\220\225#\242j\022\2646\n\205 \010\001\022\200 \022\330\017\n\007Orderer\022\314\017\022\251\r\n\013ordererOrg0\022\231\r\032\363\013\n\003MSP\022\353\013\022\340\013\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\032\006Admins\"4\n\007Writers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"4\n\007Readers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"5\n\006Admins\022+\022!\010\001\022\035\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001\032\006Admins\032\037\n\023ChannelRestrictions\022\010\032\006Admins\032\036\n\014BatchTimeout\022\016\022\004\n\0021s\032\006Admins\032!\n\rConsensusType\022\020\022\006\n\004solo\032\006Admins\032\"\n\tBatchSize\022\025\022\013\010\n\020\200\302\327/\030\200\200 \032\006Admins\"*\n\017BlockValidation\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\022\363\r\n\013Application\022\343\r\010\001\022\212\r\n\010peerOrg0\022\375\014\032\340\013\n\003MSP\022\330\013\022\315\013\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\032\006Admins\"1\n\007Readers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"2\n\006Admins\022(\022\036\010\001\022\032\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001\032\006Admins\"1\n\007Writers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032K\n\020OrdererAddresses\0227\022-\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050\032\006Admins\032&\n\020HashingAlgorithm\022\022\022\010\n\006SHA256\032\006Admins\032-\n\031BlockDataHashingStructure\022\020\022\006\010\377\377\377\377\017\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\022\251\026\n\336\025\n\267\006\n/\010\002\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030x\304\242\246\224\317w\014\0279*\355\"\246\2370\220\310\233\305k`\024l\022\241\017\n\372\001\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\2771\351\243\370\256\004\261\324\262~\234\3149\232\346\240\245\016\365\362i\031\234\022G0E\002!\000\360\250\262\200~q\3175C3\233\201\342q\333i\363\324\324dwUD\325\243\017\021\273\205\007Q\"\002 ?\375\301\005\2455\362\215[\231\007\323Y\300\265{C\254\313\200\265\023_\361\365M\272\357\232R2$\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB\ntiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+\nk95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy\nahPwqTJzh29i7wDevYXycho=\n-----END CERTIFICATE-----\n\022\030\357v_\007i\014\375\373\342\013\031\232\217\030;\340)^\203s\225\026;\326\022G0E\002!\000\230sr\217\312\354\350\233\2766\200\035\273\371\2543\\\212r\302-h\316\353\224\206\264c\036\223\315\002\002 N\347=\352O\302\225iX\311\364\200\220\311F}]\201\203\311\246\212*\260R[fZ\312\335\315\'\022F0D\002 ?M\324\270Fr\201\322\000\024S\002\360<cb\351boH4Z\205\216\222\225\025o\304\326\301\003\002 1{(!\376\nsrO\010E\311\275\367\361\353\342[od_\367\217:\036\207L\332c\r\t4\022F0D\002 g\374\032Q\236{\362:\204\207\230\330\205\030b\200^J]R\026\2500\300\314\244IT\321is\344\002 E\306\271s\273\2613y\021\027\222d\217\303M\320\t\374(\323\323MS\263\225\303\300\347\201\013\021\006"
}
metadata {
metadata: ""
metadata: ""
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer2admin-genesisblockformynewchannel-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)
Step 33
Given user "dev0Org1" gives "genesisBlockForMyNewChannel" to user "peer3Admin"
User peer3Admin setting tag key genesisBlockForMyNewChannel to value
Protobuf message in binary form
header {
data_hash: "y7*\252<\347\257y]15VH\320[\355t\277\207~3\204g\n\263\224\003\261A\305u\260"
}
data {
data: "\n\334<\n\242\006\n-\010\001\032\006\010\306\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030{\346H\310\273\247L\022\326\005\272\202\r-\256Xj\211a\220\225#\242j\022\2646\n\205 \010\001\022\200 \022\330\017\n\007Orderer\022\314\017\022\251\r\n\013ordererOrg0\022\231\r\032\363\013\n\003MSP\022\353\013\022\340\013\022\335\013\n\013ordererOrg0\022\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\"\345\005-----BEGIN CERTIFICATE-----\nMIIB9TCCAZygAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBYMRQwEgYDVQQDDAtvcmRlcmVyT3JnMDELMAkGA1UEBhMCVVMxDDAK\nBgNVBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGlu\nYTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLawQik+bOgaBNS9M74sjdw4Imqt\ng64ZdUP83144uaSHQPuUq8OYMMK/apGUSWtrorOJ2Gj9PMV+0Qs8yzeOAdWjVjBU\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRTjX3QJOAHbnREWkYokhXR\npzsGMB8GA1UdIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMC\nA0cAMEQCIBdqKO3TZ2KLWKcDErGiOc7TWIVChFfzO4Bn9AuunU6QAiAvweATe3z1\n4CISjkUeaw8SdMSKV5GgRZCjgwzF8lLvNA==\n-----END CERTIFICATE-----\n\032\006Admins\"4\n\007Writers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"4\n\007Readers\022)\022\037\010\001\022\033\022\010\022\006\010\001\022\002\010\000\032\017\022\r\n\013ordererOrg0\032\006Admins\"5\n\006Admins\022+\022!\010\001\022\035\022\010\022\006\010\001\022\002\010\000\032\021\022\017\n\013ordererOrg0\020\001\032\006Admins\032\037\n\023ChannelRestrictions\022\010\032\006Admins\032\036\n\014BatchTimeout\022\016\022\004\n\0021s\032\006Admins\032!\n\rConsensusType\022\020\022\006\n\004solo\032\006Admins\032\"\n\tBatchSize\022\025\022\013\010\n\020\200\302\327/\030\200\200 \032\006Admins\"*\n\017BlockValidation\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\022\363\r\n\013Application\022\343\r\010\001\022\212\r\n\010peerOrg0\022\375\014\032\340\013\n\003MSP\022\330\013\022\315\013\022\312\013\n\010peerOrg0\022\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\"\335\005-----BEGIN CERTIFICATE-----\nMIIB8DCCAZagAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBVMREwDwYDVQQDDAhwZWVyT3JnMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcM\nA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABHoyrgAAOk5OlEGB1GCLY4eIZuhVtAy55Mea\nmoa+LzZGyA5kKfI9n5rw6pbum0ZcoWvv26bB6MJsE53eRJexOu6jVjBUMBIGA1Ud\nEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjjW1UqCPlfPHykFupBF0DJjgAjMB8G\nA1UdIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUC\nIQDNERoPNQ0pCa+mnU/q4ef6o/hgMZeOm6cwDVreH/79gwIgf9Xvl2FCIdUFdS5G\nv4D1ZnEJ9emNk6FETGC8NKnnUuc=\n-----END CERTIFICATE-----\n\032\006Admins\"1\n\007Readers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"2\n\006Admins\022(\022\036\010\001\022\032\022\010\022\006\010\001\022\002\010\000\032\016\022\014\n\010peerOrg0\020\001\032\006Admins\"1\n\007Writers\022&\022\034\010\001\022\030\022\010\022\006\010\001\022\002\010\000\032\014\022\n\n\010peerOrg0\032\006Admins\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032K\n\020OrdererAddresses\0227\022-\n\rorderer0:7050\n\rorderer1:7050\n\rorderer2:7050\032\006Admins\032&\n\020HashingAlgorithm\022\022\022\010\n\006SHA256\032\006Admins\032-\n\031BlockDataHashingStructure\022\020\022\006\010\377\377\377\377\017\032\006Admins\"\"\n\007Readers\022\027\022\r\010\003\022\t\n\007Readers\032\006Admins\"\"\n\006Admins\022\030\022\016\010\003\022\n\n\006Admins\020\002\032\006Admins\"\"\n\007Writers\022\027\022\r\010\003\022\t\n\007Writers\032\006Admins\022\251\026\n\336\025\n\267\006\n/\010\002\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030x\304\242\246\224\317w\014\0279*\355\"\246\2370\220\310\233\305k`\024l\022\241\017\n\372\001\n!com.acme.blockchain.jdoe.Channel1\022>\022\035\n\013Application\022\016\022\014\n\010peerOrg0\022\000\032\035\n\nConsortium\022\017\022\r\n\013consortium1\032\224\001\022s\n\013Application\022d\010\001\022\014\n\010peerOrg0\022\000\"\032\n\007Writers\022\017\022\r\010\003\022\t\n\007Writers\"\032\n\007Readers\022\017\022\r\010\003\022\t\n\007Readers\"\032\n\006Admins\022\020\022\016\010\003\022\n\n\006Admins\020\002\032\035\n\nConsortium\022\017\022\r\n\013consortium1\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\2771\351\243\370\256\004\261\324\262~\234\3149\232\346\240\245\016\365\362i\031\234\022G0E\002!\000\360\250\262\200~q\3175C3\233\201\342q\333i\363\324\324dwUD\325\243\017\021\273\205\007Q\"\002 ?\375\301\005\2455\362\215[\231\007\323Y\300\265{C\254\313\200\265\023_\361\365M\272\357\232R2$\022\317\006\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBamEscugFW9dJ0F1xC/by2vD0hixaRB\ntiL3xNWO5CGcKmkc73N7/6r632LJqb7jofX6uwE1Ib935mi2s+LixmWjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLb6oil7KHKd67G+mDqgzphpFet4MB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIFP+\nk95YP4GWpCqayw1w+xMvrUJLap09D0kRrUgvVIHYAiEAw9ae6L0cUx62eD0HBbNy\nahPwqTJzh29i7wDevYXycho=\n-----END CERTIFICATE-----\n\022\030\357v_\007i\014\375\373\342\013\031\232\217\030;\340)^\203s\225\026;\326\022G0E\002!\000\230sr\217\312\354\350\233\2766\200\035\273\371\2543\\\212r\302-h\316\353\224\206\264c\036\223\315\002\002 N\347=\352O\302\225iX\311\364\200\220\311F}]\201\203\311\246\212*\260R[fZ\312\335\315\'\022F0D\002 ?M\324\270Fr\201\322\000\024S\002\360<cb\351boH4Z\205\216\222\225\025o\304\326\301\003\002 1{(!\376\nsrO\010E\311\275\367\361\353\342[od_\367\217:\036\207L\332c\r\t4\022F0D\002 g\374\032Q\236{\362:\204\207\230\330\205\030b\200^J]R\026\2500\300\314\244IT\321is\344\002 E\306\271s\273\2613y\021\027\222d\217\303M\320\t\374(\323\323MS\263\225\303\300\347\201\013\021\006"
}
metadata {
metadata: ""
metadata: ""
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer3admin-genesisblockformynewchannel-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)
Step 34
When user "peer2Admin" using cert alias "peer-admin-cert" requests to join channel using genesis block "genesisBlockForMyNewChannel" on peers with result "joinChannelResult"
User peer2Admin setting tag key joinChannelResult to value
Protobuf message in binary form
response {
status: 200
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer2admin-joinchannelresult-peer2.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 35
Then user "peer2Admin" expects result code for "joinChannelResult" of "200" from peers
Step 36
When user "peer3Admin" using cert alias "peer-admin-cert" requests to join channel using genesis block "genesisBlockForMyNewChannel" on peers with result "joinChannelResult"
User peer3Admin setting tag key joinChannelResult to value
Protobuf message in binary form
response {
status: 200
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer3admin-joinchannelresult-peer3.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 37
Then user "peer3Admin" expects result code for "joinChannelResult" of "200" from peers
Step 38
When user "peer0Admin" creates a chaincode spec "cc_spec" with name "example02" of type "GOLANG" for chaincode "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" with args
funcName
arg1
arg2
arg3
arg4
init
a
100
b
200
User peer0Admin setting tag key cc_spec to value
Protobuf message in binary form
type: GOLANG
chaincode_id {
path: "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
name: "example02"
version: "test"
}
input {
args: "init"
args: "a"
args: "100"
args: "b"
args: "200"
}
from peer.chaincode_pb2 import ChaincodeSpec
chaincodeSpec = ChaincodeSpec()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer0admin-cc-spec.protobuf') as f:
data = f.read()
chaincodeSpec.ParseFromString(data)
Step 39
And user "peer0Admin" using cert alias "peer-admin-cert" creates a install proposal "installProposal1" for channel "com.acme.blockchain.jdoe.Channel1" using chaincode spec "cc_spec"
User peer0Admin setting tag key installProposal1 to value
Protobuf message in binary form
Not showing message, exceeded max lenth of 10240 byes.
from peer.proposal_pb2 import SignedProposal
signedProposal = SignedProposal()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer0admin-installproposal1.protobuf') as f:
data = f.read()
signedProposal.ParseFromString(data)
Step 40
And user "peer0Admin" using cert alias "peer-admin-cert" sends proposal "installProposal1" to endorsers with timeout of "90" seconds with proposal responses "installProposalResponses"
User peer0Admin setting tag key installProposalResponses to value
Protobuf message in binary form
version: 1
response {
status: 200
message: "OK"
payload: "OK"
}
payload: "\n d\317\032%/V\307\205P(\025\273\017\3579\236\225#He\301\017\351K\315\n\te\255f\302\323\022)\032\007\010\310\001\032\002OK\"\036\022\004lscc\032\0261.0.0-snapshot-ca3a1a2"
endorsement {
endorser: "\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB6DCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBSMQ4wDAYDVQQDDAVwZWVyMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABJy9UK+oXuGSbpbzgZU64aVp7LsMjk75CscMjB5I\naD2dUl2WmcLGeAtBqbHyMWGjc2JRseCKnutbgPwnkm9UCBajUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFPtBGBSCzm6QkrZH6e/mCSa2M9PrMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQDvOHWvdVLz\nOOOO6zVzlTlnpx7l3tnFYENIX3bPx0mMWwIhANWacbcNaErmH+AO7iSpTEG0+yOv\nricFnKdPqNrYWOOK\n-----END -----\n"
signature: "0D\002 \014\231{\246\025L\374\243a\332\374Lc1_\346\316v\234\234\202M\314t\271)gj]\225n\340\002 d\216\035j\235hF\032\323\243\271\277\366\307\231\2542zy\353\021\242\370\260\300*\363(\351\265\211\332"
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer0admin-installproposalresponses-peer0.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 41
Then user "peer0Admin" expects proposal responses "installProposalResponses" with status "200" from endorsers
Step 42
Given user "peer0Admin" gives "cc_spec" to user "peer2Admin"
User peer2Admin setting tag key cc_spec to value
Protobuf message in binary form
type: GOLANG
chaincode_id {
path: "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
name: "example02"
version: "test"
}
input {
args: "init"
args: "a"
args: "100"
args: "b"
args: "200"
}
from peer.chaincode_pb2 import ChaincodeSpec
chaincodeSpec = ChaincodeSpec()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer2admin-cc-spec.protobuf') as f:
data = f.read()
chaincodeSpec.ParseFromString(data)
Step 43
When user "peer2Admin" using cert alias "peer-admin-cert" creates a install proposal "installProposal1" for channel "com.acme.blockchain.jdoe.Channel1" using chaincode spec "cc_spec"
User peer2Admin setting tag key installProposal1 to value
Protobuf message in binary form
Not showing message, exceeded max lenth of 10240 byes.
from peer.proposal_pb2 import SignedProposal
signedProposal = SignedProposal()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer2admin-installproposal1.protobuf') as f:
data = f.read()
signedProposal.ParseFromString(data)
Step 44
And user "peer2Admin" using cert alias "peer-admin-cert" sends proposal "installProposal1" to endorsers with timeout of "90" seconds with proposal responses "installProposalResponses"
User peer2Admin setting tag key installProposalResponses to value
Protobuf message in binary form
version: 1
response {
status: 200
message: "OK"
payload: "OK"
}
payload: "\n \2228e10)\230\373E\322\220\272fy\336\317a\205\200\033\322RW4\235\251tl\261i`|\022)\032\007\010\310\001\032\002OK\"\036\022\004lscc\032\0261.0.0-snapshot-ca3a1a2"
endorsement {
endorser: "\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0\nOTM1WjBSMQ4wDAYDVQQDDAVwZWVyMjELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABD0T8OXva7RUQQ5Y66BJOXhWR+fRJgI+uJcemZu8\nLxejvMPCTIe/vqOJGCgAFYBsEEu/UARICOFk688ksHElKmijUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFKin2+gnq87xKAR+ipKYcsJS3rTUMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIBk2lroR3Q8b\nxxLGeCjwY7TIPO5rONr4KGG6mOiLHIoZAiEAy9rZZ2i5oLtkxHaScy18I+9paj2u\nMFB4/f++r6yDDi8=\n-----END -----\n"
signature: "0D\002 t&Eh>\207\231\327F\303$\340<\301PE\001G&\007d?t:\367[k\374\367\3222\344\002 \016\025OW\205\270J\351\237\261U_K\320=\326j<\335{=5\375\020\\D\202n$h\312\255"
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/peer2admin-installproposalresponses-peer2.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 45
Then user "peer2Admin" expects proposal responses "installProposalResponses" with status "200" from endorsers
Step 46
Given user "peer0Admin" gives "cc_spec" to user "dev0Org0"
User dev0Org0 setting tag key cc_spec to value
Protobuf message in binary form
type: GOLANG
chaincode_id {
path: "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
name: "example02"
version: "test"
}
input {
args: "init"
args: "a"
args: "100"
args: "b"
args: "200"
}
from peer.chaincode_pb2 import ChaincodeSpec
chaincodeSpec = ChaincodeSpec()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-cc-spec.protobuf') as f:
data = f.read()
chaincodeSpec.ParseFromString(data)
Step 47
When user "dev0Org0" using cert alias "dev0Org0App1" creates a instantiate proposal "instantiateProposal1" for channel "com.acme.blockchain.jdoe.Channel1" using chaincode spec "cc_spec"
User dev0Org0 setting tag key instantiateProposal1 to value
Protobuf message in binary form
proposal_bytes: "\n\212\007\n\201\001\010\003\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1*@98af23c34c27a23ccd8a5de5001ffe44a41dd9dd98ae22d3db00a7501f61dfdd:\016\022\014\022\004lscc\032\004test\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030M=\341\006\375J{\346\003\344\001~\023\243\004\347R\204\354\347 \332K\325\022\276\001\n\273\001\n\270\001\010\001\022\014\022\004lscc\032\004test\032\245\001\n\006deploy\n!com.acme.blockchain.jdoe.Channel1\nx\nv\010\001\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\032\026\n\004init\n\001a\n\003100\n\001b\n\003200"
signature: "0D\002 {=\035v;.wB\376\211\\dk\213f\304eE\230<\310X\366p\\@Z\255\247\315`\305\002 U\003=(\2428Y\320\341\222\235\006`OF\355s\303PiBOJ2W\241BUb\225\361p"
from peer.proposal_pb2 import SignedProposal
signedProposal = SignedProposal()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-instantiateproposal1.protobuf') as f:
data = f.read()
signedProposal.ParseFromString(data)
Step 48
And user "dev0Org0" using cert alias "dev0Org0App1" sends proposal "instantiateProposal1" to endorsers with timeout of "90" seconds with proposal responses "instantiateProposalResponses"
User dev0Org0 setting tag key instantiateProposalResponses to value
Protobuf message in binary form
Not showing message, exceeded max lenth of 10240 byes.
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-instantiateproposalresponses-peer0.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Protobuf message in binary form
Not showing message, exceeded max lenth of 10240 byes.
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-instantiateproposalresponses-peer2.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 49
Then user "dev0Org0" expects proposal responses "instantiateProposalResponses" with status "200" from endorsers
Step 50
And user "dev0Org0" expects proposal responses "instantiateProposalResponses" each have the same value from endorsers
Step 51
When the user "dev0Org0" creates transaction "instantiateTx1" from proposal "instantiateProposal1" and proposal responses "instantiateProposalResponses" for channel "com.acme.blockchain.jdoe.Channel1"
User dev0Org0 setting tag key instantiateTx1 to value
Protobuf message in binary form
Not showing message, exceeded max lenth of 10240 byes.
from common.common_pb2 import Envelope
envelope = Envelope()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-instantiatetx1.protobuf') as f:
data = f.read()
envelope.ParseFromString(data)
Step 52
And the user "dev0Org0" broadcasts transaction "instantiateTx1" to orderer "orderer0" on channel "com.acme.blockchain.jdoe.Channel1"
Step 53
And I wait "2" seconds
Step 54
And user "dev0Org0" sends deliver a seek request on orderer "orderer0" with properties
ChainId
Start
End
com.acme.blockchain.jdoe.Channel1
1
1
Step 55
Then user "dev0Org0" should get a delivery "deliveredInstantiateTx1Block" from "orderer0" of "1" blocks with "1" messages within "1" seconds
User dev0Org0 setting tag key deliveredInstantiateTx1Block to value
Protobuf message in binary form
Not showing message, exceeded max lenth of 10240 byes.
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-deliveredinstantiatetx1block-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)
Step 56
And I wait "1" seconds
Step 57
When user "dev0Org0" creates a chaincode invocation spec "querySpec1" using spec "cc_spec" with input
User dev0Org0 setting tag key querySpec1 to value
Protobuf message in binary form
type: GOLANG
chaincode_id {
path: "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
name: "example02"
version: "test"
}
input {
args: "query"
args: "a"
}
from peer.chaincode_pb2 import ChaincodeSpec
chaincodeSpec = ChaincodeSpec()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-queryspec1.protobuf') as f:
data = f.read()
chaincodeSpec.ParseFromString(data)
Step 58
And user "dev0Org0" using cert alias "dev0Org0App1" creates a proposal "queryProposal1" for channel "com.acme.blockchain.jdoe.Channel1" using chaincode spec "querySpec1"
User dev0Org0 setting tag key queryProposal1 to value
Protobuf message in binary form
proposal_bytes: "\n\330\007\n\317\001\010\003\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1*@17d57b8b07264d9e9c74023c2621fbe045bd112bc00520829097f3ab8893b76b:\\\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030\325\357x\017Z\023\237\360\277\035\263\345\t\362\376{\013\305\254\240\366\203\241\014\022n\nl\nj\010\001\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\032\n\n\005query\n\001a"
signature: "0D\002 \006\270G\266\027`\0259\353\312\252\'\211\256\320\264)\027\264(\260\021;\311:\300zq\203^\323\247\002 t`\037\276\2669)\245&\004s\346\243p\364\377\005\303L\265Y\360\213&\251\025\254\300\024\226\376\347"
from peer.proposal_pb2 import SignedProposal
signedProposal = SignedProposal()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-queryproposal1.protobuf') as f:
data = f.read()
signedProposal.ParseFromString(data)
Step 59
And user "dev0Org0" using cert alias "dev0Org0App1" sends proposal "queryProposal1" to endorsers with timeout of "30" seconds with proposal responses "queryProposal1Responses"
User dev0Org0 setting tag key queryProposal1Responses to value
Protobuf message in binary form
version: 1
response {
status: 200
message: "OK"
payload: "100"
}
payload: "\n \310^\376\177\304\025\231\2079\343\356i\206\005]\000:\346/\244\'\304\327\222\262Q#\332\212\317\tK\022\233\001\n3\022\026\n\texample02\022\t\n\007\n\001a\022\002\010\001\022\031\n\004lscc\022\021\n\017\n\texample02\022\002\010\001\032\010\010\310\001\032\003100\"Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test"
endorsement {
endorser: "\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB6DCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBSMQ4wDAYDVQQDDAVwZWVyMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABJy9UK+oXuGSbpbzgZU64aVp7LsMjk75CscMjB5I\naD2dUl2WmcLGeAtBqbHyMWGjc2JRseCKnutbgPwnkm9UCBajUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFPtBGBSCzm6QkrZH6e/mCSa2M9PrMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQDvOHWvdVLz\nOOOO6zVzlTlnpx7l3tnFYENIX3bPx0mMWwIhANWacbcNaErmH+AO7iSpTEG0+yOv\nricFnKdPqNrYWOOK\n-----END -----\n"
signature: "0E\002!\000\375\265x-\303^5\337RQ\307\301Y\014\372g\370\004J\304\002;\327\007v\031(T|\372Z\270\002 \026\213\014`.\263\246\341\226X\017\234AG\0200g\375\314OxZd\010\265&\201>\355\'\031\177"
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-queryproposal1responses-peer0.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Protobuf message in binary form
version: 1
response {
status: 200
message: "OK"
payload: "100"
}
payload: "\n \310^\376\177\304\025\231\2079\343\356i\206\005]\000:\346/\244\'\304\327\222\262Q#\332\212\317\tK\022\233\001\n3\022\026\n\texample02\022\t\n\007\n\001a\022\002\010\001\022\031\n\004lscc\022\021\n\017\n\texample02\022\002\010\001\032\010\010\310\001\032\003100\"Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test"
endorsement {
endorser: "\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0\nOTM1WjBSMQ4wDAYDVQQDDAVwZWVyMjELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABD0T8OXva7RUQQ5Y66BJOXhWR+fRJgI+uJcemZu8\nLxejvMPCTIe/vqOJGCgAFYBsEEu/UARICOFk688ksHElKmijUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFKin2+gnq87xKAR+ipKYcsJS3rTUMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIBk2lroR3Q8b\nxxLGeCjwY7TIPO5rONr4KGG6mOiLHIoZAiEAy9rZZ2i5oLtkxHaScy18I+9paj2u\nMFB4/f++r6yDDi8=\n-----END -----\n"
signature: "0D\002 \032\332\032\3017\261\203qa\020Q\336\311k\211\2674\1772\265\016\321\210\203T ?\227\333P\347\256\002 %^\362\364@\302B\353\356m\301\030\326t$\257\205 \374\201\3739\016W\310_\240@R\247\317\032"
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-queryproposal1responses-peer2.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 60
Then user "dev0Org0" expects proposal responses "queryProposal1Responses" with status "200" from endorsers
Step 61
And user "dev0Org0" expects proposal responses "queryProposal1Responses" each have the same value from endorsers
Step 62
When user "dev0Org0" creates a chaincode invocation spec "invocationSpec1" using spec "cc_spec" with input
funcName
arg1
arg2
arg3
invoke
a
b
10
User dev0Org0 setting tag key invocationSpec1 to value
Protobuf message in binary form
type: GOLANG
chaincode_id {
path: "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
name: "example02"
version: "test"
}
input {
args: "invoke"
args: "a"
args: "b"
args: "10"
}
from peer.chaincode_pb2 import ChaincodeSpec
chaincodeSpec = ChaincodeSpec()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-invocationspec1.protobuf') as f:
data = f.read()
chaincodeSpec.ParseFromString(data)
Step 63
And user "dev0Org0" using cert alias "dev0Org0App1" creates a proposal "invokeProposal1" for channel "com.acme.blockchain.jdoe.Channel1" using chaincode spec "invocationSpec1"
User dev0Org0 setting tag key invokeProposal1 to value
Protobuf message in binary form
proposal_bytes: "\n\330\007\n\317\001\010\003\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1*@9de9a6ee29a75fab1e45dc2127f95a8d71afa56610ebacbbda0d9a354f369af5:\\\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030Y\325\"\260\375\037\366\305\251\300\"\337\301\303\370F\022\313\241\311\263\360\210\300\022v\nt\nr\010\001\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\032\022\n\006invoke\n\001a\n\001b\n\00210"
signature: "0E\002!\000\274\335\ni\025\027&\335%\371\220\257\226^\007\033\212\251~\202\324x\021#\300\245\023z\232\000O+\002 \026\343\000%P\030\242\354\323K\255Q\255\350\3462\315\277\223s\315\025a\214\216\2105\353/)z\272"
from peer.proposal_pb2 import SignedProposal
signedProposal = SignedProposal()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-invokeproposal1.protobuf') as f:
data = f.read()
signedProposal.ParseFromString(data)
Step 64
And user "dev0Org0" using cert alias "dev0Org0App1" sends proposal "invokeProposal1" to endorsers with timeout of "30" seconds with proposal responses "invokeProposal1Responses"
User dev0Org0 setting tag key invokeProposal1Responses to value
Protobuf message in binary form
version: 1
response {
status: 200
message: "OK"
}
payload: "\n g^0\244Kot@\254\030\247\214#\3526.`\262<\315`\314C\340\367\222\266\271G\313\320_\022\262\001\nO\0222\n\texample02\022%\n\007\n\001a\022\002\010\001\n\007\n\001b\022\002\010\001\032\007\n\001a\032\00290\032\010\n\001b\032\003210\022\031\n\004lscc\022\021\n\017\n\texample02\022\002\010\001\032\003\010\310\001\"Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test"
endorsement {
endorser: "\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB6DCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBSMQ4wDAYDVQQDDAVwZWVyMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABJy9UK+oXuGSbpbzgZU64aVp7LsMjk75CscMjB5I\naD2dUl2WmcLGeAtBqbHyMWGjc2JRseCKnutbgPwnkm9UCBajUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFPtBGBSCzm6QkrZH6e/mCSa2M9PrMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQDvOHWvdVLz\nOOOO6zVzlTlnpx7l3tnFYENIX3bPx0mMWwIhANWacbcNaErmH+AO7iSpTEG0+yOv\nricFnKdPqNrYWOOK\n-----END -----\n"
signature: "0D\002 q\027\270!b\177\330\341V\234\300\331}r\343\236L\r\334\214\201\256\t\3311\211<\031\345-\205\003\002 %\325\300\272D\342\375^\264\256\240\263\020k\010K\"\034RGE=\007\027\332_\037\277\3500\223\267"
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-invokeproposal1responses-peer0.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Protobuf message in binary form
version: 1
response {
status: 200
message: "OK"
}
payload: "\n g^0\244Kot@\254\030\247\214#\3526.`\262<\315`\314C\340\367\222\266\271G\313\320_\022\262\001\nO\0222\n\texample02\022%\n\007\n\001a\022\002\010\001\n\007\n\001b\022\002\010\001\032\007\n\001a\032\00290\032\010\n\001b\032\003210\022\031\n\004lscc\022\021\n\017\n\texample02\022\002\010\001\032\003\010\310\001\"Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test"
endorsement {
endorser: "\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0\nOTM1WjBSMQ4wDAYDVQQDDAVwZWVyMjELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABD0T8OXva7RUQQ5Y66BJOXhWR+fRJgI+uJcemZu8\nLxejvMPCTIe/vqOJGCgAFYBsEEu/UARICOFk688ksHElKmijUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFKin2+gnq87xKAR+ipKYcsJS3rTUMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIBk2lroR3Q8b\nxxLGeCjwY7TIPO5rONr4KGG6mOiLHIoZAiEAy9rZZ2i5oLtkxHaScy18I+9paj2u\nMFB4/f++r6yDDi8=\n-----END -----\n"
signature: "0D\002 [\217\204\376\'\2255s;[\360l\367lAN\350\243\023\261\322\006\177O\345^\264\217?\352\357\260\002 1\332k\021i\024h\310\227\214-\350\202\001u\025\032\265u\034\035N\302W\361\335\330\312\371S\323\023"
}
from peer.proposal_response_pb2 import ProposalResponse
proposalResponse = ProposalResponse()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-invokeproposal1responses-peer2.protobuf') as f:
data = f.read()
proposalResponse.ParseFromString(data)
Step 65
Then user "dev0Org0" expects proposal responses "invokeProposal1Responses" with status "200" from endorsers
Step 66
And user "dev0Org0" expects proposal responses "invokeProposal1Responses" each have the same value from endorsers
Step 67
When the user "dev0Org0" creates transaction "invokeTx1" from proposal "invokeProposal1" and proposal responses "invokeProposal1Responses" for channel "com.acme.blockchain.jdoe.Channel1"
User dev0Org0 setting tag key invokeTx1 to value
Protobuf message in binary form
payload: "\n\330\007\n\317\001\010\003\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1*@9de9a6ee29a75fab1e45dc2127f95a8d71afa56610ebacbbda0d9a354f369af5:\\\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030Y\325\"\260\375\037\366\305\251\300\"\337\301\303\370F\022\313\241\311\263\360\210\300\022\215\025\n\212\025\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030Y\325\"\260\375\037\366\305\251\300\"\337\301\303\370F\022\313\241\311\263\360\210\300\022\201\017\nv\nt\nr\010\001\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\032\022\n\006invoke\n\001a\n\001b\n\00210\022\206\016\n\327\001\n g^0\244Kot@\254\030\247\214#\3526.`\262<\315`\314C\340\367\222\266\271G\313\320_\022\262\001\nO\0222\n\texample02\022%\n\007\n\001a\022\002\010\001\n\007\n\001b\022\002\010\001\032\007\n\001a\032\00290\032\010\n\001b\032\003210\022\031\n\004lscc\022\021\n\017\n\texample02\022\002\010\001\032\003\010\310\001\"Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\022\223\006\n\310\005\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB6DCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBSMQ4wDAYDVQQDDAVwZWVyMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABJy9UK+oXuGSbpbzgZU64aVp7LsMjk75CscMjB5I\naD2dUl2WmcLGeAtBqbHyMWGjc2JRseCKnutbgPwnkm9UCBajUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFPtBGBSCzm6QkrZH6e/mCSa2M9PrMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQDvOHWvdVLz\nOOOO6zVzlTlnpx7l3tnFYENIX3bPx0mMWwIhANWacbcNaErmH+AO7iSpTEG0+yOv\nricFnKdPqNrYWOOK\n-----END -----\n\022F0D\002 q\027\270!b\177\330\341V\234\300\331}r\343\236L\r\334\214\201\256\t\3311\211<\031\345-\205\003\002 %\325\300\272D\342\375^\264\256\240\263\020k\010K\"\034RGE=\007\027\332_\037\277\3500\223\267\022\223\006\n\310\005\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0\nOTM1WjBSMQ4wDAYDVQQDDAVwZWVyMjELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABD0T8OXva7RUQQ5Y66BJOXhWR+fRJgI+uJcemZu8\nLxejvMPCTIe/vqOJGCgAFYBsEEu/UARICOFk688ksHElKmijUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFKin2+gnq87xKAR+ipKYcsJS3rTUMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIBk2lroR3Q8b\nxxLGeCjwY7TIPO5rONr4KGG6mOiLHIoZAiEAy9rZZ2i5oLtkxHaScy18I+9paj2u\nMFB4/f++r6yDDi8=\n-----END -----\n\022F0D\002 [\217\204\376\'\2255s;[\360l\367lAN\350\243\023\261\322\006\177O\345^\264\217?\352\357\260\002 1\332k\021i\024h\310\227\214-\350\202\001u\025\032\265u\034\035N\302W\361\335\330\312\371S\323\023"
signature: "0D\002 _\214\344\205\007\\\263\374\331\313\250\352\204\311y\210V\270\376\342\221\252r\204\216\260\230\325!\357+t\002 \016\030\000G\352j\213\205\251I\351\243G\217\361\030\r\236\264\242\243ga=\217\\I0P\217d\004"
from common.common_pb2 import Envelope
envelope = Envelope()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-invoketx1.protobuf') as f:
data = f.read()
envelope.ParseFromString(data)
Step 68
And the user "dev0Org0" broadcasts transaction "invokeTx1" to orderer "orderer0" on channel "com.acme.blockchain.jdoe.Channel1"
Step 69
And I wait "2" seconds
Step 70
And user "dev0Org0" sends deliver a seek request on orderer "orderer0" with properties
ChainId
Start
End
com.acme.blockchain.jdoe.Channel1
2
2
Step 71
Then user "dev0Org0" should get a delivery "deliveredInvokeTx1Block" from "orderer0" of "1" blocks with "1" messages within "1" seconds
User dev0Org0 setting tag key deliveredInvokeTx1Block to value
Protobuf message in binary form
header {
number: 2
previous_hash: "+\337C\317j\250\230b\240\320Q\347\234\020\336\005\t;O\003Da4^r\213\366^\033F*/"
data_hash: "\320]\337\t\177\242\257x_\241\266HN\245\354\3231:S6\032h\317`+\304,\027\374\242\214/"
}
data {
data: "\n\353\034\n\330\007\n\317\001\010\003\020\001\032\006\010\275\372\210\310\005\"!com.acme.blockchain.jdoe.Channel1*@9de9a6ee29a75fab1e45dc2127f95a8d71afa56610ebacbbda0d9a354f369af5:\\\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\022\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030Y\325\"\260\375\037\366\305\251\300\"\337\301\303\370F\022\313\241\311\263\360\210\300\022\215\025\n\212\025\n\203\006\n\346\005\n\010peerOrg0\022\331\005-----BEGIN CERTIFICATE-----\nMIIB7jCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTQyWhcNMTgwNDI3MTg0\nOTQyWjBYMRQwEgYDVQQDDAtjb25zb3J0aXVtMTELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGz3FMovRstBK5DubTSWl4auUBNjUeMk\nmW6x0UbEXonK/sj6O5AhEN4EkrfyVJF/sA9m52AHsmEzaP2odIgYEx+jUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFAJ9LmlaPF5mnEYRzANjO816UdYaMB8GA1Ud\nIwQYMBaAFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQCV\nGtvbmUTYRzpmlju3p/cUA5kQRhXwxEf9llMUhePEEAIhAKOv+ja0WY9izP2MAdGx\nUuWd5HCHk0DT3FI2osl/qYIO\n-----END CERTIFICATE-----\n\022\030Y\325\"\260\375\037\366\305\251\300\"\337\301\303\370F\022\313\241\311\263\360\210\300\022\201\017\nv\nt\nr\010\001\022Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\032\022\n\006invoke\n\001a\n\001b\n\00210\022\206\016\n\327\001\n g^0\244Kot@\254\030\247\214#\3526.`\262<\315`\314C\340\367\222\266\271G\313\320_\022\262\001\nO\0222\n\texample02\022%\n\007\n\001a\022\002\010\001\n\007\n\001b\022\002\010\001\032\007\n\001a\032\00290\032\010\n\001b\032\003210\022\031\n\004lscc\022\021\n\017\n\texample02\022\002\010\001\032\003\010\310\001\"Z\nGgithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02\022\texample02\032\004test\022\223\006\n\310\005\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB6DCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM0WhcNMTgwNDI3MTg0\nOTM0WjBSMQ4wDAYDVQQDDAVwZWVyMDELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABJy9UK+oXuGSbpbzgZU64aVp7LsMjk75CscMjB5I\naD2dUl2WmcLGeAtBqbHyMWGjc2JRseCKnutbgPwnkm9UCBajUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFPtBGBSCzm6QkrZH6e/mCSa2M9PrMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0kAMEYCIQDvOHWvdVLz\nOOOO6zVzlTlnpx7l3tnFYENIX3bPx0mMWwIhANWacbcNaErmH+AO7iSpTEG0+yOv\nricFnKdPqNrYWOOK\n-----END -----\n\022F0D\002 q\027\270!b\177\330\341V\234\300\331}r\343\236L\r\334\214\201\256\t\3311\211<\031\345-\205\003\002 %\325\300\272D\342\375^\264\256\240\263\020k\010K\"\034RGE=\007\027\332_\037\277\3500\223\267\022\223\006\n\310\005\n\010peerOrg0\022\273\005-----BEGIN -----\nMIIB5zCCAY2gAwIBAwICA+gwCgYIKoZIzj0EAwIwVTERMA8GA1UEAwwIcGVlck9y\nZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEXMBUG\nA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTM1WhcNMTgwNDI3MTg0\nOTM1WjBSMQ4wDAYDVQQDDAVwZWVyMjELMAkGA1UEBhMCVVMxDDAKBgNVBAcMA1JU\nUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZMBMGByqG\nSM49AgEGCCqGSM49AwEHA0IABD0T8OXva7RUQQ5Y66BJOXhWR+fRJgI+uJcemZu8\nLxejvMPCTIe/vqOJGCgAFYBsEEu/UARICOFk688ksHElKmijUDBOMAwGA1UdEwEB\n/wQCMAAwHQYDVR0OBBYEFKin2+gnq87xKAR+ipKYcsJS3rTUMB8GA1UdIwQYMBaA\nFMjjW1UqCPlfPHykFupBF0DJjgAjMAoGCCqGSM49BAMCA0gAMEUCIBk2lroR3Q8b\nxxLGeCjwY7TIPO5rONr4KGG6mOiLHIoZAiEAy9rZZ2i5oLtkxHaScy18I+9paj2u\nMFB4/f++r6yDDi8=\n-----END -----\n\022F0D\002 [\217\204\376\'\2255s;[\360l\367lAN\350\243\023\261\322\006\177O\345^\264\217?\352\357\260\002 1\332k\021i\024h\310\227\214-\350\202\001u\025\032\265u\034\035N\302W\361\335\330\312\371S\323\023\022F0D\002 _\214\344\205\007\\\263\374\331\313\250\352\204\311y\210V\270\376\342\221\252r\204\216\260\230\325!\357+t\002 \016\030\000G\352j\213\205\251I\351\243G\217\361\030\r\236\264\242\243ga=\217\\I0P\217d\004"
}
metadata {
metadata: "\022\274\006\n\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030?\210\035\260\026BE\3650\316\257_\304dM\3360\232\237:>\200v\026\022G0E\002!\000\366\220\276(\320G\327\007\006N\027w\305\336\204\327V\231\264\347\026q\231^\235\340\344N \234\236/\002 w*\016\232\344\240x\376\2478\007\235%f\356\220\235{\365\372\354\325x\330Q\327\'\320\243\305\306M"
metadata: "\n\002\010\001\022\273\006\n\360\005\n\323\005\n\013ordererOrg0\022\303\005-----BEGIN -----\nMIIB7TCCAZOgAwIBAwICA+gwCgYIKoZIzj0EAwIwWDEUMBIGA1UEAwwLb3JkZXJl\nck9yZzAxCzAJBgNVBAYTAlVTMQwwCgYDVQQHDANSVFAxDDAKBgNVBAoMA0lCTTEX\nMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmEwHhcNMTcwNDI3MTg0OTMzWhcNMTgwNDI3\nMTg0OTMzWjBVMREwDwYDVQQDDAhvcmRlcmVyMDELMAkGA1UEBhMCVVMxDDAKBgNV\nBAcMA1JUUDEMMAoGA1UECgwDSUJNMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB8Bc1xevTEOQV7O5mIjqQP/fNpq/NMo\nIuiFnFkG+1S5Msdled7AEUMgeUaEP8U/wMfqR8Edb5cdwkeH47lPzHSjUDBOMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMnu76tt+7C+iOtOu+UrIVCnnu5QMB8GA1Ud\nIwQYMBaAFDRTjX3QJOAHbnREWkYokhXRpzsGMAoGCCqGSM49BAMCA0gAMEUCIEBp\nCM37305NHEqxGZwOsFKncUVTISI+D8+qg1qFn/GQAiEAuohclwpctW0QtHp/sp0L\n38MGiwiA78Rt5aElon+ejTE=\n-----END -----\n\022\030\032pd\310{\205\235\206\306K\330H\'\2349:\317j\271s\365\340\331\237\022F0D\002 TF\265\237\247\3412\031\000(\276\330\233[\262\371$\375\021\274\270\251S\243\227\223\205\225\341\010t\'\002 +\267\360\225Wv\237W\214\263w\211<n\331\222J\246|\347\336\375\245\351*\037\256sJ\264f>"
metadata: ""
metadata: ""
}
from common.common_pb2 import Block
block = Block()
data = None
with open('tmp/40dc98342b7a11e79ac800163e000427/dev0org0-deliveredinvoketx1block-0000.protobuf') as f:
data = f.read()
block.ParseFromString(data)