Skip to content

Commit df1cc7a

Browse files
committed
Update sdk client sample
1 parent 7de4b48 commit df1cc7a

File tree

51 files changed

+613
-360
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+613
-360
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
name: basic-network
3+
version: 1.0.0
4+
client:
5+
organization: Org1
6+
connection:
7+
timeout:
8+
peer:
9+
endorser: '300'
10+
orderer: '300'
11+
channels:
12+
mychannel:
13+
orderers:
14+
- orderer0.example.com
15+
peers:
16+
peer0.org1.example.com:
17+
endorsingPeer: true
18+
chaincodeQuery: true
19+
ledgerQuery: true
20+
eventSource: true
21+
organizations:
22+
Org1:
23+
mspid: Org1MSP
24+
peers:
25+
- peer0.org1.example.com
26+
certificateAuthorities:
27+
- ca-org1
28+
adminPrivateKeyPEM:
29+
path: "/opt/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore/priv_sk"
30+
signedCertPEM:
31+
path: "/opt/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/signcerts/[email protected]"
32+
orderers:
33+
orderer0.example.com:
34+
url: grpcs://orderer0.example.com:7050
35+
mspid: OrdererMSP
36+
grpcOptions:
37+
ssl-target-name-override: orderer0.example.com
38+
hostnameOverride: orderer0.example.com
39+
tlsCACerts:
40+
path: "/opt/crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/ca.crt"
41+
adminPrivateKeyPEM:
42+
path: "/opt/crypto-config/ordererOrganizations/example.com/users/[email protected]/msp/keystore/priv_sk"
43+
signedCertPEM:
44+
path: "/opt/crypto-config/ordererOrganizations/example.com/users/[email protected]/msp/signcerts/[email protected]"
45+
peers:
46+
peer0.org1.example.com:
47+
url: grpcs://peer0.org1.example.com:7051
48+
grpcOptions:
49+
ssl-target-name-override: peer0.org1.example.com
50+
hostnameOverride: peer0.org1.example.com
51+
request-timeout: 120001
52+
tlsCACerts:
53+
path: "/opt/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"
54+
peer0.org2.example.com:
55+
url: grpcs://peer0.org2.example.com:7051
56+
grpcOptions:
57+
ssl-target-name-override: peer0.org2.example.com
58+
hostnameOverride: peer0.org2.example.com
59+
request-timeout: 120001
60+
tlsCACerts:
61+
path: "/opt/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"
62+
certificateAuthorities:
63+
ca-org1:
64+
url: https://localhost:7054
65+
grpcOptions:
66+
verify: true
67+
tlsCACerts:
68+
path: "/opt/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem"
69+
registrar:
70+
- enrollId: admin
71+
enrollSecret: adminpw
72+
ca-org2:
73+
url: https://localhost:8054
74+
grpcOptions:
75+
verify: true
76+
tlsCACerts:
77+
path: "/opt/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem"
78+
registrar:
79+
- enrollId: admin
80+
enrollSecret: adminpw
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CHANNEL_NAME=businesschannel
2+
CHAINCODE_NAME=exp02
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package sample;
2+
3+
import java.io.InputStream;
4+
import java.util.Properties;
5+
import java.nio.file.Path;
6+
import java.nio.file.Paths;
7+
import java.io.BufferedInputStream;
8+
import java.io.FileInputStream;
9+
import java.io.IOException;
10+
import java.io.File;
11+
12+
/**
13+
* The properties handler for this sample
14+
* With demo.properties in resources dir
15+
*/
16+
public class ConfigProperties {
17+
18+
static Properties pp;
19+
20+
static{
21+
pp = new Properties();
22+
InputStream fps = null;
23+
try {
24+
Path basepath = Paths.get(".").toAbsolutePath().normalize();
25+
fps = new BufferedInputStream(new FileInputStream(new File(basepath.toString()+"/resources/demo.properties")));
26+
pp.load(fps);
27+
} catch (IOException e) {
28+
System.out.print("Read config.properties file failed!");
29+
e.printStackTrace();
30+
}finally{
31+
try{
32+
if(fps!=null) fps.close();
33+
}catch(IOException e){
34+
System.out.print("Release the config file failed!");
35+
e.printStackTrace();
36+
}
37+
}
38+
}
39+
public static String values(String key) {
40+
String value = pp.getProperty(key);
41+
if (value != null) {
42+
return value.trim();
43+
} else {
44+
return null;
45+
}
46+
}
47+
public static String[] values_array(String key) {
48+
String value = pp.getProperty(key);
49+
if (value != null) {
50+
if (value.length() != 0) {
51+
return value.split (",", 0);
52+
}
53+
}
54+
return null;
55+
56+
}
57+
}

