diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 987bc36a5b0761836ea80ec49753e2f249920157..6f50027c51ab504fb9d5d741af9e346ac3deec5e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,7 @@ cache: variables: REPO_DIR: gitlab.com/elixxir REPO_NAME: server - DOCKER_IMAGE: elixxirlabs/cuda-go:latest + DOCKER_IMAGE: elixxirlabs/cuda-go:go1.13-cuda11.1 # See https://docs.gitlab.com/ee/api/jobs.html#download-a-single-artifact-file-from-specific-tag-or-branch REPOS_API: https://gitlab.com/api/v4/projects/elixxir%2F SERVER_URL: "" @@ -49,10 +49,12 @@ stages: installbinaries: stage: installbinaries image: $DOCKER_IMAGE + tags: + - gpu script: - git clean -ffdx - mkdir -p ~/.elixxir - - ./download_cmix_binaries.sh + - ./download_cmix_binaries.sh l d - mkdir -p /opt/xxnetwork/lib - cp bin/libpowmosm75.so /opt/xxnetwork/lib/ - "chmod +x *" @@ -82,6 +84,7 @@ basice2e: - ls -lha - ./run.sh - mv results results-cpu + - sleep 60 - mkdir -p /opt/xxnetwork/lib - cp ../bin/libpowmosm75.so /opt/xxnetwork/lib/ - sed -i 's/bin\/server/bin\/server-cuda/g' run.sh diff --git a/README.md b/README.md index 9edbecc5711d848fbf47f29ede4f1b582dab8908..44f706bc7d60f906b4d8527a83c540d143e918c5 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,9 @@ into the `benchmark` branch so that the benchmarks will continue to function. `build.sh` generates version information for all repositories under test and builds binaries for them in the `bin/` directory. +`download_cmix_binaries` downloads binaries from certain branches into the `bin/` directory. +The targeted operating system for the binaries can be specified via command line arguments. + `update.sh` runs `git pull` for each repo under test, and by uncommenting the relevant code, checks out the `master` branch of each repo before pulling. This is the most useful if you're trying to fix an integration breakage in diff --git a/basice2e/clients.goldoutput/client100.txt b/basice2e/clients.goldoutput/client100.txt new file mode 100644 index 0000000000000000000000000000000000000000..04f0f262ed13f46a49ed39c9452fbf702e38bfa2 --- /dev/null +++ b/basice2e/clients.goldoutput/client100.txt @@ -0,0 +1,66 @@ +Sent: Hello from Jake100 to myself, without E2E Encryption +Message received: Hello from Jake100 to myself, without E2E Encryption +Received 1 + +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100 to myself, without E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Message received: Hello from Niamh101, with E2E Encryption +Received 20 +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Sent: Hello from Jake100, with E2E Encryption +Received 0 diff --git a/basice2e/clients.goldoutput/client101.txt b/basice2e/clients.goldoutput/client101.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d4fef8fd0cfdeec02d5650a4e2b5c143c27db70 --- /dev/null +++ b/basice2e/clients.goldoutput/client101.txt @@ -0,0 +1,65 @@ +WARNING: unsafe channel creation enabled +Adding +Received 0 +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Sent: Hello from Niamh101, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Received 20 +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Message received: Hello from Jake100, with E2E Encryption +Received 20 diff --git a/basice2e/clients.goldoutput/client13.txt b/basice2e/clients.goldoutput/client13.txt new file mode 100644 index 0000000000000000000000000000000000000000..1599f8861c71b7c654f8ad3947f047edc8a65ade --- /dev/null +++ b/basice2e/clients.goldoutput/client13.txt @@ -0,0 +1,15 @@ +WARNING: unsafe channel creation enabled +Adding +Received 0 +Received 0 +Sent: Hello from Josh13, with E2E Encryption +Sent: Hello from Josh13, with E2E Encryption +Sent: Hello from Josh13, with E2E Encryption +Sent: Hello from Josh13, with E2E Encryption +Sent: Hello from Josh13, with E2E Encryption +Message received: Hello from Josh31, with E2E Encryption +Message received: Hello from Josh31, with E2E Encryption +Message received: Hello from Josh31, with E2E Encryption +Message received: Hello from Josh31, with E2E Encryption +Message received: Hello from Josh31, with E2E Encryption +Received 5 diff --git a/basice2e/clients.goldoutput/client18.txt b/basice2e/clients.goldoutput/client18.txt index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..36e0ab779c49fe036634098bf4fc1fa3c58efe3a 100644 --- a/basice2e/clients.goldoutput/client18.txt +++ b/basice2e/clients.goldoutput/client18.txt @@ -0,0 +1,9 @@ +WARNING: unsafe channel creation enabled +Adding +Sent: Hi 18->9, with E2E Encryption +Sent: Hi 18->9, with E2E Encryption +Sent: Hi 18->9, with E2E Encryption +Message received: Hi 9->18, with E2E Encryption +Message received: Hi 9->18, with E2E Encryption +Message received: Hi 9->18, with E2E Encryption +Received 3 diff --git a/basice2e/clients.goldoutput/client18_rekey.txt b/basice2e/clients.goldoutput/client18_rekey.txt new file mode 100644 index 0000000000000000000000000000000000000000..52a891ecf3e106f5cb29b3993e3c31a6740b4f7d --- /dev/null +++ b/basice2e/clients.goldoutput/client18_rekey.txt @@ -0,0 +1,41 @@ +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Sent: Hello, 9, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Message received: Hello, 18, with E2E Encryption +Received 20 diff --git a/basice2e/clients.goldoutput/client31.txt b/basice2e/clients.goldoutput/client31.txt new file mode 100644 index 0000000000000000000000000000000000000000..3e36473d5c023f5b1951542248fc255e7aeaf95f --- /dev/null +++ b/basice2e/clients.goldoutput/client31.txt @@ -0,0 +1,13 @@ + +Received 0 +Sent: Hello from Josh31, with E2E Encryption +Sent: Hello from Josh31, with E2E Encryption +Sent: Hello from Josh31, with E2E Encryption +Sent: Hello from Josh31, with E2E Encryption +Sent: Hello from Josh31, with E2E Encryption +Message received: Hello from Josh13, with E2E Encryption +Message received: Hello from Josh13, with E2E Encryption +Message received: Hello from Josh13, with E2E Encryption +Message received: Hello from Josh13, with E2E Encryption +Message received: Hello from Josh13, with E2E Encryption +Received 5 diff --git a/basice2e/clients.goldoutput/client35.txt b/basice2e/clients.goldoutput/client35.txt new file mode 100644 index 0000000000000000000000000000000000000000..917ca25f7955d73add33602652e26f3b14ca4bf6 --- /dev/null +++ b/basice2e/clients.goldoutput/client35.txt @@ -0,0 +1,22 @@ +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Received 5 +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Sent: Hello from 1, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Message received: Hello from 2, without E2E Encryption +Received 5 diff --git a/basice2e/clients.goldoutput/client36.txt b/basice2e/clients.goldoutput/client36.txt new file mode 100644 index 0000000000000000000000000000000000000000..b5e84251ca797fa95730b433ae8845aeeaa72c08 --- /dev/null +++ b/basice2e/clients.goldoutput/client36.txt @@ -0,0 +1,22 @@ +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Received 5 +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Sent: Hello from 2, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Message received: Hello from 1, without E2E Encryption +Received 5 diff --git a/basice2e/clients.goldoutput/client42.txt b/basice2e/clients.goldoutput/client42.txt index c98ed71ba740f2049a7fae7a54187d9e16673765..f3aacc065aa9690908d4ba9c5f8f099884bdeb48 100644 --- a/basice2e/clients.goldoutput/client42.txt +++ b/basice2e/clients.goldoutput/client42.txt @@ -1,2 +1,27 @@ -Received: Hello from Ben43, with E2E Encryption +Sent: Hello from Rick42 to myself, without E2E Encryption +Message received: Hello from Rick42 to myself, without E2E Encryption +Received 1 + +Received 0 Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Received 5 +Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Sent: Hello from Rick42, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Message received: Hello from Ben43, with E2E Encryption +Received 5 diff --git a/basice2e/clients.goldoutput/client43.txt b/basice2e/clients.goldoutput/client43.txt index a4c82de7eec511c656bd1670bdb94d90af41a5a3..91bddd4997197eb6642e84306830e92635c57ad7 100644 --- a/basice2e/clients.goldoutput/client43.txt +++ b/basice2e/clients.goldoutput/client43.txt @@ -1,2 +1,26 @@ -Received: Hello from Rick42, with E2E Encryption +WARNING: unsafe channel creation enabled +Adding +Received 0 +Received 0 Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Received 5 +Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Sent: Hello from Ben43, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Message received: Hello from Rick42, with E2E Encryption +Received 5 diff --git a/basice2e/clients.goldoutput/client45.txt b/basice2e/clients.goldoutput/client45.txt index 364c8e147346f8bd6719e02d274211cf96195128..16063ec57c6996ecd6657514668a14d411bb9b5e 100644 --- a/basice2e/clients.goldoutput/client45.txt +++ b/basice2e/clients.goldoutput/client45.txt @@ -1,2 +1,82 @@ -Message from 7, Rick Received: Hello, 4 -Sending Message to 5, Ben: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Received 20 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Sent: Hello, 5 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Message received: Hello, 4 +Received 20 diff --git a/basice2e/clients.goldoutput/client52.txt b/basice2e/clients.goldoutput/client52.txt new file mode 100644 index 0000000000000000000000000000000000000000..8d5254f101aa279dbc4a25d055f5c04207d17504 --- /dev/null +++ b/basice2e/clients.goldoutput/client52.txt @@ -0,0 +1,3 @@ +Waiting for single-use message. +Single-use transmission received: Test single-use message +Sending single-use response message: Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message diff --git a/basice2e/clients.goldoutput/client53.txt b/basice2e/clients.goldoutput/client53.txt new file mode 100644 index 0000000000000000000000000000000000000000..bfbc09cd740f50a91afc2ed722c525d9db79c453 --- /dev/null +++ b/basice2e/clients.goldoutput/client53.txt @@ -0,0 +1,3 @@ +Sending single-use transmission message: Test single-use message +Waiting for response. +Message received: Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message Test single-use message diff --git a/basice2e/clients.goldoutput/client56.txt b/basice2e/clients.goldoutput/client56.txt index 1384be5a4ce630dc90dff84dfb783290f9091de7..ce4bf8ef7f0da2c4d97cfbbc5ed5c5569eadbc20 100644 --- a/basice2e/clients.goldoutput/client56.txt +++ b/basice2e/clients.goldoutput/client56.txt @@ -1,2 +1,82 @@ -Message from 4, Jim Received: Hello, 5 -Sending Message to 6, Steph: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Received 20 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Sent: Hello, 6 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Message received: Hello, 5 +Received 20 diff --git a/basice2e/clients.goldoutput/client67.txt b/basice2e/clients.goldoutput/client67.txt index 37a4dcdaf58be9e54e1e783937edae2521d579ca..6e6f04184108bb53758583ff3c006f6fd2d8c663 100644 --- a/basice2e/clients.goldoutput/client67.txt +++ b/basice2e/clients.goldoutput/client67.txt @@ -1,2 +1,82 @@ -Message from 5, Ben Received: Hello, 6 -Sending Message to 7, Rick: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Received 20 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Sent: Hello, 7 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Message received: Hello, 6 +Received 20 diff --git a/basice2e/clients.goldoutput/client74.txt b/basice2e/clients.goldoutput/client74.txt index 05887b80e1b4ea50b11fbac9fd130315a3e8da2d..767b3dc41cea6a28bc5fc6967fa7cb24815ecba0 100644 --- a/basice2e/clients.goldoutput/client74.txt +++ b/basice2e/clients.goldoutput/client74.txt @@ -1,2 +1,82 @@ -Message from 6, Steph Received: Hello, 7 -Sending Message to 4, Jim: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Received 20 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Sent: Hello, 4 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Message received: Hello, 7 +Received 20 diff --git a/basice2e/clients.goldoutput/client9.txt b/basice2e/clients.goldoutput/client9.txt index bebfdcb7da0b330ecfd01880d965332072c0520e..018fcbb73b8cd9b7ad335206d7a5028b728ebe8a 100644 --- a/basice2e/clients.goldoutput/client9.txt +++ b/basice2e/clients.goldoutput/client9.txt @@ -1,2 +1,21 @@ -Message from 9, Niamh Received: Hi -Sending Message to 9, Niamh: Hi +WARNING: unsafe channel creation enabled +Adding +Sent: Hi 9->9, with E2E Encryption +Sent: Hi 9->9, with E2E Encryption +Message received: Hi 9->9, with E2E Encryption +Message received: Hi 9->9, with E2E Encryption +Received 2 +Sent: Hi 9->9, with E2E Encryption +Sent: Hi 9->9, with E2E Encryption +Message received: Hi 9->9, with E2E Encryption +Message received: Hi 9->9, with E2E Encryption +Received 2 +WARNING: unsafe channel creation enabled +Adding +Sent: Hi 9->18, with E2E Encryption +Sent: Hi 9->18, with E2E Encryption +Sent: Hi 9->18, with E2E Encryption +Message received: Hi 18->9, with E2E Encryption +Message received: Hi 18->9, with E2E Encryption +Message received: Hi 18->9, with E2E Encryption +Received 3 diff --git a/basice2e/clients.goldoutput/client9_rekey.txt b/basice2e/clients.goldoutput/client9_rekey.txt new file mode 100644 index 0000000000000000000000000000000000000000..898db886c2b92701d5181fe2027213f3dc9c6d50 --- /dev/null +++ b/basice2e/clients.goldoutput/client9_rekey.txt @@ -0,0 +1,41 @@ +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Sent: Hello, 18, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Message received: Hello, 9, with E2E Encryption +Received 20 diff --git a/basice2e/gateway-1.yaml b/basice2e/gateway-1.yaml index 33464f45660af83626fbfffa8a5196436246d3e6..68f4d55fd700508da80cf16a613b879631fdaedd 100644 --- a/basice2e/gateway-1.yaml +++ b/basice2e/gateway-1.yaml @@ -14,10 +14,15 @@ logLevel: 1 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:50000" -# The listening address of this gateway -localAddress: "127.0.0.1" +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 8440 +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + # The number of seconds a message should remain in the globals before being # deleted from the user's message queue messageTimeout: "1800s" @@ -35,8 +40,6 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" -IP_Whitelist_File: "whitelist.txt" -User_Whitelist_File: "whitelist.txt" - +devMode: true # === END YAML diff --git a/basice2e/gateway-2.yaml b/basice2e/gateway-2.yaml index 2af19d873aa98bc22cae51b2bbbe4688b3fcf802..d01a93fc8a21640425c4b816e0ef5ecf44d7b9cd 100644 --- a/basice2e/gateway-2.yaml +++ b/basice2e/gateway-2.yaml @@ -14,10 +14,15 @@ logLevel: 1 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:50001" -# The listening address of this gateway -localAddress: "127.0.0.1" +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 8441 +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + # The number of seconds a message should remain in the globals before being # deleted from the user's message queue messageTimeout: "1800s" @@ -35,8 +40,6 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" -IP_Whitelist_File: "whitelist.txt" -User_Whitelist_File: "whitelist.txt" - +devMode: true # === END YAML diff --git a/basice2e/gateway-3.yaml b/basice2e/gateway-3.yaml index 4d2da33b4cca9f3812a54b385773577d8b95beee..954dbefd85d78b36b89c9e7f5b6a71777f14128f 100644 --- a/basice2e/gateway-3.yaml +++ b/basice2e/gateway-3.yaml @@ -14,10 +14,15 @@ logLevel: 1 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:50002" -# The listening address of this gateway -localAddress: "127.0.0.1" +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 8442 +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + # The number of seconds a message should remain in the globals before being # deleted from the user's message queue messageTimeout: "1800s" @@ -35,8 +40,6 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" -IP_Whitelist_File: "whitelist.txt" -User_Whitelist_File: "whitelist.txt" - +devMode: true # === END YAML diff --git a/basice2e/gateway-4.yaml b/basice2e/gateway-4.yaml index 76a93bc2cee839676f17120c06425d56b9379968..8a2e2d1091c6243cad3270598a748d179e530216 100644 --- a/basice2e/gateway-4.yaml +++ b/basice2e/gateway-4.yaml @@ -14,10 +14,15 @@ logLevel: 1 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:50003" -# The listening address of this gateway -localAddress: "127.0.0.1" +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 8443 +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + # The number of seconds a message should remain in the globals before being # deleted from the user's message queue messageTimeout: "1800s" @@ -35,7 +40,6 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" -IP_Whitelist_File: "whitelist.txt" -User_Whitelist_File: "whitelist.txt" +devMode: true # === END YAML diff --git a/basice2e/gateway-5.yaml b/basice2e/gateway-5.yaml index 7a309523649345e9e2d04477daafab0abccf43da..079566e3d4f94756d156b40fa0f3a285c42bb581 100644 --- a/basice2e/gateway-5.yaml +++ b/basice2e/gateway-5.yaml @@ -14,10 +14,15 @@ logLevel: 1 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:50004" -# The listening address of this gateway -localAddress: "127.0.0.1" +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 8444 +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + # The number of seconds a message should remain in the globals before being # deleted from the user's message queue messageTimeout: "1800s" @@ -35,7 +40,6 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" -IP_Whitelist_File: "whitelist.txt" -User_Whitelist_File: "whitelist.txt" +devMode: true # === END YAML diff --git a/basice2e/ndf.json b/basice2e/ndf.json index 354a5a611c543f9e92985e325b2b544a3eaee50d..d071408e3c5e8c00fd0ab81e5ae5e05bef8a6fc7 100644 --- a/basice2e/ndf.json +++ b/basice2e/ndf.json @@ -1 +1 @@ -{"Timestamp":"2020-05-05T08:54:40.950942015-07:00","Gateways":[{"Address":"127.0.0.1:8442","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Address":"127.0.0.1:8443","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Address":"127.0.0.1:8444","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Address":"127.0.0.1:8440","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Address":"127.0.0.1:8441","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"}],"Nodes":[{"Id":"KdsAJU7uQHqZku9Wst3HzBaR6512KvHMetC/UTNun30=","Address":"127.0.0.1:50002","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"5JQbWB4TzkZuxBfnGYXSfOId6N7YSWhOUZiyajG++4E=","Address":"127.0.0.1:50003","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"IgRM82Dm1VV3joyz34iZWD2VYjAZZsyVaqK7ryqQ1kg=","Address":"127.0.0.1:50004","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"YWIOZXQPaO1bqIRuVWJWuVVR1sb2IDDC6Mt3Qfckj0w=","Address":"127.0.0.1:50000","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"aLG6c+hIYLdlMERZIuhjA237BcazQaaqhfqCJYTfLkE=","Address":"127.0.0.1:50001","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"}],"Registration":{"Address":":18000","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},"Notification":{"Address":"","Tls_certificate":""},"Udb":{"Id":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM="},"E2e":{"Prime":"E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D49413394C049B7A8ACCEDC298708F121951D9CF920EC5D146727AA4AE535B0922C688B55B3DD2AEDF6C01C94764DAB937935AA83BE36E67760713AB44A6337C20E7861575E745D31F8B9E9AD8412118C62A3E2E29DF46B0864D0C951C394A5CBBDC6ADC718DD2A3E041023DBB5AB23EBB4742DE9C1687B5B34FA48C3521632C4A530E8FFB1BC51DADDF453B0B2717C2BC6669ED76B4BDD5C9FF558E88F26E5785302BEDBCA23EAC5ACE92096EE8A60642FB61E8F3D24990B8CB12EE448EEF78E184C7242DD161C7738F32BF29A841698978825B4111B4BC3E1E198455095958333D776D8B2BEEED3A1A1A221A6E37E664A64B83981C46FFDDC1A45E3D5211AAF8BFBC072768C4F50D7D7803D2D4F278DE8014A47323631D7E064DE81C0C6BFA43EF0E6998860F1390B5D3FEACAF1696015CB79C3F9C2D93D961120CD0E5F12CBB687EAB045241F96789C38E89D796138E6319BE62E35D87B1048CA28BE389B575E994DCA755471584A09EC723742DC35873847AEF49F66E43873","Small_prime":"","Generator":"2"},"Cmix":{"Prime":"F6FAC7E480EE519354C058BF856AEBDC43AD60141BAD5573910476D030A869979A7E23F5FC006B6CE1B1D7CDA849BDE46A145F80EE97C21AA2154FA3A5CF25C75E225C6F3384D3C0C6BEF5061B87E8D583BEFDF790ECD351F6D2B645E26904DE3F8A9861CC3EAD0AA40BD7C09C1F5F655A9E7BA7986B92B73FD9A6A69F54EFC92AC7E21D15C9B85A76084D1EEFBC4781B91E231E9CE5F007BC75A8656CBD98E282671C08A5400C4E4D039DE5FD63AA89A618C5668256B12672C66082F0348B6204DD0ADE58532C967D055A5D2C34C43DF9998820B5DFC4C49C6820191CB3EC81062AA51E23CEEA9A37AB523B24C0E93B440FDC17A50B219AB0D373014C25EE8F","Small_prime":"","Generator":"B22FDF91EE6BA01BDE4969C1A986EA1F81C4A1795921403F3437D681D05E95167C2F6414CCB74AC8D6B3BA8C0E85C7E4DEB0E8B5256D37BC5C21C8BE068F5342858AFF2FC7FF2644EBED8B10271941C74C86CCD71AA6D2D98E4C8C70875044900F842998037A7DFB9BC63BAF1BC2800E73AF9615E4F5B869D4C6DE6E5F48FACE9CA594CC5D228CB7F763A0AD6BF6ED78B27F902D9ADA38A1FCD7D09E398CE377BB15A459044D3B8541DC6D8049B66AE1662682254E69FAD31CA0016251D0522EF8FE587A3F6E3AB1E5F9D8C2998874ABAB205217E95B234A7D3E69713B884918ADB57360B5DE97336C7DC2EB8A3FEFB0C4290E7A92FF5758529AC45273135427"}} \ No newline at end of file +{"Timestamp":"2020-11-06T23:42:48.285894514Z","Gateways":[{"Id":"yR2Q2a1aTyjJGlWLgCJBRZM3STucxImzymLFhqjmbdAB","Address":"127.0.0.1:8440","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"ST0mWTppJbptus6vqtoXgRqRsQBbEdwWGauo8tHfk68B","Address":"127.0.0.1:8441","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"0ktZVjsQlnkux6JwULnDxb/tgPKahriqaHJFLMoNC4UB","Address":"127.0.0.1:8442","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"VQpiRcigVHpT6wYshkAiZQFZaSfBA2+I8KHU50pmvZUB","Address":"127.0.0.1:8443","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"u8bTVoiymerMe5fiP7mWqT6dbqEBg6Nk/koLBb+RnOwB","Address":"127.0.0.1:8444","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"}],"Nodes":[{"Id":"yR2Q2a1aTyjJGlWLgCJBRZM3STucxImzymLFhqjmbdAC","Address":"127.0.0.1:50000","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"ST0mWTppJbptus6vqtoXgRqRsQBbEdwWGauo8tHfk68C","Address":"127.0.0.1:50001","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"0ktZVjsQlnkux6JwULnDxb/tgPKahriqaHJFLMoNC4UC","Address":"127.0.0.1:50002","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"VQpiRcigVHpT6wYshkAiZQFZaSfBA2+I8KHU50pmvZUC","Address":"127.0.0.1:50003","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},{"Id":"u8bTVoiymerMe5fiP7mWqT6dbqEBg6Nk/koLBb+RnOwC","Address":"127.0.0.1:50004","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"}],"Registration":{"Address":":18000","Tls_certificate":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},"Notification":{"Address":"","Tls_certificate":""},"Udb":{"Id":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM=","Public_key_PEM":"-----BEGIN CERTIFICATE-----\nMIIDbDCCAlSgAwIBAgIJAOUNtZneIYECMA0GCSqGSIb3DQEBBQUAMGgxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQx\nGzAZBgNVBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJp\ncDAeFw0xOTAzMDUxODM1NDNaFw0yOTAzMDIxODM1NDNaMGgxCzAJBgNVBAYTAlVT\nMRMwEQYDVQQIDApDYWxpZm9ybmlhMRIwEAYDVQQHDAlDbGFyZW1vbnQxGzAZBgNV\nBAoMElByaXZhdGVncml0eSBDb3JwLjETMBEGA1UEAwwKKi5jbWl4LnJpcDCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPP0WyVkfZA/CEd2DgKpcudn0oDh\nDwsjmx8LBDWsUgQzyLrFiVigfUmUefknUH3dTJjmiJtGqLsayCnWdqWLHPJYvFfs\nWYW0IGF93UG/4N5UAWO4okC3CYgKSi4ekpfw2zgZq0gmbzTnXcHF9gfmQ7jJUKSE\ntJPSNzXq+PZeJTC9zJAb4Lj8QzH18rDM8DaL2y1ns0Y2Hu0edBFn/OqavBJKb/uA\nm3AEjqeOhC7EQUjVamWlTBPt40+B/6aFJX5BYm2JFkRsGBIyBVL46MvC02MgzTT9\nbJIJfwqmBaTruwemNgzGu7Jk03hqqS1TUEvSI6/x8bVoba3orcKkf9HsDjECAwEA\nAaMZMBcwFQYDVR0RBA4wDIIKKi5jbWl4LnJpcDANBgkqhkiG9w0BAQUFAAOCAQEA\nneUocN4AbcQAC1+b3To8u5UGdaGxhcGyZBlAoenRVdjXK3lTjsMdMWb4QctgNfIf\nU/zuUn2mxTmF/ekP0gCCgtleZr9+DYKU5hlXk8K10uKxGD6EvoiXZzlfeUuotgp2\nqvI3ysOm/hvCfyEkqhfHtbxjV7j7v7eQFPbvNaXbLa0yr4C4vMK/Z09Ui9JrZ/Z4\ncyIkxfC6/rOqAirSdIp09EGiw7GM8guHyggE4IiZrDslT8V3xIl985cbCxSxeW1R\ntgH4rdEXuVe9+31oJhmXOE9ux2jCop9tEJMgWg7HStrJ5plPbb+HmjoX3nBO04E5\n6m52PyzMNV+2N21IPppKwA==\n-----END CERTIFICATE-----\n"},"E2e":{"Prime":"E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D49413394C049B7A8ACCEDC298708F121951D9CF920EC5D146727AA4AE535B0922C688B55B3DD2AEDF6C01C94764DAB937935AA83BE36E67760713AB44A6337C20E7861575E745D31F8B9E9AD8412118C62A3E2E29DF46B0864D0C951C394A5CBBDC6ADC718DD2A3E041023DBB5AB23EBB4742DE9C1687B5B34FA48C3521632C4A530E8FFB1BC51DADDF453B0B2717C2BC6669ED76B4BDD5C9FF558E88F26E5785302BEDBCA23EAC5ACE92096EE8A60642FB61E8F3D24990B8CB12EE448EEF78E184C7242DD161C7738F32BF29A841698978825B4111B4BC3E1E198455095958333D776D8B2BEEED3A1A1A221A6E37E664A64B83981C46FFDDC1A45E3D5211AAF8BFBC072768C4F50D7D7803D2D4F278DE8014A47323631D7E064DE81C0C6BFA43EF0E6998860F1390B5D3FEACAF1696015CB79C3F9C2D93D961120CD0E5F12CBB687EAB045241F96789C38E89D796138E6319BE62E35D87B1048CA28BE389B575E994DCA755471584A09EC723742DC35873847AEF49F66E43873","Small_prime":"","Generator":"2"},"Cmix":{"Prime":"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF","Small_prime":"","Generator":"2"}} \ No newline at end of file diff --git a/basice2e/permissioning.yaml b/basice2e/permissioning.yaml index ee320426c223638b385bc6865e02710c382cc4ec..c6b3a849e51098c80bd8661584a45467536f86c9 100644 --- a/basice2e/permissioning.yaml +++ b/basice2e/permissioning.yaml @@ -3,13 +3,11 @@ # ================================== # Log message level -logLevel: 2 +logLevel: 1 # Path to log file logPath: "results/permissioning.log" -ndfOutputPath: "results/ndf.json" - # The listening port of this server port: 18000 @@ -21,10 +19,24 @@ dbAddress: "0.0.0.0:6969" minimumNodes: 5 -minGatewayVersion: "1.1.0" -minServerVersion: "1.0.0" +minGatewayVersion: "2.0.0" +minServerVersion: "2.0.0" +minClientVersion: "2.0.0" nodeMetricInterval: 3 +disableGatewayPing: true + +# Disable pruning of NDF for offline nodes +# if set to false, network will sleep for five minutes on start +disableNDFPruning: true + +# "Location of the user discovery contact file. +udContactPath: "results/udContact.bin" +udbAddress: "127.0.0.1:18001" +# Path to UDB public key PEM file +udbPubKeyPemPath: "../keys/cmix.rip.crt" + + clientRegCodes: - "FFFF" - "GGGG" @@ -44,27 +56,21 @@ certPath: "../keys/cmix.rip.crt" ndfOutputPath: "results/permissions-ndfoutput.json" # === REQUIRED FOR ENABLING TLS === -# Path to the private key file -keyPath: "../keys/cmix.rip.key" -# Path to the certificate file -certPath: "../keys/cmix.rip.crt" +# Path to the UDB certificate file +udbCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" -udbID: 3 - # Time interval (in minutes) in which the database is # checked for banned nodes BanTrackerInterval: "3" groups: cmix: - prime: "F6FAC7E480EE519354C058BF856AEBDC43AD60141BAD5573910476D030A869979A7E23F5FC006B6CE1B1D7CDA849BDE46A145F80EE97C21AA2154FA3A5CF25C75E225C6F3384D3C0C6BEF5061B87E8D583BEFDF790ECD351F6D2B645E26904DE3F8A9861CC3EAD0AA40BD7C09C1F5F655A9E7BA7986B92B73FD9A6A69F54EFC92AC7E21D15C9B85A76084D1EEFBC4781B91E231E9CE5F007BC75A8656CBD98E282671C08A5400C4E4D039DE5FD63AA89A618C5668256B12672C66082F0348B6204DD0ADE58532C967D055A5D2C34C43DF9998820B5DFC4C49C6820191CB3EC81062AA51E23CEEA9A37AB523B24C0E93B440FDC17A50B219AB0D373014C25EE8F" - smallprime: "D6B35AA395D9287A5530C474D776EA2FCF5B815E89C9DB4C7BB7A9EFB8F3F34B" - generator: "B22FDF91EE6BA01BDE4969C1A986EA1F81C4A1795921403F3437D681D05E95167C2F6414CCB74AC8D6B3BA8C0E85C7E4DEB0E8B5256D37BC5C21C8BE068F5342858AFF2FC7FF2644EBED8B10271941C74C86CCD71AA6D2D98E4C8C70875044900F842998037A7DFB9BC63BAF1BC2800E73AF9615E4F5B869D4C6DE6E5F48FACE9CA594CC5D228CB7F763A0AD6BF6ED78B27F902D9ADA38A1FCD7D09E398CE377BB15A459044D3B8541DC6D8049B66AE1662682254E69FAD31CA0016251D0522EF8FE587A3F6E3AB1E5F9D8C2998874ABAB205217E95B234A7D3E69713B884918ADB57360B5DE97336C7DC2EB8A3FEFB0C4290E7A92FF5758529AC45273135427" + prime: "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF" + generator: "2" e2e: prime: "E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D49413394C049B7A8ACCEDC298708F121951D9CF920EC5D146727AA4AE535B0922C688B55B3DD2AEDF6C01C94764DAB937935AA83BE36E67760713AB44A6337C20E7861575E745D31F8B9E9AD8412118C62A3E2E29DF46B0864D0C951C394A5CBBDC6ADC718DD2A3E041023DBB5AB23EBB4742DE9C1687B5B34FA48C3521632C4A530E8FFB1BC51DADDF453B0B2717C2BC6669ED76B4BDD5C9FF558E88F26E5785302BEDBCA23EAC5ACE92096EE8A60642FB61E8F3D24990B8CB12EE448EEF78E184C7242DD161C7738F32BF29A841698978825B4111B4BC3E1E198455095958333D776D8B2BEEED3A1A1A221A6E37E664A64B83981C46FFDDC1A45E3D5211AAF8BFBC072768C4F50D7D7803D2D4F278DE8014A47323631D7E064DE81C0C6BFA43EF0E6998860F1390B5D3FEACAF1696015CB79C3F9C2D93D961120CD0E5F12CBB687EAB045241F96789C38E89D796138E6319BE62E35D87B1048CA28BE389B575E994DCA755471584A09EC723742DC35873847AEF49F66E43873" - smallprime: "71774C1E818EE0EDB78D3D33EF874D472AB0EDC746A4A099CA6024DBD456676E14C3847890CA8ECE7C90762E8A3393D525729AD849163445AAD9EE9576FB600E4A3B26D5C9BC9AD541DF1B733BB0389D5A25319BE1073C30ABAF3A2E98FC5CF4D6C20908C63151F1714EFA3584326864A8E1CA52E5DEE356E38C6E951F020811EDDAD591F5DA3A16F4E0B43DAD9A7D2461A90B19625298747FD8DE28ED6EFA29D85938BE15E3334F6BB5A5EEAE4FFAAC74479372BC29815F6DE511F562D674904B7745303217DB0F479E924C85C658977224777BC70C2639216E8B0E3B9C7995F94D420B4C4BC412DA088DA5E1F0F0CC22A84ACAC199EBBB6C595F7769D0D0D110D371BF3325325C1CC0E237FEEE0D22F1EA908D57C5FDE0393B4627A86BEBC01E96A793C6F400A523991B18EBF0326F40E0635FD21F78734CC430789C85AE9FF56578B4B00AE5BCE1FCE16C9ECB089066872F8965DB43F55822920FCB3C4E1C744EBCB09C7318CDF3171AEC3D882465145F1C4DABAF4CA6E53AAA38AC2504F6391BA16E1AC39C23D77A4FB3721C39" generator: "2" # Selection of scheduling algorithem to use. Options are: @@ -73,9 +79,12 @@ groups: # secure - Schedules new teams randomly, has apropreate buffers to ensure unpredictability, designed for BetaNet schedulingAlgorithm: "simple" -# Path to file with config for scheduling algorithem within the user directory +# Path to file with config for scheduling algorithm within the user directory schedulingConfigPath: "registration.json" # Path to JSON file with list of Node registration codes (in order of network # placement) RegCodesFilePath: "regCodes.json" + +# Set address space size for ephemeral IDs +addressSpace: 32 diff --git a/basice2e/registration.json b/basice2e/registration.json index e385b2c0265528c244b236b6fd32ee2d8f0eb99a..676f2d1a2ea2f72c6922e020f1b0d0d42203d3b2 100644 --- a/basice2e/registration.json +++ b/basice2e/registration.json @@ -1,9 +1,9 @@ { "TeamSize": 5, "BatchSize": 32, - "RandomOrdering": false, - "MinimumDelay": 60, - "RealtimeDelay": 120, + "RandomOrdering": true, + "MinimumDelay": 1000, + "RealtimeDelay": 5000, "Threshold": 3, "NodeCleanUpInterval": 3, "ResourceQueueTimeout": 300000, diff --git a/basice2e/run.sh b/basice2e/run.sh index 4fa4a557dbd5682ce0ecf3c286579ec9079beaf6..d4c99bf51b9849609d665ba8ba1b814584740a68 100755 --- a/basice2e/run.sh +++ b/basice2e/run.sh @@ -1,115 +1,171 @@ -#!/bin/sh +#!/bin/bash # NOTE: This is verbose on purpose. set -e -rm -fr results || true -rm blob* || true +rm -fr results.bak || true +mv results results.bak || rm -fr results || true +rm -fr blob* || true +rm *-contact.json || true rm server-5.qdstrm || true rm server-5.qdrep || true mkdir -p .elixxir +if [ $# -gt 1 ] +then + echo "usage: $0 [permsip:port]" + exit +fi + + +PERMISSIONING=$1 + + + #export GRPC_GO_LOG_VERBOSITY_LEVEL=99 #export GRPC_GO_LOG_SEVERITY_LEVEL=info SERVERLOGS=results/servers GATEWAYLOGS=results/gateways CLIENTOUT=results/clients -DUMMYOUT=results/dummy-console.txt UDBOUT=results/udb-console.txt CLIENTCLEAN=results/clients-cleaned -CLIENTOPTS="-v -n ndf.json --skipNDFVerification -P dummypassword " +CLIENTOPTS="--password hello --ndf results/ndf.json --waitTimeout 90 --unsafe-channel-creation -v 2" +CLIENTUDOPTS="--password hello --ndf results/ndf.json -v 2" +CLIENTSINGLEOPTS="--password hello --ndf results/ndf.json -v 2" mkdir -p $SERVERLOGS mkdir -p $GATEWAYLOGS mkdir -p $CLIENTOUT mkdir -p $CLIENTCLEAN -echo "STARTING SERVERS..." +if [ "$PERMISSIONING" == "" ] +then + echo "STARTING SERVERS..." -PERMCMD="../bin/permissioning -c permissioning.yaml " -$PERMCMD > $SERVERLOGS/permissioning-console.txt 2>&1 & -PIDVAL=$! -echo "$PERMCMD -- $PIDVAL" - -for SERVERID in $(seq 5 -1 1) -do - IDX=$(($SERVERID - 1)) - SERVERCMD="../bin/server --config server-$SERVERID.yaml" - if [ $SERVERID -eq 5 ] && [ -n "$NSYSENABLED" ] - then - SERVERCMD="nsys profile --session-new=gputest --trace=cuda -o server-$SERVERID $SERVERCMD" - fi - $SERVERCMD > $SERVERLOGS/server-$SERVERID-console.txt 2>&1 & - PIDVAL=$! - echo "$SERVERCMD -- $PIDVAL" -done - -# Start gateways -for GWID in $(seq 5 -1 1) -do - IDX=$(($GWID - 1)) - GATEWAYCMD="../bin/gateway --config gateway-$GWID.yaml" - $GATEWAYCMD > $GATEWAYLOGS/gateway-$GWID-console.txt 2>&1 & + UDBID=$(../bin/client init -s results/udbsession -l results/udbidgen.log --password hello --ndf ndf.json --writeContact results/udContact.bin) + echo "GENERATED UDB ID: $UDBID" + + + PERMCMD="../bin/permissioning --logLevel 2 -c permissioning.yaml " + $PERMCMD > results/permissioning-console.txt 2>&1 & PIDVAL=$! - echo "$GATEWAYCMD -- $PIDVAL" -done - -jobs -p > results/serverpids - -finish() { - echo "STOPPING SERVERS AND GATEWAYS..." - if [ -n "$NSYSENABLED" ] - then - nsys stop --session=gputest - fi - # NOTE: jobs -p doesn't work in a signal handler - for job in $(cat results/serverpids) + echo "$PERMCMD -- $PIDVAL" + + for SERVERID in $(seq 5 -1 1) do - echo "KILLING $job" - kill $job || true + IDX=$(($SERVERID - 1)) + SERVERCMD="../bin/server --config server-$SERVERID.yaml" + if [ $SERVERID -eq 5 ] && [ -n "$NSYSENABLED" ] + then + SERVERCMD="nsys profile --session-new=gputest --trace=cuda -o server-$SERVERID $SERVERCMD" + fi + $SERVERCMD > $SERVERLOGS/server-$SERVERID-console.txt 2>&1 & + PIDVAL=$! + echo "$SERVERCMD -- $PIDVAL" done - #tail $SERVERLOGS/* - #tail $CLIENTCLEAN/* - #diff -ruN clients.goldoutput $CLIENTCLEAN -} -trap finish EXIT -trap finish INT - -# Sleeps can die in a fire on the sun, we wait for the servers to start running -# rounds -rm rid.txt || true -touch rid.txt -cnt=0 -echo -n "Waiting for a round to run" -while [ ! -s rid.txt ] && [ $cnt -lt 120 ]; do - sleep 1 - grep -a "RID 1 ReceiveFinishRealtime END" results/servers/server-5.log > rid.txt || true - cnt=$(($cnt + 1)) - echo -n "." -done - -# Start a user discovery bot server -echo "STARTING UDB..." -UDBCMD="../bin/udb --logLevel 3 --config udb.yaml -l 1" -$UDBCMD >> $UDBOUT 2>&1 & + # Start gateways + for GWID in $(seq 5 -1 1) + do + IDX=$(($GWID - 1)) + GATEWAYCMD="../bin/gateway --logLevel 2 --config gateway-$GWID.yaml" + $GATEWAYCMD > $GATEWAYLOGS/gateway-$GWID-console.txt 2>&1 & + PIDVAL=$! + echo "$GATEWAYCMD -- $PIDVAL" + done + + jobs -p > results/serverpids + + finish() { + echo "STOPPING SERVERS AND GATEWAYS..." + if [ -n "$NSYSENABLED" ] + then + nsys stop --session=gputest + fi + # NOTE: jobs -p doesn't work in a signal handler + for job in $(cat results/serverpids) + do + echo "KILLING $job" + kill $job || true + done + + sleep 5 + + for job in $(cat results/serverpids) + do + echo "KILL -9 $job" + kill -9 $job || true + done + #tail $SERVERLOGS/* + #tail $CLIENTCLEAN/* + #diff -aruN clients.goldoutput $CLIENTCLEAN + } + + trap finish EXIT + trap finish INT + + # Sleeps can die in a fire on the sun, we wait for the servers to start running + # rounds + rm rid.txt || true + touch rid.txt + cnt=0 + echo -n "Waiting for a round to run" + while [ ! -s rid.txt ] && [ $cnt -lt 120 ]; do + sleep 1 + grep -a "RID 1 ReceiveFinishRealtime END" results/servers/server-5.log > rid.txt || true + cnt=$(($cnt + 1)) + echo -n "." + done + + # Start a user discovery bot server + echo "STARTING UDB..." + UDBCMD="../bin/udb --logLevel 3 --config udb.yaml -l 1" + $UDBCMD >> $UDBOUT 2>&1 & + PIDVAL=$! + echo $PIDVAL >> results/serverpids + echo "$UDBCMD -- $PIDVAL" + rm rid.txt || true + while [ ! -s rid.txt ] && [ $cnt -lt 30 ]; do + sleep 1 + grep -a "Sending Poll message" results/udb-console.txt > rid.txt || true + cnt=$(($cnt + 1)) + echo -n "." + done + + echo "localhost:18000" > results/permserver.txt + + echo "DONE LETS DO STUFF" + +else + echo "Connecting to network defined at $PERMISSIONING" + echo $PERMISSIONING > results/permserver.txt +fi + +echo "DOWNLOADING TLS Cert..." +openssl s_client -showcerts -connect $(cat results/permserver.txt) < /dev/null 2>&1 | openssl x509 -outform PEM > results/permcert.pem +echo "DOWNLOADING NDF..." +CLIENTCMD="../bin/client getndf --permhost $(cat results/permserver.txt) --cert results/permcert.pem" +eval $CLIENTCMD >> results/ndf.json 2>&1 & PIDVAL=$! -echo $PIDVAL >> results/serverpids -echo "$UDBCMD -- $PIDVAL" +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL + +cat results/ndf.json | jq . | head -5 + +file results/ndf.json -rm rid.txt || true -while [ ! -s rid.txt ] && [ $cnt -lt 30 ]; do - sleep 1 - grep -a "Gateway Polling for Message Reception Begun" results/udb-console.txt > rid.txt || true - cnt=$(($cnt + 1)) - echo -n "." -done +if [ ! -s results/ndf.json ] +then + echo "results/ndf.json is empty, cannot proceed" + exit -1 +fi -sleep 5 + +echo "RUNNING CLIENTS..." runclients() { echo "Starting clients..." @@ -122,13 +178,13 @@ runclients() { # run multiple clients with the same user id so we need # updates to make that work. # for nid in 1 2 3 4; do - for nid in 1 do nid=$(((($cid + 1) % 4) + 4)) eval NICK=\${NICK${cid}} # Send a regular message - CLIENTCMD="timeout 120s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client$cid$nid.log -f blob$cid -E email$cid@email.com -i $cid -d $nid -m \"Hello, $nid\"" + mkdir -p blob$cid + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client$cid$nid.log -s blob$cid/blob$cid --unsafe --sendid $cid --destid $nid --sendCount 20 --receiveCount 20 -m \"Hello, $nid\"" eval $CLIENTCMD >> $CLIENTOUT/client$cid$nid.txt 2>&1 & PIDVAL=$! eval CLIENTS${CTR}=$PIDVAL @@ -145,121 +201,304 @@ runclients() { done } -echo "RUNNING BASIC CLIENTS..." -runclients -echo "RUNNING BASIC CLIENTS (2nd time)..." -runclients -# Register two users and then do UDB search on each other -echo "REGISTERING AND SEARCHING WITH PRECANNED USERS..." -CLIENTCMD="timeout 90s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client9.log -f blob9 -E niamh@elixxir.io -i 9 -d 9 -m \"Hi\"" -eval $CLIENTCMD >> $CLIENTOUT/client9.txt 2>&1 & +if [ "$PERMISSIONING" == "" ] +then + + echo "RUNNING BASIC CLIENTS..." + runclients + echo "RUNNING BASIC CLIENTS (2nd time)..." + runclients + + # Send E2E messages between a single user + mkdir -p blob9 + mkdir -p blob18 + echo "TEST E2E WITH PRECANNED USERS..." + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client9.log --sendDelay 1000 --sendCount 2 --receiveCount 2 -s blob9/blob9 --sendid 9 --destid 9 -m \"Hi 9->9, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client9.txt 2>&1 & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client9.log --sendDelay 1000 --sendCount 2 --receiveCount 2 -s blob9/blob9 --sendid 9 --destid 9 -m \"Hi 9->9, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client9.txt 2>&1 & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL + + # Send E2E messages between two users + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client9.log --sendDelay 1000 --sendCount 3 --receiveCount 3 -s blob9/blob9 --sendid 9 --destid 18 -m \"Hi 9->18, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client9.txt 2>&1 & + PIDVAL1=$! + echo "$CLIENTCMD -- $PIDVAL" + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client18.log --sendDelay 1000 --sendCount 3 --receiveCount 3 -s blob18/blob18 --sendid 18 --destid 9 -m \"Hi 18->9, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client18.txt 2>&1 & + PIDVAL2=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL1 + wait $PIDVAL2 + + + # Send multiple E2E encrypted messages between users that discovered each other + echo "SENDING MESSAGES TO PRECANNED USERS AND FORCING A REKEY..." + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client18_rekey.log --sendCount 20 --receiveCount 20 --destid 9 -s blob18/blob18 -m \"Hello, 9, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client18_rekey.txt 2>&1 || true & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client9_rekey.log --sendCount 20 --receiveCount 20 --destid 18 -s blob9/blob9 -m \"Hello, 18, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client9_rekey.txt 2>&1 || true & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL || true + + echo "FORCING HISTORICAL ROUNDS... (NON-E2E, PRECAN)" + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS --forceHistoricalRounds --unsafe -l $CLIENTOUT/client35.log -s blob35 --sendid 1 --destid 2 --sendCount 5 --receiveCount 5 -m \"Hello from 1, without E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client35.txt || true & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS --forceHistoricalRounds --unsafe -l $CLIENTOUT/client36.log -s blob36 --sendid 2 --destid 1 --sendCount 5 --receiveCount 5 -m \"Hello from 2, without E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client36.txt || true & + PIDVAL2=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL + wait $PIDVAL2 + +fi + +# Non-precanned E2E user messaging +echo "SENDING E2E MESSAGES TO NEW USERS..." +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --writeContact $CLIENTOUT/rick42-contact.bin --unsafe -m \"Hello from Rick42 to myself, without E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL -CLIENTCMD="timeout 90s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client18.log -f blob18 -E bernardo@elixxir.io -i 18 -d 9 -s \"niamh@elixxir.io\" --keyParams 3,4,2,1.0,2" -eval $CLIENTCMD >> $CLIENTOUT/client18.txt 2>&1 & +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -s blob43 --writeContact $CLIENTOUT/ben43-contact.bin --destfile $CLIENTOUT/rick42-contact.bin --sendCount 0 --receiveCount 0 -m \"Hello from Ben43, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL2 +TMPID=$(cat $CLIENTOUT/client42.log | grep "User\:" | awk -F' ' '{print $5}') +RICKID=${TMPID} +echo "RICK ID: $RICKID" +TMPID=$(cat $CLIENTOUT/client43.log | grep "User\:" | awk -F' ' '{print $5}') +BENID=${TMPID} +echo "BEN ID: $BENID" + +# Client 42 will now wait for client 43's E2E Auth channel request and not do +# anything else. +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --destid b64:$RICKID --sendCount 0 --receiveCount 0 --unsafe" +eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL -CLIENTCMD="timeout 90s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client9.log -f blob9 -i 9 -d 18 -s \"bernardo@elixxir.io\" --keyParams 3,4,2,1.0,2" -eval $CLIENTCMD >> $CLIENTOUT/client9.txt 2>&1 & + +# Client 43 will now wait for the confirmation. +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -s blob43 --destid b64:$BENID --sendCount 0 --receiveCount 0 --unsafe" +eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL -# Send multiple E2E encrypted messages between users that discovered each other -echo "SENDING MESSAGES TO PRECANNED USERS AND FORCING A REKEY..." -CLIENTCMD="timeout 180s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client18_rekey.log -c 20 -w 20 -i 18 -d 9 -s \"niamh@elixxir.io\" -f blob18 -m \"Hello, 9, with E2E Encryption\" --end2end" -eval $CLIENTCMD >> $CLIENTOUT/client18_rekey.txt 2>&1 || true & + +# Test destid syntax too, note wait for 11 messages to catch the message from above ^^^ +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --assume-auth-channel --destid b64:$BENID --sendCount 5 --receiveCount 5 -m \"Hello from Rick42, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" -CLIENTCMD="timeout 180s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client9_rekey.log -c 20 -w 20 -i 9 -d 18 -s \"bernardo@elixxir.io\" -f blob9 -m \"Hello, 18, with E2E Encryption\" --end2end" -eval $CLIENTCMD >> $CLIENTOUT/client9_rekey.txt 2>&1 || true & +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -s blob43 --assume-auth-channel --destid b64:$RICKID --sendCount 5 --receiveCount 5 -m \"Hello from Ben43, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL +wait $PIDVAL2 +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -s blob42 --assume-auth-channel --destid b64:$BENID --sendCount 5 --receiveCount 5 -m \"Hello from Rick42, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" -set +e -wait $PIDVAL || true - +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -s blob43 --assume-auth-channel --destid b64:$RICKID --sendCount 5 --receiveCount 5 -m \"Hello from Ben43, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL +wait $PIDVAL2 -# Register non-precanned users -echo "REGISTERING NEW USERS..." -CLIENTCMD="timeout 210s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -f blob42 -E rick42@elixxir.io -r FFFF" -eval $CLIENTCMD >> $CLIENTOUT/client42.txt & +echo "CREATING USERS for REKEY TEST..." +REKEYOPTS="--e2eMaxKeys 15 --e2eMinKeys 10 --e2eNumReKeys 5" +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS $REKEYOPTS -l $CLIENTOUT/client100.log -s blob100 --writeContact $CLIENTOUT/Jake100-contact.bin --unsafe -m \"Hello from Jake100 to myself, without E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client100.txt || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS $REKEYOPTS -l $CLIENTOUT/client101.log -s blob101 --writeContact $CLIENTOUT/Niamh101-contact.bin --destfile $CLIENTOUT/Jake100-contact.bin --sendCount 0 --receiveCount 0 -m \"Hello from Niamh101, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client101.txt || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL2 +TMPID=$(cat $CLIENTOUT/client100.log | grep "User\:" | awk -F' ' '{print $5}') +JAKEID=${TMPID} +echo "JAKE ID: $JAKEID" +TMPID=$(cat $CLIENTOUT/client101.log | grep "User\:" | awk -F' ' '{print $5}') +NIAMHID=${TMPID} +echo "NIAMH ID: $NIAMHID" + +echo "RUNNING REKEY TEST..." +# Test destid syntax too, note wait for 11 messages to catch the message from above ^^^ +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS $REKEYOPTS -l $CLIENTOUT/client100.log -s blob100 --destid b64:$NIAMHID --sendCount 20 --receiveCount 20 -m \"Hello from Jake100, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client100.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" -CLIENTCMD="timeout 210s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -f blob43 -E ben43@elixxir.io -r GGGG" -eval $CLIENTCMD >> $CLIENTOUT/client43.txt & +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS $REKEYOPTS -l $CLIENTOUT/client101.log -s blob101 --destid b64:$JAKEID --sendCount 20 --receiveCount 20 -m \"Hello from Niamh101, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client101.txt || true & PIDVAL2=$! echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL wait $PIDVAL2 -# Have each non-precanned user search for each other -echo "SEARCHING FOR NEW USERS..." -CLIENTCMD="timeout 180s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -f blob42 -s \"ben43@elixxir.io\" --keyParams 3,4,2,1.0,2" -eval $CLIENTCMD >> $CLIENTOUT/client42.txt & +# Now we are just going to exhaust all the keys we have and see if we +# use the unconfirmed channels +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS $REKEYOPTS -l $CLIENTOUT/client100.log -s blob100 --destid b64:$NIAMHID --sendCount 20 --receiveCount 0 -m \"Hello from Jake100, with E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client100.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" -CLIENTCMD="timeout 180s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -f blob43 -s \"rick42@elixxir.io\" --keyParams 3,4,2,1.0,2" -eval $CLIENTCMD >> $CLIENTOUT/client43.txt & +wait $PIDVAL +# And receive those messages sent to us +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS $REKEYOPTS -l $CLIENTOUT/client101.log -s blob101 --destid b64:$JAKEID --sendCount 0 --receiveCount 20" +eval $CLIENTCMD >> $CLIENTOUT/client101.txt || true & PIDVAL2=$! echo "$CLIENTCMD -- $PIDVAL" -wait $PIDVAL wait $PIDVAL2 -# Extract generated user name from logs -echo "EXTRACTING USER IDs FROM LOG FILES..." -TMPID=$(cat $CLIENTOUT/client42.log | grep "Successfully registered user" | awk -F' ' '{print $8}') -RICKID=${TMPID%?} # remove ! from end -TMPID=$(cat $CLIENTOUT/client43.log | grep "Successfully registered user" | awk -F' ' '{print $8}') -BENID=${TMPID%?} # remove ! from end -# Non-precanned user messaging -echo "SENDING E2E MESSAGES TO NEW USERS..." -CLIENTCMD="timeout 210s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client42.log -c 1 -w 1 --dest64 $BENID -s \"ben43@elixxir.io\" -f blob42 -m \"Hello from Rick42, with E2E Encryption\" --end2end" -eval $CLIENTCMD >> $CLIENTOUT/client42.txt || true & +echo "FORCING HISTORICAL ROUNDS..." +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS --forceHistoricalRounds --unsafe -l $CLIENTOUT/client35.log -s blob35 --sendid 1 --destid 2 --sendCount 5 --receiveCount 5 -m \"Hello from 1, without E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client35.txt || true & PIDVAL=$! echo "$CLIENTCMD -- $PIDVAL" -CLIENTCMD="timeout 210s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client43.log -c 1 -w 1 --dest64 $RICKID -s \"rick42@elixxir.io\" -f blob43 -m \"Hello from Ben43, with E2E Encryption\" --end2end" -eval $CLIENTCMD >> $CLIENTOUT/client43.txt || true & +CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS --forceHistoricalRounds --unsafe -l $CLIENTOUT/client36.log -s blob36 --sendid 2 --destid 1 --sendCount 5 --receiveCount 5 -m \"Hello from 2, without E2E Encryption\"" +eval $CLIENTCMD >> $CLIENTOUT/client36.txt || true & PIDVAL2=$! echo "$CLIENTCMD -- $PIDVAL" wait $PIDVAL wait $PIDVAL2 -cp $CLIENTOUT/*.txt $CLIENTCLEAN/ +# Single-use test: client53 sends message to client52; client52 responds with +# the same message in the set number of message parts +echo "TESTING SINGLE-USE" -# Ignore rekey for now -rm $CLIENTCLEAN/*_rekey.txt +# Generate contact file for client52 +CLIENTCMD="../bin/client init -s blob52 -l $CLIENTOUT/client52.log --password hello --ndf results/ndf.json --writeContact $CLIENTOUT/jono52-contact.bin" +eval $CLIENTCMD >> /dev/null 2>&1 || true & +PIDVAL=$! +echo "$CLIENTCMD -- $PIDVAL" +wait $PIDVAL + +# Start client53, which sends a message and then waits for a response +CLIENTCMD="timeout 240s ../bin/client single $CLIENTSINGLEOPTS -l $CLIENTOUT/client53.log -s blob53 --maxMessages 8 --message \"Test single-use message\" --send -c $CLIENTOUT/jono52-contact.bin --timeout 90s" +eval $CLIENTCMD >> $CLIENTOUT/client53.txt 2>&1 || true & +PIDVAL2=$! +echo "$CLIENTCMD -- $PIDVAL2" + +# Start client52, which waits for a message and then responds +CLIENTCMD="timeout 240s ../bin/client single $CLIENTSINGLEOPTS -l $CLIENTOUT/client52.log -s blob52 --reply --timeout 90s" +eval $CLIENTCMD >> $CLIENTOUT/client52.txt 2>&1 || true & +PIDVAL1=$! +echo "$CLIENTCMD -- $PIDVAL1" +wait $PIDVAL1 +wait $PIDVAL2 + + +if [ "$PERMISSIONING" == "" ] +then + # UD Test + echo "TESTING USER DISCOVERY..." + CLIENTCMD="timeout 240s ../bin/client ud $CLIENTUDOPTS -l $CLIENTOUT/client13.log -s blob13 --register josh13 --addemail josh13@elixxir.io --addphone 6178675309US" + eval $CLIENTCMD >> $CLIENTOUT/client13.txt || true & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL + CLIENTCMD="timeout 240s ../bin/client ud $CLIENTUDOPTS -l $CLIENTOUT/client31.log -s blob31 --register josh31 --addemail josh31@elixxir.io --addphone 6178675310US" + eval $CLIENTCMD >> $CLIENTOUT/client31.txt || true & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL + + CLIENTCMD="timeout 240s ../bin/client ud $CLIENTUDOPTS -l $CLIENTOUT/client13.log -s blob13 --searchusername josh31 --searchemail josh31@elixxir.io --searchphone 6178675310US" + eval $CLIENTCMD > $CLIENTOUT/josh31.bin|| true & + PIDVAL1=$! + echo "$CLIENTCMD -- $PIDVAL1" + CLIENTCMD="timeout 240s ../bin/client ud $CLIENTUDOPTS -l $CLIENTOUT/client31.log -s blob31 --searchusername josh13 --searchemail josh13@elixxir.io --searchphone 6178675309US" + eval $CLIENTCMD > $CLIENTOUT/josh13.bin || true & + PIDVAL2=$! + echo "$CLIENTCMD -- $PIDVAL2" + wait $PIDVAL1 + wait $PIDVAL2 + + # Send auth chan request + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client13.log -s blob13 --destfile $CLIENTOUT/josh31.bin --sendCount 0 --receiveCount 0" + eval $CLIENTCMD >> $CLIENTOUT/client13.txt || true & + PIDVAL2=$! + echo "$CLIENTCMD -- $PIDVAL2" + wait $PIDVAL2 + + # Approve request + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client31.log -s blob31 --destfile $CLIENTOUT/josh31.bin --sendCount 0 --receiveCount 0 --unsafe" + eval $CLIENTCMD >> $CLIENTOUT/client31.txt || true & + PIDVAL2=$! + echo "$CLIENTCMD -- $PIDVAL2" + wait $PIDVAL2 + + # Register confirmation + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client13.log -s blob13 --destfile $CLIENTOUT/josh13.bin --sendCount 0 --receiveCount 0 --unsafe" + eval $CLIENTCMD >> $CLIENTOUT/client13.txt || true & + PIDVAL2=$! + echo "$CLIENTCMD -- $PIDVAL2" + wait $PIDVAL2 + + # now test + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client31.log -s blob31 --assume-auth-channel --destfile $CLIENTOUT/josh13.bin --sendCount 5 --receiveCount 5 -m \"Hello from Josh31, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client31.txt || true & + PIDVAL=$! + echo "$CLIENTCMD -- $PIDVAL" + CLIENTCMD="timeout 240s ../bin/client $CLIENTOPTS -l $CLIENTOUT/client13.log -s blob13 --assume-auth-channel --destfile $CLIENTOUT/josh31.bin --sendCount 5 --receiveCount 5 -m \"Hello from Josh13, with E2E Encryption\"" + eval $CLIENTCMD >> $CLIENTOUT/client13.txt || true & + PIDVAL2=$! + echo "$CLIENTCMD -- $PIDVAL" + wait $PIDVAL + wait $PIDVAL2 +fi + +cp $CLIENTOUT/*.txt $CLIENTCLEAN/ -sed -i 's/Sending\ Message\ to\ .*,\ :/Sent:/g' $CLIENTCLEAN/client4[23].txt -sed -i 's/Message\ from\ .*, .* Received:/Received:/g' $CLIENTCLEAN/client4[23].txt +sed -i.bak 's/Sending\ to\ .*\:/Sent:/g' $CLIENTCLEAN/client*.txt +sed -i.bak 's/Message\ from\ .*, .* Received:/Received:/g' $CLIENTCLEAN/client*.txt +sed -i.bak 's/ERROR.*Signature/Signature/g' $CLIENTCLEAN/client*.txt +sed -i.bak 's/[Aa]uthenticat.*$//g' $CLIENTCLEAN/client*.txt +rm $CLIENTCLEAN/client*.txt.bak -for C in $(ls -1 $CLIENTCLEAN); do - sort -o tmp $CLIENTCLEAN/$C || true - uniq tmp $CLIENTCLEAN/$C || true -done +# for C in $(ls -1 $CLIENTCLEAN); do +# sort -o tmp $CLIENTCLEAN/$C || true +# uniq tmp $CLIENTCLEAN/$C || true +# done set -e echo "TESTS EXITED SUCCESSFULLY, CHECKING OUTPUT..." set +x -diff -ruN clients.goldoutput $CLIENTCLEAN - -cat $CLIENTOUT/* | strings | grep -e "ERROR" -e "FATAL" > results/client-errors || true -diff -ruN results/client-errors.txt noerrors.txt -cat $SERVERLOGS/server-*.log | grep "ERROR" | grep -v "context" | grep -v "metrics" | grep -v "database" > results/server-errors.txt || true -cat $SERVERLOGS/server-*.log | grep "FATAL" | grep -v "context" | grep -v "transport is closing" | grep -v "database" >> results/server-errors.txt || true -diff -ruN results/server-errors.txt noerrors.txt -cat $DUMMYOUT | grep "ERROR" | grep -v "context" | grep -v "failed\ to\ read\ certificate" > results/dummy-errors.txt || true -cat $DUMMYOUT | grep "FATAL" | grep -v "context" >> results/dummy-errors.txt || true -diff -ruN results/dummy-errors.txt noerrors.txt -IGNOREMSG="GetRoundBufferInfo: Error received: rpc error: code = Unknown desc = round buffer is empty" -cat $GATEWAYLOGS/*.log | grep "ERROR" | grep -v "context" | grep -v "certificate" | grep -v "Failed to read key" | grep -v "$IGNOREMSG" > results/gateway-errors.txt || true -cat $GATEWAYLOGS/*.log | grep "FATAL" | grep -v "context" | grep -v "transport is closing" >> results/gateway-errors.txt || true -diff -ruN results/gateway-errors.txt noerrors.txt +diff -aruN clients.goldoutput $CLIENTCLEAN + +if [ "$PERMISSIONING" == "" ] +then + + #cat $CLIENTOUT/* | strings | grep -e "ERROR" -e "FATAL" > results/client-errors || true + #diff -ruN results/client-errors.txt noerrors.txt + cat $SERVERLOGS/server-*.log | grep -a "ERROR" | grep -a -v "context" | grep -av "metrics" | grep -av "database" > results/server-errors.txt || true + cat $SERVERLOGS/server-*.log | grep -a "FATAL" | grep -a -v "context" | grep -av "transport is closing" | grep -av "database" >> results/server-errors.txt || true + diff -aruN results/server-errors.txt noerrors.txt + IGNOREMSG="GetRoundBufferInfo: Error received: rpc error: code = Unknown desc = round buffer is empty" + cat $GATEWAYLOGS/*.log | grep -a "ERROR" | grep -av "context" | grep -av "certificate" | grep -av "Failed to read key" | grep -av "$IGNOREMSG" > results/gateway-errors.txt || true + cat $GATEWAYLOGS/*.log | grep -a "FATAL" | grep -av "context" | grep -av "transport is closing" >> results/gateway-errors.txt || true + diff -aruN results/gateway-errors.txt noerrors.txt +fi echo "NO OUTPUT ERRORS, SUCCESS!" diff --git a/basice2e/server-1.yaml b/basice2e/server-1.yaml index 07407e32020e83efd6e35c30583870ad751b51d1..d920328d47c7f77819dc1010d0cf233e06b925cc 100644 --- a/basice2e/server-1.yaml +++ b/basice2e/server-1.yaml @@ -7,6 +7,8 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "qpol" useGPU: false +devMode: true +logLevel: 1 node: paths: idf: "results/servers/nodeID-1.json" @@ -14,8 +16,9 @@ node: key: "../keys/cmix.rip.key" log: "results/servers/server-1.log" errOutput: "results/servers/server-1.err" + ipListOutput: "results/servers/iplist-1.txt" port: 50000 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node1" username: "cmix_server" diff --git a/basice2e/server-2.yaml b/basice2e/server-2.yaml index 83ee21b10cd760797061b5608a79f691a55b4bbd..9a7c110ec59861290e1b76dee05dfb8324b3f2ba 100644 --- a/basice2e/server-2.yaml +++ b/basice2e/server-2.yaml @@ -7,6 +7,8 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "yiiq" useGPU: false +devMode: true +logLevel: 1 node: paths: idf: "results/servers/nodeID-2.json" @@ -14,8 +16,9 @@ node: key: "../keys/cmix.rip.key" log: "results/servers/server-2.log" errOutput: "results/servers/server-2.err" + ipListOutput: "results/servers/iplist-2.txt" port: 50001 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node2" username: "cmix_server" diff --git a/basice2e/server-3.yaml b/basice2e/server-3.yaml index 1f8c2b30b38f3c0637cae5d234f9fdfc5995dfe2..0935874fb496a4fd277685d1264cd476ac9641e1 100644 --- a/basice2e/server-3.yaml +++ b/basice2e/server-3.yaml @@ -7,6 +7,8 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "vydz" useGPU: false +devMode: true +logLevel: 1 node: paths: idf: "results/servers/nodeID-3.json" @@ -14,8 +16,9 @@ node: key: "../keys/cmix.rip.key" log: "results/servers/server-3.log" errOutput: "results/servers/server-3.err" + ipListOutput: "results/servers/iplist-3.txt" port: 50002 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node3" username: "cmix_server" diff --git a/basice2e/server-4.yaml b/basice2e/server-4.yaml index 9e280ddc85d07c088ff2888ba81d23a9432c9944..7f32caee24e7b3f395d3bb7584c9c520bffc98d4 100644 --- a/basice2e/server-4.yaml +++ b/basice2e/server-4.yaml @@ -7,6 +7,8 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "gwxs" useGPU: false +devMode: true +logLevel: 1 node: paths: idf: "results/servers/nodeID-4.json" @@ -14,8 +16,9 @@ node: key: "../keys/cmix.rip.key" log: "results/servers/server-4.log" errOutput: "results/servers/server-4.err" + ipListOutput: "results/servers/iplist-4.txt" port: 50003 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node4" username: "cmix_server" diff --git a/basice2e/server-5.yaml b/basice2e/server-5.yaml index f8a2a6eca79024e1e52be646ce62fd4154ca5f7f..494f901af46689de0a807f560eb459ea8516c737 100644 --- a/basice2e/server-5.yaml +++ b/basice2e/server-5.yaml @@ -7,6 +7,8 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "nahv" useGPU: false +devMode: true +logLevel: 1 node: paths: idf: "results/servers/nodeID-5.json" @@ -14,8 +16,9 @@ node: key: "../keys/cmix.rip.key" log: "results/servers/server-5.log" errOutput: "results/servers/server-5.err" + ipListOutput: "results/servers/iplist-5.txt" port: 50004 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node5" username: "cmix_server" diff --git a/basice2e/tmp b/basice2e/tmp index bebfdcb7da0b330ecfd01880d965332072c0520e..314bf8ad7e7398e85ee168605963d5082e3b310a 100644 --- a/basice2e/tmp +++ b/basice2e/tmp @@ -1,2 +1,6 @@ -Message from 9, Niamh Received: Hi -Sending Message to 9, Niamh: Hi +Message received: Hello, 7 +Message received: Hello, 7 +Received 1 +Received 1 +Sending to AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD: Hello, 4 +Sending to AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD: Hello, 4 diff --git a/basice2e/udb.yaml b/basice2e/udb.yaml index 9c353db9f0a8d8851ac829e50b182e6ab6cd462d..14b3ed1ed5398db64c1d56f33d99f499c898ca03 100644 --- a/basice2e/udb.yaml +++ b/basice2e/udb.yaml @@ -1,5 +1,10 @@ # UDB Config for E2E Integration test -logPath: "./results/udb.log" -sessionfile: "./results/udb.session" +log: "./results/udb.log" +sessionPath: "./results/udbsession" +sessionPass: "hello" certPath: "../keys/cmix.rip.crt" -ndfPath: "ndf.json" +port: "18001" +keyPath: "../keys/cmix.rip.key" +permCertPath: "../keys/cmix.rip.crt" +permAddress: "0.0.0.0:18000" +devMode: true \ No newline at end of file diff --git a/download_cmix_binaries.sh b/download_cmix_binaries.sh index 4085efe0052ba1677158302d0a303bd543970f8e..40bf2e10829678fb171f924c4980c6a103796828 100755 --- a/download_cmix_binaries.sh +++ b/download_cmix_binaries.sh @@ -1,22 +1,58 @@ #!/usr/bin/env bash + +# DEFAULTS FOR INTEGRATION -- do not publish +if [ "$GITLAB_ACCESS_TOKEN" == "" ] +then + echo "ERROR: SET GITLAB_ACCESS_TOKEN in your environment" + exit -1 +fi + +PLATFORM=$1 +USEREPO=$2 + +if [ "$PLATFORM" == "" ] +then + PLATFORM="l" +fi + +if [ "$USEREPO" == "" ] +then + USEREPO="d" +fi + # Get platform parameter -if [[ $1 == "l" ]] ||[[ $1 == "linux" ]] || [[ -z $1 ]]; then - BIN=".linux64?job=build" +# === LINUX === +if [[ $PLATFORM == "l" ]] ||[[ $PLATFORM == "linux" ]] || [[ -z $PLATFORM ]]; then + if [[ $USEREPO == "d" ]]; then + BIN=".linux64?job=build" + else + BIN=".linux64" + fi echo "Platform set to Linux" -elif [[ $1 == "m" ]] || [[ $1 == "mac" ]]; then - BIN=".darwin64?job=build" + + # === MACOS === +elif [[ $PLATFORM == "m" ]] || [[ $PLATFORM == "mac" ]]; then + + if [[ $USEREPO == "d" ]]; then + BIN=".darwin64?job=build" + else + BIN=".darwin64" + fi echo "Platform set to Mac" + else - echo "Invalid platform argument: $1" + echo "Invalid platform argument: $PLATFORM" exit 0 fi # Set up the URL for downloading the binaries DEFAULTBRANCH=${DEFAULTBRANCH:="release"} -REPOS_API=${REPOS_API:="https://gitlab.com/api/v4/projects/elixxir%2F"} -# Set up the gitlab access token -PATKEY=${PATKEY:="rBxQ6BvKP-eFxxeM3Ugm"} +if [[ $USEREPO == "d" ]]; then + REPOS_API=${REPOS_API:="https://gitlab.com/api/v4/projects/elixxir%2F"} +else + REPOS_API=${REPOS_API:="https://elixxir-bins.s3-us-west-1.amazonaws.com"} +fi # Make the binaries directory download_path="$(pwd)/bin" @@ -38,52 +74,62 @@ echo "(Note: if you forced a branch, that is checked first!)" for BRANCH in $(echo "forcedbranch" $FBRANCH $FBRANCH2 $DEFAULTBRANCH); do echo "Attempting downloads from: $BRANCH" - BRANCH_URL=${BRANCH_URL:="jobs/artifacts/$BRANCH/raw/release"} - # Get URLs for artifacts from all relevant repos - UDB_URL=${UDB_URL:="${REPOS_API}user-discovery-bot/$BRANCH_URL/udb$BIN"} - SERVER_URL=${SERVER_URL:="${REPOS_API}server/$BRANCH_URL/server$BIN"} - GW_URL=${GW_URL:="${REPOS_API}gateway/$BRANCH_URL/gateway$BIN"} - PERMISSIONING_URL=${PERMISSIONING_URL:="${REPOS_API}registration/$BRANCH_URL/registration$BIN"} - CLIENT_URL=${CLIENT_URL:="${REPOS_API}client/$BRANCH_URL/client$BIN"} - SERVER_GPU_URL=${SERVER_GPU_URL:="${REPOS_API}server/$BRANCH_URL/server-cuda.linux64?job=build"} - GPULIB_URL=${GPULIB_URL:="${REPOS_API}server/$BRANCH_URL/libpowmosm75.so?job=build"} + if [[ $USEREPO == "d" ]]; then + BRANCH_URL=${BRANCH_URL:="jobs/artifacts/$BRANCH/raw/release"} + # Get URLs for artifacts from all relevant repos + UDB_URL=${UDB_URL:="${REPOS_API}user-discovery-bot/$BRANCH_URL/udb$BIN"} + SERVER_URL=${SERVER_URL:="${REPOS_API}server/$BRANCH_URL/server$BIN"} + GW_URL=${GW_URL:="${REPOS_API}gateway/$BRANCH_URL/gateway$BIN"} + PERMISSIONING_URL=${PERMISSIONING_URL:="${REPOS_API}registration/$BRANCH_URL/registration$BIN"} + CLIENT_URL=${CLIENT_URL:="${REPOS_API}client/$BRANCH_URL/client$BIN"} + SERVER_GPU_URL=${SERVER_GPU_URL:="${REPOS_API}server/$BRANCH_URL/server-cuda.linux64?job=build"} + GPULIB_URL=${GPULIB_URL:="${REPOS_API}server/$BRANCH_URL/libpowmosm75.so?job=build"} + else + UDB_URL=${UDB_URL:="${REPOS_API}/$BRANCH/udb$BIN"} + SERVER_URL=${SERVER_URL:="${REPOS_API}/$BRANCH/server$BIN"} + GW_URL=${GW_URL:="${REPOS_API}/$BRANCH/gateway$BIN"} + PERMISSIONING_URL=${PERMISSIONING_URL:="${REPOS_API}/$BRANCH/registration.stateless$BIN"} + CLIENT_URL=${CLIENT_URL:="${REPOS_API}/$BRANCH/client$BIN"} + fi set -x # Silently download the UDB binary to the provisioning directory if [ ! -f $download_path/udb ] && [[ "$UDB_URL" != *"forcedbranch"* ]]; then - curl -s -f -L -H "PRIVATE-TOKEN: $PATKEY" -o "$download_path/udb" ${UDB_URL} + curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/udb" ${UDB_URL} fi # Silently download the Server binary to the provisioning directory if [ ! -f $download_path/server ] && [[ "$SERVER_URL" != *"forcedbranch"* ]]; then - curl -s -f -L -H "PRIVATE-TOKEN: $PATKEY" -o "$download_path/server" ${SERVER_URL} + curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/server" ${SERVER_URL} fi # Silently download the Gateway binary to the provisioning directory if [ ! -f $download_path/gateway ] && [[ "$GW_URL" != *"forcedbranch"* ]]; then - curl -s -f -L -H "PRIVATE-TOKEN: $PATKEY" -o "$download_path/gateway" ${GW_URL} + curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/gateway" ${GW_URL} fi # Silently download the permissioning binary to the provisioning directory if [ ! -f $download_path/permissioning ] && [[ "$PERMISSIONING_URL" != *"forcedbranch"* ]]; then - curl -s -f -L -H "PRIVATE-TOKEN: $PATKEY" -o "$download_path/permissioning" ${PERMISSIONING_URL} + curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/permissioning" ${PERMISSIONING_URL} fi # Silently download the permissioning binary to the provisioning directory if [ ! -f $download_path/client ] && [[ "$CLIENT_URL" != *"forcedbranch"* ]]; then - curl -s -f -L -H "PRIVATE-TOKEN: $PATKEY" -o "$download_path/client" ${CLIENT_URL} + curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/client" ${CLIENT_URL} fi +if [[ $2 == "d" ]]; then # Silently download the Server binary to the provisioning directory if [ ! -f $download_path/server-cuda ] && [[ "$SERVER_GPU_URL" != *"forcedbranch"* ]]; then - curl -s -f -L -H "PRIVATE-TOKEN: $PATKEY" -o "$download_path/server-cuda" ${SERVER_GPU_URL} + curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/server-cuda" ${SERVER_GPU_URL} fi # Silently download the GPU Library to the provisioning directory if [ ! -f $download_path/libpowmosm75.so ] && [[ "$GPULIB_URL" != *"forcedbranch"* ]]; then - curl -s -f -L -H "PRIVATE-TOKEN: $PATKEY" -o "$download_path/libpowmosm75.so" ${GPULIB_URL} + curl -s -f -L -H "PRIVATE-TOKEN: $GITLAB_ACCESS_TOKEN" -o "$download_path/libpowmosm75.so" ${GPULIB_URL} fi +fi set +x diff --git a/smokeinfra/gateway-1.yaml b/smokeinfra/gateway-1.yaml index 9190e9a783b43c3a124f5161a2ee9cee3424eb1b..259c700cb03eed032a73887743ffb33f3355c56e 100644 --- a/smokeinfra/gateway-1.yaml +++ b/smokeinfra/gateway-1.yaml @@ -9,13 +9,18 @@ log: "results/gatway-1.log" # Log message level -logLevel: 1 +logLevel: 2 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:60000" -# The listening address of this gateway -localAddress: "127.0.0.1" +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 9440 # The number of seconds a message should remain in the globals before being @@ -35,4 +40,9 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" +knownRoundsPath: "results/gateways/knownrounds-1.json" +lastUpdateIdPath: "results/gateways/lastupdateid-1.txt" +devMode: true + + # === END YAML diff --git a/smokeinfra/gateway-2.yaml b/smokeinfra/gateway-2.yaml index 3af71c41a877ebf370c695780fc2fbdf5d81169e..872f473865fe28c6127076a94ed6abba9b65e5b7 100644 --- a/smokeinfra/gateway-2.yaml +++ b/smokeinfra/gateway-2.yaml @@ -9,13 +9,18 @@ log: "results/gatway-2.log" # Log message level -logLevel: 1 +logLevel: 2 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:60001" -# The listening address of this gateway -localAddress: "127.0.0.1" +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 9441 # The number of seconds a message should remain in the globals before being @@ -35,4 +40,8 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" +knownRoundsPath: "results/gateways/knownrounds-2.json" +lastUpdateIdPath: "results/gateways/lastupdateid-2.txt" +devMode: true + # === END YAML diff --git a/smokeinfra/gateway-3.yaml b/smokeinfra/gateway-3.yaml index 4ab21b7499b9367a91c0fd6740b8f791193fdd15..0b014d75d8596466384e1f35bf8fcb92b726243e 100644 --- a/smokeinfra/gateway-3.yaml +++ b/smokeinfra/gateway-3.yaml @@ -9,13 +9,18 @@ log: "results/gatway-3.log" # Log message level -logLevel: 1 +logLevel: 2 # The public IP address and port of the node associated with this gateway nodeAddress: "127.0.0.1:60002" -# The listening address of this gateway -localAddress: "127.0.0.1" +# The public IPv4 address of the Gateway, as reported to the network, to use +# instead of dynamically looking up Gateway's own IP address. If a port is not +# included, then the port flag is used instead. +overridePublicIP: "0.0.0.0" + +# Port for Gateway to listen on. Gateway must be the only listener on this port. +# Required field. port: 9442 # The number of seconds a message should remain in the globals before being @@ -35,4 +40,8 @@ permissioningCertPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" +knownRoundsPath: "results/gateways/knownrounds-3.json" +lastUpdateIdPath: "results/gateways/lastupdateid-3.txt" +devMode: true + # === END YAML diff --git a/smokeinfra/permissioning.yaml b/smokeinfra/permissioning.yaml index 1889e68751ba3db199310c82c9d6cc407345077c..d12fac199a9b9264203b0b8d3f96f6ebaea68249 100644 --- a/smokeinfra/permissioning.yaml +++ b/smokeinfra/permissioning.yaml @@ -21,10 +21,17 @@ dbAddress: "0.0.0.0:6969" minimumNodes: 3 -minGatewayVersion: "1.1.0" -minServerVersion: "1.0.0" +minGatewayVersion: "2.0.0" +minServerVersion: "2.0.0" +minClientVersion: "2.0.0" nodeMetricInterval: 3 +disableGatewayPing: true + +# Disable pruning of NDF for offline nodes +# if set to false, network will sleep for five minutes on start +disableNDFPruning: true + clientRegCodes: - "FFFF" - "GGGG" @@ -32,14 +39,14 @@ clientRegCodes: # Path to the file containing the round ID roundIdPath: "results/roundId.txt" +# Path to UDB public key PEM file +udbPubKeyPemPath: "../keys/cmix.rip.crt" + # Path to the file containing the update ID updateIdPath: "results/updateId.txt" -# === REQUIRED FOR ENABLING TLS === -# Path to the registration server private key file -keyPath: "../keys/cmix.rip.key" -# Path to the registration server certificate file -certPath: "../keys/cmix.rip.crt" +# Path to the UDB certificate file +udbCertPath: "../keys/cmix.rip.crt" ndfOutputPath: "results/permissions-ndfoutput.json" @@ -51,7 +58,11 @@ certPath: "../keys/cmix.rip.crt" # Path to the certificate file serverCertPath: "../keys/cmix.rip.crt" -udbID: 3 +udContactPath: "udContact.bin" +udbAddress: "127.0.0.1:18001" +# Path to UDB public key PEM file +udbPubKeyPemPath: "../keys/cmix.rip.crt" + # Time interval (in minutes) in which the database is # checked for banned nodes diff --git a/smokeinfra/run.sh b/smokeinfra/run.sh index 85711d7a08b5edcd5c37dcb2eb33c0bdd7d79f9e..4b51e5af0447c6fff2732464cca196179870b000 100755 --- a/smokeinfra/run.sh +++ b/smokeinfra/run.sh @@ -22,7 +22,7 @@ echo "STARTING SERVERS..." for SERVERID in $(seq 3 -1 1) do IDX=$(($SERVERID - 1)) - SERVERCMD="../bin/server --config server-$SERVERID.yaml" + SERVERCMD="../bin/server --logLevel 2 --config server-$SERVERID.yaml" $SERVERCMD > $SERVERLOGS/server-$SERVERID.console 2>&1 & PIDVAL=$! echo "$SERVERCMD -- $PIDVAL" diff --git a/smokeinfra/server-1.yaml b/smokeinfra/server-1.yaml index d7e9c75c8cff327b3b0146629359a61156b98a90..d028aed259944f53c4bca941eab1ece30b6e4cf8 100644 --- a/smokeinfra/server-1.yaml +++ b/smokeinfra/server-1.yaml @@ -7,15 +7,17 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "qpol" useGPU: false +devMode: true node: paths: idf: "nodeID-1.json" cert: "../keys/cmix.rip.crt" key: "../keys/cmix.rip.key" log: "results/server-1.log" + ipListOutput: "results/ipList-1.txt" errOutput: "results/server-1.err" port: 60000 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node1" username: "cmix_server" diff --git a/smokeinfra/server-2.yaml b/smokeinfra/server-2.yaml index 2fe45b77cdcce4726a25f57913a7688f0ae09e48..474cdac09a0338c73d002424b807032e971736f8 100644 --- a/smokeinfra/server-2.yaml +++ b/smokeinfra/server-2.yaml @@ -7,15 +7,17 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "yiiq" useGPU: false +devMode: true node: paths: idf: "nodeID-2.json" cert: "../keys/cmix.rip.crt" key: "../keys/cmix.rip.key" log: "results/server-2.log" + ipListOutput: "results/ipList-2.txt" errOutput: "results/server-2.err" port: 60001 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node2" username: "cmix_server" diff --git a/smokeinfra/server-3.yaml b/smokeinfra/server-3.yaml index 5c5ce4cbe566cbe9abf32849f90047a8b90df925..d987ea5abec097eb9c9dc6ab36ebc31aadb8dc21 100644 --- a/smokeinfra/server-3.yaml +++ b/smokeinfra/server-3.yaml @@ -7,15 +7,17 @@ # registration code used for first time registration. Unique. Provided by xx network registrationCode: "vydz" useGPU: false +devMode: true node: paths: idf: "nodeID-3.json" cert: "../keys/cmix.rip.crt" key: "../keys/cmix.rip.key" log: "results/server-3.log" + ipListOutput: "results/ipList-3.txt" errOutput: "results/server-3.err" port: 60002 - listeningAddress: "127.0.0.1" + overridePublicIP: "127.0.0.1" database: name: "node3" username: "cmix_server" diff --git a/smokeinfra/udContact.bin b/smokeinfra/udContact.bin new file mode 100644 index 0000000000000000000000000000000000000000..b8af93120d350f339918e0be522aef84cd03b245 Binary files /dev/null and b/smokeinfra/udContact.bin differ