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