Skip to content

Commit 129b813

Browse files
authored
Merge pull request hyperledger-indy#844 from Artemkaaas/node-1.3.44
Supported Node 1.3.44
2 parents 41a748e + 79c7229 commit 129b813

File tree

28 files changed

+192
-357
lines changed

28 files changed

+192
-357
lines changed

ci/indy-pool.dockerfile

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ RUN echo "deb https://repo.sovrin.org/deb xenial $indy_stream" >> /etc/apt/sourc
2424

2525
RUN useradd -ms /bin/bash -u $uid indy
2626

27-
ARG indy_plenum_ver=1.2.369
27+
ARG indy_plenum_ver=1.2.389
2828
ARG indy_anoncreds_ver=1.0.32
29-
ARG indy_node_ver=1.3.425
29+
ARG indy_node_ver=1.3.446
3030
ARG python3_indy_crypto_ver=0.4.1
3131
ARG indy_crypto_ver=0.4.0
3232

@@ -38,7 +38,7 @@ RUN apt-get update -y && apt-get install -y \
3838
libindy-crypto=${indy_crypto_ver} \
3939
vim
4040

41-
RUN echo '[supervisord]\n\
41+
RUN echo "[supervisord]\n\
4242
logfile = /tmp/supervisord.log\n\
4343
logfile_maxbytes = 50MB\n\
4444
logfile_backups=10\n\
@@ -56,37 +56,37 @@ childlogdir = /tmp\n\
5656
strip_ansi = false\n\
5757
\n\
5858
[program:node1]\n\
59-
command=start_indy_node Node1 9701 9702\n\
59+
command=start_indy_node Node1 0.0.0.0 9701 0.0.0.0 9702\n\
6060
directory=/home/indy\n\
6161
stdout_logfile=/tmp/node1.log\n\
6262
stderr_logfile=/tmp/node1.log\n\
6363
\n\
6464
[program:node2]\n\
65-
command=start_indy_node Node2 9703 9704\n\
65+
command=start_indy_node Node2 0.0.0.0 9703 0.0.0.0 9704\n\
6666
directory=/home/indy\n\
6767
stdout_logfile=/tmp/node2.log\n\
6868
stderr_logfile=/tmp/node2.log\n\
6969
\n\
7070
[program:node3]\n\
71-
command=start_indy_node Node3 9705 9706\n\
71+
command=start_indy_node Node3 0.0.0.0 9705 0.0.0.0 9706\n\
7272
directory=/home/indy\n\
7373
stdout_logfile=/tmp/node3.log\n\
7474
stderr_logfile=/tmp/node3.log\n\
7575
\n\
7676
[program:node4]\n\
77-
command=start_indy_node Node4 9707 9708\n\
77+
command=start_indy_node Node4 0.0.0.0 9707 0.0.0.0 9708\n\
7878
directory=/home/indy\n\
7979
stdout_logfile=/tmp/node4.log\n\
80-
stderr_logfile=/tmp/node4.log\n'\
80+
stderr_logfile=/tmp/node4.log\n"\
8181
>> /etc/supervisord.conf
8282

8383
USER indy
8484

85-
ARG pool_ip=127.0.0.1
86-
8785
RUN awk '{if (index($1, "NETWORK_NAME") != 0) {print("NETWORK_NAME = \"sandbox\"")} else print($0)}' /etc/indy/indy_config.py> /tmp/indy_config.py
8886
RUN mv /tmp/indy_config.py /etc/indy/indy_config.py
8987

88+
ARG pool_ip=127.0.0.1
89+
9090
RUN generate_indy_pool_transactions --nodes 4 --clients 5 --nodeNum 1 2 3 4 --ips="$pool_ip,$pool_ip,$pool_ip,$pool_ip"
9191