hyperledger_fabric/v2.2.1/gateway-java/src/main/java/sample/Sample.java

Lines changed: 68 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,83 @@
11
package sample;
22

3+
import org.apache.commons.codec.binary.Base64;
4+
import org.hyperledger.fabric.gateway.*;
5+
import org.yaml.snakeyaml.Yaml;
6+
7+
import java.io.FileInputStream;
38
import java.io.IOException;
9+
import java.io.InputStream;
410
import java.nio.charset.StandardCharsets;
11+
import java.nio.file.Files;
512
import java.nio.file.Path;
613
import java.nio.file.Paths;
14+
import java.security.KeyFactory;
15+
import java.security.NoSuchAlgorithmException;
16+
import java.security.PrivateKey;
17+
import java.security.cert.CertificateException;
18+
import java.security.cert.CertificateFactory;
19+
import java.security.cert.X509Certificate;
20+
import java.security.spec.InvalidKeySpecException;
21+
import java.security.spec.PKCS8EncodedKeySpec;
22+
import java.util.Map;
723
import java.util.concurrent.TimeoutException;
824

9-
import org.hyperledger.fabric.gateway.Contract;
10-
import org.hyperledger.fabric.gateway.ContractException;
11-
import org.hyperledger.fabric.gateway.Gateway;
12-
import org.hyperledger.fabric.gateway.Network;
13-
import org.hyperledger.fabric.gateway.Wallet;
14-
import org.hyperledger.fabric.gateway.Wallets;
15-
1625
public class Sample {
17-
public static void main(String[] args) throws IOException {
18-
String connectProfilePath="connection.json";
19-
String channelName="businesschannel";
20-
String walletPath="/opt/test/wallet";
2126

22-
String chaincodeName="exp02";
27+
private static String connectProfilePath = "./connection.yaml";
28+
private static String channelName = ConfigProperties.values("CHANNEL_NAME");
29+
private static String chaincodeName = ConfigProperties.values("CHAINCODE_NAME");
30+
31+
/**
32+
* Initialize a wallet with an admin identity
33+
*
34+
* @param connectionProfilePath file path to the connection profile
35+
* @param wallet wallet to store identity
36+
* @throws IOException io failure
37+
* @throws CertificateException the certificate is with invalid format
38+
* @throws NoSuchAlgorithmException the algorithm is not supported
39+
* @throws InvalidKeySpecException the private key is with invalid format
40+
*/
41+
private static void initWallet(String connectionProfilePath, Wallet wallet) throws IOException, CertificateException, NoSuchAlgorithmException, InvalidKeySpecException {
42+
// Load the network configuration profile file
43+
String profileFullPath = Paths.get(connectionProfilePath).normalize().toRealPath().toString();
44+
InputStream fis = new FileInputStream(profileFullPath);
45+
Yaml yaml = new Yaml();
46+
Map yamlMap = yaml.load(fis);
47+
Map clientInfo = (Map) yamlMap.get("client");
48+
String orgName = clientInfo.get("organization").toString();
49+
Map orgsInfo = (Map) yamlMap.get("organizations");
50+
Map orgInfo = (Map) orgsInfo.get(orgName);
51+
String mspId = orgInfo.get("mspid").toString();
52+
Map signedCert = (Map) orgInfo.get("signedCertPEM");
53+
String signedCertPath = signedCert.get("path").toString();
54+
Map privKey = (Map) orgInfo.get("adminPrivateKeyPEM");
55+
String privKeyPath = privKey.get("path").toString();
56+
57+
// Load the certificate and the private key
58+
CertificateFactory fac = CertificateFactory.getInstance("X509");
59+
FileInputStream is = new FileInputStream(signedCertPath);
60+
X509Certificate cert = (X509Certificate) fac.generateCertificate(is);
61+
byte[] keyBytes = Files.readAllBytes(Paths.get(privKeyPath));
62+
String temp = new String(keyBytes);
63+
String privKeyPEM = temp.replace("-----BEGIN PRIVATE KEY-----\n", "");
64+
privKeyPEM = privKeyPEM.replace("-----END PRIVATE KEY-----", "");
65+
Base64 b64 = new Base64();
66+
byte[] decoded = b64.decode(privKeyPEM);
67+
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decoded);
68+
KeyFactory kf = KeyFactory.getInstance("EC");
69+
PrivateKey privateKey = kf.generatePrivate(spec);
2370

24-
// Load an existing wallet holding identities used to access the network.
71+
X509Identity identity = Identities.newX509Identity(mspId, cert, privateKey);
72+
wallet.put("admin", identity);
73+
}
74+
75+
public static void main(String[] args) throws IOException, CertificateException, NoSuchAlgorithmException, InvalidKeySpecException {
76+
// Initialize a wallet to hold identities used to access the network.
77+
String walletPath = "/opt/test/wallet";
2578
Path walletDirectory = Paths.get(walletPath);
2679
Wallet wallet = Wallets.newFileSystemWallet(walletDirectory);
80+
initWallet(connectProfilePath, wallet);
2781

2882
// Path to a common connection profile describing the network.
2983
Path networkConfigFile = Paths.get(connectProfilePath);
@@ -35,14 +89,13 @@ public static void main(String[] args) throws IOException {
3589

3690
// Create a gateway connection
3791
try (Gateway gateway = builder.connect()) {
38-
3992
// Obtain a smart contract deployed on the network.
4093
Network network = gateway.getNetwork(channelName);
4194
Contract contract = network.getContract(chaincodeName);
4295

4396
// Submit transactions that store state to the ledger.
4497
byte[] createCarResult = contract.createTransaction("invoke")
45-
.submit( "a", "b", "10");
98+
.submit("a", "b", "1");
4699
System.out.println(new String(createCarResult, StandardCharsets.UTF_8));
47100

48101
// Evaluate transactions that query state from the ledger.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"credentials":{"certificate":"-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----","privateKey":"-----BEGIN PRIVATE KEY-----\r\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4ui7zz4MlrLCpncs\r\nYHdQQS6qp8M5JE3f8ZowaU+BBfahRANCAASdrp2MhuxRGPaEqtrYLUewDHNLbaN+\r\nnG8LCxxEOmlTz8GQI5Lk4o+jKUMTH/IHy5cOnHQQPPfGxqy9g5bbZ8DO\r\n-----END PRIVATE KEY-----"},"mspId":"Org1MSP","type":"X.509","version":1}
1+
{"version":1,"mspId":"Org1MSP","type":"X.509","credentials":{"certificate":"-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIQSdBFJUgRkBhzmW9htYh+UjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDA3MTcxODE5MDBaFw0zMDA3MTUxODE5MDBa\nMGsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ4wDAYDVQQLEwVhZG1pbjEfMB0GA1UEAwwWQWRtaW5Ab3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJ2unYyG7FEY\n9oSq2tgtR7AMc0tto36cbwsLHEQ6aVPPwZAjkuTij6MpQxMf8gfLlw6cdBA898bG\nrL2DlttnwM6jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIKqf36g/sCvMlxb5pAHInL/lz2U6RJfYRzgbC38Wrp5QMAoGCCqGSM49\nBAMCA0cAMEQCIBL+/AwRBeh13pl+cY8ZlcJsNPDXPDc41wKKche8zdSSAiB5i5Lu\n+1Tnoy4T4l3DSf2K8xrx9UgFNn73kGfpYR12UQ==\n-----END CERTIFICATE-----\n","privateKey":"-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg4ui7zz4MlrLCpncs\nYHdQQS6qp8M5JE3f8ZowaU+BBfahRANCAASdrp2MhuxRGPaEqtrYLUewDHNLbaN+\nnG8LCxxEOmlTz8GQI5Lk4o+jKUMTH/IHy5cOnHQQPPfGxqy9g5bbZ8DO\n-----END PRIVATE KEY-----\n"}}
Binary file not shown.

hyperledger_fabric/v2.2.1/raft/channel-artifacts/businesschannel_0.block.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,13 +1057,13 @@
10571057
},
10581058
"signatures": [
10591059
{
1060-
"signature": "MEQCIDHov/hwEdNegWUUqBMxV4E1AVXjNE3rKBe51t8wR45rAiBW0CxVtiuAw4cvT9e9KpKAdctrcvgPtgc0W8fCLnSZFg==",
1060+
"signature": "MEUCIQDihlAAku4UAK1qEpYpIMAgohIvXQt2TiFTKmCWl59jDwIgdfEl6z7tFkby1i8ZhE2HFKd8XVbc8pSSTDfkOBN6RzU=",
10611061
"signature_header": {
10621062
"creator": {
10631063
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
10641064
"mspid": "Org1MSP"
10651065
},
1066-
"nonce": "IB7VdQVHpZZ2bcF39ZJcYj8shsmVU5gY"
1066+
"nonce": "mY/kqDqw2hBTDWzGWQvf+w0+iwXv90Wj"
10671067
}
10681068
}
10691069
]
@@ -1073,7 +1073,7 @@
10731073
"channel_id": "businesschannel",
10741074
"epoch": "0",
10751075
"extension": null,
1076-
"timestamp": "2021-08-18T21:05:12Z",
1076+
"timestamp": "2021-08-27T20:53:32Z",
10771077
"tls_cert_hash": null,
10781078
"tx_id": "",
10791079
"type": 2,
@@ -1084,19 +1084,19 @@
10841084
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWMrZ0F3SUJBZ0lRU2RCRkpVZ1JrQmh6bVc5aHRZaCtVakFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmEKTUdzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVE0d0RBWURWUVFMRXdWaFpHMXBiakVmTUIwR0ExVUVBd3dXUVdSdGFXNUFiM0puCk1TNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSjJ1bll5RzdGRVkKOW9TcTJ0Z3RSN0FNYzB0dG8zNmNid3NMSEVRNmFWUFB3WkFqa3VUaWo2TXBReE1mOGdmTGx3NmNkQkE4OThiRwpyTDJEbHR0bndNNmpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkCkl3UWtNQ0tBSUtxZjM2Zy9zQ3ZNbHhiNXBBSEluTC9sejJVNlJKZllSemdiQzM4V3JwNVFNQW9HQ0NxR1NNNDkKQkFNQ0EwY0FNRVFDSUJMKy9Bd1JCZWgxM3BsK2NZOFpsY0pzTlBEWFBEYzQxd0tLY2hlOHpkU1NBaUI1aTVMdQorMVRub3k0VDRsM0RTZjJLOHhyeDlVZ0ZObjcza0dmcFlSMTJVUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
10851085
"mspid": "Org1MSP"
10861086
},
1087-
"nonce": "hArBOdkEL7z+btH5TtNywn/yIXoOSpiJ"
1087+
"nonce": "gKkFXVb6/+1Ekfdh4fPTAecQxMmlRNw3"
10881088
}
10891089
}
10901090
},
1091-
"signature": "MEQCICKuaE48vGBBUUe+JkitsWfivoQpmuzSOOBIUls0uZUJAiA1Y75jk9s58pRSurFBd4bZQZmUFoeh6HvrSHEjvTxIWA=="
1091+
"signature": "MEQCIEFgcnA4cQeyJv3IbRalXCdoQfqyx3+LldsCSeXkc8PAAiA8aPmKPVq8xc+7ARkTbsWrzfkwyW2t6IuP6JypAp0B5w=="
10921092
}
10931093
},
10941094
"header": {
10951095
"channel_header": {
10961096
"channel_id": "businesschannel",
10971097
"epoch": "0",
10981098
"extension": null,
1099-
"timestamp": "2021-08-18T21:05:12Z",
1099+
"timestamp": "2021-08-27T20:53:32Z",
11001100
"tls_cert_hash": null,
11011101
"tx_id": "",
11021102
"type": 1,
@@ -1107,16 +1107,16 @@
11071107
"id_bytes": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNIekNDQWNhZ0F3SUJBZ0lSQUw0WU5uNXJzTTBiT3cwdjBTSEtwSUV3Q2dZSUtvWkl6ajBFQXdJd2FURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhGREFTQmdOVkJBb1RDMlY0WVcxd2JHVXVZMjl0TVJjd0ZRWURWUVFERXc1allTNWxlR0Z0CmNHeGxMbU52YlRBZUZ3MHlNREEzTVRjeE9ERTVNREJhRncwek1EQTNNVFV4T0RFNU1EQmFNR3N4Q3pBSkJnTlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVJBd0RnWURWUVFMRXdkdmNtUmxjbVZ5TVIwd0d3WURWUVFERXhSdmNtUmxjbVZ5TUM1bGVHRnRjR3hsCkxtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTmw4cEZsMENVenVWaTkvOStkdWR0c2cKN1FCSlhMaUkxKzVhVmlTZTFXTWdiSkZiRkxVNkNXZzF3ajJVZ0pLcHFHam5IK05VbHlmY3JjYWkwb0J4dUdDagpUVEJMTUE0R0ExVWREd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJREMyCmt2clhibXlVVm5BQjQxUUFtbU1TaDNTRmFXb0JMUmNENDliUUJkd05NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUMKSUVjWGpITUxXOUg1S1BEUm04Tlpxak56UU0ybEEzL3hNbzlIWUdMVXQxRE5BaUFiVmYxeGVYanp6S1VxRTdpSApwcm1CNUNBOUpqVjVhUWdjSFJUdXNnM0hpdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
11081108
"mspid": "OrdererMSP"
11091109
},
1110-
"nonce": "SaRD2PfZ+zOYqyAHrHIbf91FsB99OAOn"
1110+
"nonce": "FzNTYFC2dvce3jae4CSe0Uha/p9LIwqq"
11111111
}
11121112
}
11131113
},
1114-
"signature": "MEUCIQCXKwT9EUFWe9LSQzsLZGta/SmlpyWedCizW8mBDCyODAIgXlAaYo/g4NP6fa2iAULKMUzFLQtVK1pVb3qll/Eoano="
1114+
"signature": "MEUCIQDMTWVgueA6xhW1ohaoyKNidbcTlTfei1YC+8p5aMgdyAIgJaP6GJ6cdNXXJz6wqYrvHtgIiazVssVbgbR4THhg6ww="
11151115
}
11161116
]
11171117
},
11181118
"header": {
1119-
"data_hash": "NppGH3L1z5pE3y3H9uou7eFHNz4jU8Lw4D1znin6DYE=",
1119+
"data_hash": "33KBIZo8w9rVyGC0QeScauWgu1z+kqmmzXY7hKtbkqk=",
11201120
"number": "0",
11211121
"previous_hash": null
11221122
},

0 commit comments

Comments
 (0)