9292
EXPOSE 9701 9702 9703 9704 9705 9706 9707 9708
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{"data":{"alias":"Node1","blskey":"4N8aUNHSgjQVgkpm8nhNEfDf6txHznoYREg9kirmJrkivgL4oSEimFF6nsQ6M41QvhM2Z33nves5vfSn9n1UwNFJBYtWVnHYMATn76vLuL3zU88KyeAYcHfsih3He6UHcXDxcaecHVz6jhCYz1P2UZn2bDVruL5wXpehgBfBaLKm3Ba","client_ip":"10.0.0.2","client_port":9702,"node_ip":"10.0.0.2","node_port":9701,"services":["VALIDATOR"]},"dest":"Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv","identifier":"Th7MpTaRZVRYnPiabds81Y","txnId":"fea82e10e894419fe2bea7d96296a6d46f50f93f9eeda954ec461b2ed2950b62","type":"0"}
2-
{"data":{"alias":"Node2","blskey":"37rAPpXVoxzKhz7d9gkUe52XuXryuLXoM6P6LbWDB7LSbG62Lsb33sfG7zqS8TK1MXwuCHj1FKNzVpsnafmqLG1vXN88rt38mNFs9TENzm4QHdBzsvCuoBnPH7rpYYDo9DZNJePaDvRvqJKByCabubJz3XXKbEeshzpz4Ma5QYpJqjk","client_ip":"10.0.0.2","client_port":9704,"node_ip":"10.0.0.2","node_port":9703,"services":["VALIDATOR"]},"dest":"8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb","identifier":"EbP4aYNeTHL6q385GuVpRV","txnId":"1ac8aece2a18ced660fef8694b61aac3af08ba875ce3026a160acbc3a3af35fc","type":"0"}
3-
{"data":{"alias":"Node3","blskey":"3WFpdbg7C5cnLYZwFZevJqhubkFALBfCBBok15GdrKMUhUjGsk3jV6QKj6MZgEubF7oqCafxNdkm7eswgA4sdKTRc82tLGzZBd6vNqU8dupzup6uYUf32KTHTPQbuUM8Yk4QFXjEf2Usu2TJcNkdgpyeUSX42u5LqdDDpNSWUK5deC5","client_ip":"10.0.0.2","client_port":9706,"node_ip":"10.0.0.2","node_port":9705,"services":["VALIDATOR"]},"dest":"DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya","identifier":"4cU41vWW82ArfxJxHkzXPG","txnId":"7e9f355dffa78ed24668f0e0e369fd8c224076571c51e2ea8be5f26479edebe4","type":"0"}
4-
{"data":{"alias":"Node4","blskey":"2zN3bHM1m4rLz54MJHYSwvqzPchYp8jkHswveCLAEJVcX6Mm1wHQD1SkPYMzUDTZvWvhuE6VNAkK3KxVeEmsanSmvjVkReDeBEMxeDaayjcZjFGPydyey1qxBHmTvAnBKoPydvuTAqx5f7YNNRAdeLmUi99gERUU7TD8KfAa6MpQ9bw","client_ip":"10.0.0.2","client_port":9708,"node_ip":"10.0.0.2","node_port":9707,"services":["VALIDATOR"]},"dest":"4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA","identifier":"TWwCRQRZ2ZHMJFn9TzLp7W","txnId":"aa5e817d7cc626170eca175822029339a444eb0ee8f0bd20d3b0b76e566fb008","type":"0"}
1+
{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node1","blskey":"4N8aUNHSgjQVgkpm8nhNEfDf6txHznoYREg9kirmJrkivgL4oSEimFF6nsQ6M41QvhM2Z33nves5vfSn9n1UwNFJBYtWVnHYMATn76vLuL3zU88KyeAYcHfsih3He6UHcXDxcaecHVz6jhCYz1P2UZn2bDVruL5wXpehgBfBaLKm3Ba","client_ip":"10.0.0.2","client_port":9702,"node_ip":"10.0.0.2","node_port":9701,"services":["VALIDATOR"]},"dest":"Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv"},"metadata":{"from":"Th7MpTaRZVRYnPiabds81Y"},"type":"0"},"txnMetadata":{"seqNo":1,"txnId":"fea82e10e894419fe2bea7d96296a6d46f50f93f9eeda954ec461b2ed2950b62"},"ver":"1"}
2+
{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node2","blskey":"37rAPpXVoxzKhz7d9gkUe52XuXryuLXoM6P6LbWDB7LSbG62Lsb33sfG7zqS8TK1MXwuCHj1FKNzVpsnafmqLG1vXN88rt38mNFs9TENzm4QHdBzsvCuoBnPH7rpYYDo9DZNJePaDvRvqJKByCabubJz3XXKbEeshzpz4Ma5QYpJqjk","client_ip":"10.0.0.2","client_port":9704,"node_ip":"10.0.0.2","node_port":9703,"services":["VALIDATOR"]},"dest":"8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb"},"metadata":{"from":"EbP4aYNeTHL6q385GuVpRV"},"type":"0"},"txnMetadata":{"seqNo":2,"txnId":"1ac8aece2a18ced660fef8694b61aac3af08ba875ce3026a160acbc3a3af35fc"},"ver":"1"}
3+
{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node3","blskey":"3WFpdbg7C5cnLYZwFZevJqhubkFALBfCBBok15GdrKMUhUjGsk3jV6QKj6MZgEubF7oqCafxNdkm7eswgA4sdKTRc82tLGzZBd6vNqU8dupzup6uYUf32KTHTPQbuUM8Yk4QFXjEf2Usu2TJcNkdgpyeUSX42u5LqdDDpNSWUK5deC5","client_ip":"10.0.0.2","client_port":9706,"node_ip":"10.0.0.2","node_port":9705,"services":["VALIDATOR"]},"dest":"DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya"},"metadata":{"from":"4cU41vWW82ArfxJxHkzXPG"},"type":"0"},"txnMetadata":{"seqNo":3,"txnId":"7e9f355dffa78ed24668f0e0e369fd8c224076571c51e2ea8be5f26479edebe4"},"ver":"1"}
4+
{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node4","blskey":"2zN3bHM1m4rLz54MJHYSwvqzPchYp8jkHswveCLAEJVcX6Mm1wHQD1SkPYMzUDTZvWvhuE6VNAkK3KxVeEmsanSmvjVkReDeBEMxeDaayjcZjFGPydyey1qxBHmTvAnBKoPydvuTAqx5f7YNNRAdeLmUi99gERUU7TD8KfAa6MpQ9bw","client_ip":"10.0.0.2","client_port":9708,"node_ip":"10.0.0.2","node_port":9707,"services":["VALIDATOR"]},"dest":"4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA"},"metadata":{"from":"TWwCRQRZ2ZHMJFn9TzLp7W"},"type":"0"},"txnMetadata":{"seqNo":4,"txnId":"aa5e817d7cc626170eca175822029339a444eb0ee8f0bd20d3b0b76e566fb008"},"ver":"1"}

cli/src/commands/ledger.rs

Lines changed: 49 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,13 @@ pub mod nym_command {
7373
.map_err(|err| println_err!("Invalid data has been received: {:?}", err))?;
7474

7575
if let Some(result) = response.result.as_mut() {
76+
result["txn"]["data"]["role"] = get_role_title(&result["txn"]["data"]["role"]);
7677
result["role"] = get_role_title(&result["role"]);
7778
}
7879

7980
let res = handle_transaction_response(response)
8081
.map(|result| print_transaction_response(result,
8182
"Nym request has been sent to Ledger.",
82-
&[("reqId", "Request ID"),
83-
("txnTime", "Transaction time")],
8483
None,
8584
&mut vec![("dest", "Did"),
8685
("verkey", "Verkey"),
@@ -128,9 +127,6 @@ pub mod get_nym_command {
128127
let res = handle_transaction_response(response)
129128
.map(|result| print_transaction_response(result,
130129
"Following NYM has been received.",
131-
&[("seqNo", "Sequence Number"),
132-
("reqId", "Request ID"),
133-
("txnTime", "Transaction time")],
134130
Some("data"),
135131
&[("identifier", "Identifier"),
136132
("dest", "Dest"),
@@ -194,10 +190,6 @@ pub mod attrib_command {
194190
let res = handle_transaction_response(response)
195191
.map(|result| print_transaction_response(result,
196192
"Attrib request has been sent to Ledger.",
197-
&[("dest", "Dest"),
198-
("seqNo", "Sequence Number"),
199-
("reqId", "Request ID"),
200-
("txnTime", "Transaction time")],
201193
None,
202194
&[attribute]));
203195

@@ -249,10 +241,6 @@ pub mod get_attrib_command {
249241
let res = handle_transaction_response(response)
250242
.map(|result| print_transaction_response(result,
251243
"Following ATTRIB has been received.",
252-
&[("dest", "Did"),
253-
("seqNo", "Sequence Number"),
254-
("reqId", "Request ID"),
255-
("txnTime", "Transaction time")],
256244
None,
257245
&[("data", "Data")]));
258246
trace!("execute << {:?}", res);
@@ -313,10 +301,6 @@ pub mod schema_command {
313301
let res = handle_transaction_response(response)
314302
.map(|result| print_transaction_response(result,
315303
"Schema request has been sent to Ledger.",
316-
&[("identifier", "Identifier"),
317-
("seqNo", "Sequence Number"),
318-
("reqId", "Request ID"),
319-
("txnTime", "Transaction time")],
320304
Some("data"),
321305
&[("name", "Name"),
322306
("version", "Version"),
@@ -406,10 +390,6 @@ pub mod get_schema_command {
406390
let res = handle_transaction_response(response)
407391
.map(|result| print_transaction_response(result,
408392
"Following Schema has been received.",
409-
&[("dest", "Did"),
410-
("seqNo", "Sequence Number"),
411-
("reqId", "Request ID"),
412-
("txnTime", "Transaction time")],
413393
Some("data"),
414394
&[("name", "Name"),
415395
("version", "Version"),
@@ -481,10 +461,6 @@ pub mod cred_def_command {
481461
let res = handle_transaction_response(response)
482462
.map(|result| print_transaction_response(result,
483463
"NodeConfig request has been sent to Ledger.",
484-
&[("identifier", "Identifier"),
485-
("seqNo", "Sequence Number"),
486-
("reqId", "Request ID"),
487-
("txnTime", "Transaction time")],
488464
Some("data"),
489465
&[("primary", "Primary Key"),
490466
("revocation", "Revocation Key")]));
@@ -532,10 +508,6 @@ pub mod get_cred_def_command {
532508
let res = handle_transaction_response(response)
533509
.map(|result| print_transaction_response(result,
534510
"Following Credential Definition has been received.",
535-
&[("identifier", "Identifier"),
536-
("seqNo", "Sequence Number"),
537-
("reqId", "Request ID"),
538-
("txnTime", "Transaction time")],
539511
Some("data"),
540512
&[("primary", "Primary Key"),
541513
("revocation", "Revocation Key")]));
@@ -601,10 +573,6 @@ pub mod node_command {
601573
let res = handle_transaction_response(response)
602574
.map(|result| print_transaction_response(result,
603575
"NodeConfig request has been sent to Ledger.",
604-
&[("identifier", "Identifier"),
605-
("seqNo", "Sequence Number"),
606-
("reqId", "Request ID"),
607-
("txnTime", "Transaction time")],
608576
Some("data"),
609577
&[("alias", "Alias"),
610578
("node_ip", "Node Ip"),
@@ -649,10 +617,6 @@ pub mod pool_config_command {
649617
let res = handle_transaction_response(response)
650618
.map(|result| print_transaction_response(result,
651619
"NodeConfig request has been sent to Ledger.",
652-
&[("identifier", "Identifier"),
653-
("seqNo", "Sequence Number"),
654-
("reqId", "Request ID"),
655-
("txnTime", "Transaction time")],
656620
None,
657621
&[("writes", "Writes"),
658622
("force", "Force Apply")]));
@@ -692,9 +656,6 @@ pub mod pool_restart_command {
692656
let res = handle_transaction_response(response)
693657
.map(|result| print_transaction_response(result,
694658
"Restart pool request has been sent to Ledger.",
695-
&[
696-
("identifier", "Identifier"),
697-
("reqId", "Request ID")],
698659
None,
699660
&[
700661
("isSuccess", "IsSuccess"),
@@ -769,10 +730,6 @@ pub mod pool_upgrade_command {
769730
let res = handle_transaction_response(response)
770731
.map(|result| print_transaction_response(result,
771732
"NodeConfig request has been sent to Ledger.",
772-
&[("identifier", "Identifier"),
773-
("seqNo", "Sequence Number"),
774-
("reqId", "Request ID"),
775-
("txnTime", "Transaction time")],
776733
None,
777734
&[("name", "Name"),
778735
("action", "Action"),
@@ -1171,25 +1128,63 @@ fn parse_payment_fees(fees: &Vec<&str>) -> Result<String, ()> {
11711128
}
11721129

11731130
fn print_transaction_response(mut result: serde_json::Value, title: &str,
1174-
metadata_headers: &[(&str, &str)],
1175-
data_field: Option<&str>,
1131+
data_sub_field: Option<&str>,
11761132
data_headers: &[(&str, &str)]) {
1177-
if let Some(txn_time) = result["txnTime"].as_i64() {
1178-
result["txnTime"] = serde_json::Value::String(timestamp_to_datetime(txn_time))
1179-
}
1180-
11811133
println_succ!("{}", title);
1134+
1135+
let (metadata_headers, metadata, data) = match result["ver"].clone().as_str() {
1136+
None => parse_transaction_response_v0(&mut result),
1137+
Some("1") => parse_transaction_response_v1(&mut result),
1138+
ver @ _ => return println_err!("Unsupported transaction response format: {:?}", ver)
1139+
};
1140+
11821141
println_succ!("Metadata:");
1183-
print_table(&result, metadata_headers);
1184-
println_succ!("Data:");
1142+
print_table(&metadata, &metadata_headers);
11851143

1186-
let data = if data_field.is_some() { &result[data_field.unwrap()] } else { &result };
1144+
let data = if data_sub_field.is_some() { &data[data_sub_field.unwrap()] } else { &data };
11871145
let mut data_headers = data_headers.to_vec();
11881146
data_headers.retain(|&(ref key, _)| !data[key].is_null());
11891147

1148+
println_succ!("Data:");
11901149
print_table(data, &data_headers);
11911150
}
11921151

1152+
fn parse_transaction_response_v0(result: &mut serde_json::Value) -> ([(&'static str, &'static str); 4], serde_json::Value, serde_json::Value) {
1153+
if let Some(txn_time) = result["txnTime"].as_i64() {
1154+
result["txnTime"] = serde_json::Value::String(timestamp_to_datetime(txn_time))
1155+
}
1156+
1157+
let metadata_headers = [
1158+
("identifier", "Identifier"),
1159+
("seqNo", "Sequence Number"),
1160+
("reqId", "Request ID"),
1161+
("txnTime", "Transaction time")];
1162+
1163+
(metadata_headers, result.clone(), result.clone())
1164+
}
1165+
1166+
fn parse_transaction_response_v1(result: &mut serde_json::Value) -> ([(&'static str, &'static str); 4], serde_json::Value, serde_json::Value) {
1167+
if let Some(txn_time) = result["txnMetadata"]["txnTime"].as_i64() {
1168+
result["txnMetadata"]["txnTime"] = serde_json::Value::String(timestamp_to_datetime(txn_time))
1169+
}
1170+
1171+
let metadata_headers = [
1172+
("from", "From"),
1173+
("seqNo", "Sequence Number"),
1174+
("reqId", "Request ID"),
1175+
("txnTime", "Transaction time")];
1176+
1177+
let mut metadata_obj = result["txnMetadata"].as_object().unwrap().clone();
1178+
1179+
metadata_obj.insert("reqId".to_string(), result["txn"]["metadata"]["reqId"].clone());
1180+
metadata_obj.insert("from".to_string(), result["txn"]["metadata"]["from"].clone());
1181+
1182+
let metadata = serde_json::Value::Object(metadata_obj);
1183+
let data = result["txn"]["data"].clone();
1184+
1185+
(metadata_headers, metadata, data)
1186+
}
1187+
11931188
pub fn handle_transaction_response(response: Response<serde_json::Value>) -> Result<serde_json::Value, ()> {
11941189
match response {
11951190
Response { op: ResponseType::REPLY, result: Some(result), reason: None } => Ok(result),
@@ -3526,7 +3521,7 @@ pub mod tests {
35263521
let schema_request = Ledger::build_schema_request(&did, schema_data).unwrap();
35273522
let schema_response = Ledger::sign_and_submit_request(pool_handle, wallet_handle, &did, &schema_request).unwrap();
35283523
let schema: serde_json::Value = serde_json::from_str(&schema_response).unwrap();
3529-
let seq_no = schema["result"]["seqNo"].as_i64().unwrap();
3524+
let seq_no = schema["result"]["txnMetadata"]["seqNo"].as_i64().unwrap();
35303525
seq_no.to_string()
35313526
}
35323527

libindy/tests/demo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ fn ledger_demo_works() {
576576
assert_eq!(err, ErrorCode::Success);
577577
let (err, resp) = send_receiver.recv_timeout(TimeoutUtils::medium_timeout()).unwrap();
578578
assert_eq!(err, ErrorCode::Success);
579-
let nym_resp: Reply = serde_json::from_str(&resp).unwrap();
579+
let nym_resp = serde_json::from_str::<serde_json::Value>(&resp).unwrap();
580580
info!("nym_resp_raw : {:?}", resp);
581581
info!("nym_resp : {:?}", nym_resp);
582582

0 commit comments

Comments
 (0)