Skip to content
Snippets Groups Projects
Commit 67d5ad6f authored by Sydney Anne Erickson's avatar Sydney Anne Erickson :chipmunk:
Browse files

Merge branch 'release' into Anne/ClientSessionTests

parents f28f7afe 76a39903
No related branches found
No related tags found
2 merge requests!68Master merge,!30Client Session Testing
Showing
with 1065 additions and 85 deletions
...@@ -5,9 +5,12 @@ bin/* ...@@ -5,9 +5,12 @@ bin/*
*results* *results*
*/.udb-cMix-session */.udb-cMix-session
blob* blob*
junk*
# Vim swap files # Vim swap files
*.swp *.swp
*.swo *.swo
*.elixxir* *.elixxir*
rid.txt rid.txt
nodeID-*.json nodeID-*.json
gitlab.com
...@@ -17,7 +17,6 @@ cache: ...@@ -17,7 +17,6 @@ cache:
variables: variables:
REPO_DIR: gitlab.com/elixxir REPO_DIR: gitlab.com/elixxir
REPO_NAME: server REPO_NAME: server
DOCKER_IMAGE: elixxirlabs/cuda-go:go1.16-cuda11.1
# See https://docs.gitlab.com/ee/api/jobs.html#download-a-single-artifact-file-from-specific-tag-or-branch # See https://docs.gitlab.com/ee/api/jobs.html#download-a-single-artifact-file-from-specific-tag-or-branch
REPOS_API: https://$GITLAB_SERVER/api/v4/projects/elixxir%2F REPOS_API: https://$GITLAB_SERVER/api/v4/projects/elixxir%2F
SERVER_URL: "" SERVER_URL: ""
...@@ -101,6 +100,46 @@ basice2e: ...@@ -101,6 +100,46 @@ basice2e:
- basice2e/ - basice2e/
- bin/ - bin/
basice2e_protonet:
stage: tests
image: $DOCKER_IMAGE
script:
- mkdir -p ~/.elixxir
- echo $PWD
- cd basice2e
- rm -fr results
- ./run.sh protonet
- cd ..
artifacts:
when: always
expire_in: '1 day'
paths:
- basice2e/
- bin/
only:
# When merging in projects that need to be deployed, this field will have to
# be TEMPORARILY changed to master until deployment is completed. BE SURE TO REVERT
# ONCE DEPLOYMENT IS COMPLETE.
- master
# basice2e_betanet:
# stage: tests
# image: $DOCKER_IMAGE
# script:
# - mkdir -p ~/.elixxir
# - echo $PWD
# - cd basice2e
# - rm -fr results
# - ./run.sh betanet
# - cd ..
# artifacts:
# when: always
# expire_in: '1 day'
# paths:
# - basice2e/
# - bin/
smokeinfra: smokeinfra:
stage: tests stage: tests
image: $DOCKER_IMAGE image: $DOCKER_IMAGE
......
LICENSE 0 → 100644
Copyright (c) 2020, xx network SEZC
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Integration # Integration
## Purpose ## Purpose
This is to automatically test all the system's components and make sure they This is for running the network locally on a single machine.
work together correctly. If the integration test passes, it should guarantee There are 2 testing suite packages (smokeinfra and basice2e) and a
that clients can send messages all the way through the system, including general-use long-running network package (localNetwork).
mixing with multiple nodes and an anonymity set greater than 1. If the
integration test fails, look at the logs and narrow down the cause by adding ### Testing Suites
more logging statements if necessary. This is to automatically test all the system's components and make sure they
work together correctly. These testing suites are used by the xx network team to ensure basic functionality
of the network and its clients. It is a part of their CI/CD workflow. If the
integration tedigga#1
st fails with an unknown or unhandled error, they look at the logs
to narrow down and resolve the issue.
[SmokeInfra](./smokeinfra/) is a simple test of the xx network, ensuring that rounds are running.
Generally speaking, this is for the xx network team and developers that wish to
contribute to how the network operates.
[BasicE2E](./basice2e) determines whether clients can send messages all the way through the system, including
mixing with multiple nodes and an anonymity set greater than 1. There are several
tests of the client in this package, including features such as group messaging,
file transfer, etc. Whenever a new feature is introduced to the client by the
xx network development team, a new test for this feature
is added to this testing suite via the run script (`run.sh`)
## Local Network
The [localNetwork package](./localNetwork) is a more general-use network tool.
This package will run a local version of the xx network on a single machine until a
manually killed by the user. This can be done using either the `run.sh` or the `runpublish.sh` scripts.
With this network established, a developer may,
for example, test the xxDK.
## How to manually run locally ## How to manually run locally
1. Build the binaries under test for your operating system and place them in 1. Build the binaries for your operating system and place them in
the `bin` directory. the `bin` directory.
1. `cd` to `basice2e/` and run `run.sh`. Observe the results and inspect the 2. `cd` to any of the three previously mentioned directories and run `run.sh`. Observe the results and inspect the
logs if things go wrong. logs if things go wrong.
1. Make changes to the `run.sh` script, config files, and binaries as needed 3. OPTIONAL: Make changes to the `run.sh` script, config files, and binaries as needed
based on your analysis of the logs. You may want to add more logging or build based on your analysis of the logs. You may want to add more logging or build
the binaries under test with race condition checking to track down problems. the binaries under test with race condition checking to track down problems.
## What runs on continuous integration? ## Scripts
The `master` branch of integration runs whenever you merge anything to the ### `build.sh`
`master` branch of any of the projects that integration tests. The CI server
downloads the latest `master` branch binaries that any CI server built and
uses them to run `basice2e/run.sh`.
The benchmark branch of integration runs nightly and produces information about [`build.sh`](./build.sh) generates version information for all repositories under test and
how fast the software runs. It doesn't provide the full performance picture builds binaries for them in the `bin/` directory.
because it runs on one modest CI server, rather than on a team of powerful
servers. However, the information it provides is sometimes useful.
So, if you make changes that break integration and merge the fixes to the ### `download_cmix_binaries.sh`
`master` branch of integration, you ought to also merge the `master` branch
into the `benchmark` branch so that the benchmarks will continue to function.
## Automate running locally The script [`download_cmix_binaries.sh`](./download_cmix_binaries.sh) accepts an optional flag that
specifies which platform to download the binaries for. If no flag is specified,
then the script defaults to the Linux binaries. Refer to the table below for
details on the flags.
`build.sh` generates version information for all repositories under test and |Long flag|Short flag|Effect|
builds binaries for them in the `bin/` directory. |---|---|---|
|linux|l|downloads the Linux binaries|
|mac|m|downloads the Mac binaries|
A second argument can be provided which changes where the script downloads from.
By default it downloads from a public bucket which includes release and master builds.
|Flag name|Short flag|Effect|
|---|---|---|
|dev downloads|d|downloads from internal CI |
This script will require additional set-up steps, see the [Additional Set-Up](#Additional-Set-Up) section for
details.
### download.sh
`download_cmix_binaries` downloads binaries from certain branches into the `bin/` directory. [`download.sh`](./download.sh) will download all network related repositories to the working
The targeted operating system for the binaries can be specified via command line arguments. directory. Each repository will be individually built, with the binary being moved
to the `binaries/` directory, for the run script (`run.sh`) to initiate. This
will not require additional steps like `download_cmix_binaries.sh`, it will use up more
local storage. This will download binaries from release by default.
If you want to build and run custom binaries off of custom branches, you may create a branch in
local environment styled as `feature/[INSERT_PROJECT_BRANCH]` and run the download script
checked out into that feature branch.
### `update.sh`
`update.sh` runs `git pull` for each repo under test, and by uncommenting the `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 relevant code, checks out the `master` branch of each repo before pulling. This
...@@ -57,3 +100,39 @@ resulting logs, set the INTEGRATION\_EDITOR environment variable: ...@@ -57,3 +100,39 @@ resulting logs, set the INTEGRATION\_EDITOR environment variable:
If you need to make a lot of exploratory changes to get things integrated, If you need to make a lot of exploratory changes to get things integrated,
using these utility scripts can speed up the process. using these utility scripts can speed up the process.
### Additional Set Up
You will need to add a personal access token to your environment vars to download binaries via the
`download_cmix_binaries.sh`. You can generate one [here](https://gitlab.com/-/profile/personal_access_tokens),
giving it the "api" scope.
Please add the following to your `~/.zshrc` or `~/.bash_profile` depending on your shell
(You could most likely find out what shell you're using by running `echo $0` in the terminal).
```
export GITLAB_ACCESS_TOKEN=token_here
```
You could also invoke the script with the var, if you don't want to set it in your file or use
a different token temporarily.
```
GITLAB_ACCESS_TOKEN=token_here ./download_cmix_binaries.sh [l/m] d
```
The script downloads from the CI when the second argument into it (the one after the platform flag) is `d`.
## What runs on continuous integration? (Team Only)
The `master` branch of integration runs whenever you merge anything to the
`master` branch of any of the projects that integration tests. The CI server
downloads the latest `master` branch binaries that any CI server built and
uses them to run `basice2e/run.sh`.
The benchmark branch of integration runs nightly and produces information about
how fast the software runs. It doesn't provide the full performance picture
because it runs on one modest CI server, rather than on a team of powerful
servers. However, the information it provides is sometimes useful.
So, if you make changes that break integration and merge the fixes to the
`master` branch of integration, you ought to also merge the `master` branch
into the `benchmark` branch so that the benchmarks will continue to function.
\ No newline at end of file
This diff is collapsed.
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
Message received: Hello from Niamh101, with E2E Encryption
Message received: type is KeyExchangeConfirm
Message received: type is KeyExchangeTrigger
Received 0
Received 0
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
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
Adding
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
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
Message received: type is KeyExchangeConfirm
Message received: type is KeyExchangeTrigger
Received 0
Received 20
Received 20
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
WARNING: unsafe channel creation enabled
This diff is collapsed.
Sent progress callback for "LoremIpsum.txt" {completed: false, arrived: 0, total: 109, err: <nil>}
Sent progress callback for "LoremIpsum.txt" {completed: true, arrived: 109, total: 109, err: <nil>}
Completed sending file.
Message received: Hello from Client120 to myself, without E2E Encryption
Message received: Hello from Client121, with E2E Encryption
Message received: Hello from Client121, with E2E Encryption
Message received: Hello from Client121, with E2E Encryption
Message received: Hello from Client121, with E2E Encryption
Message received: Hello from Client121, with E2E Encryption
Message received: Hello from Client121, with E2E Encryption after 121 restoring backup
Message received: Hello from Client121, with E2E Encryption after 121 restoring backup
Message received: Hello from Client121, with E2E Encryption after 121 restoring backup
Message received: Hello from Client121, with E2E Encryption after 121 restoring backup
Message received: Hello from Client121, with E2E Encryption after 121 restoring backup
Received 0
Received 0
Received 1
Received 5
Received 5
Sent: Hello from Client120 to myself, without E2E Encryption
Sent: Hello from Client120, with E2E Encryption
Sent: Hello from Client120, with E2E Encryption
Sent: Hello from Client120, with E2E Encryption
Sent: Hello from Client120, with E2E Encryption
Sent: Hello from Client120, with E2E Encryption
Sent: Hello from Client120, with E2E Encryption after 121 restoring backup
Sent: Hello from Client120, with E2E Encryption after 121 restoring backup
Sent: Hello from Client120, with E2E Encryption after 121 restoring backup
Sent: Hello from Client120, with E2E Encryption after 121 restoring backup
Sent: Hello from Client120, with E2E Encryption after 121 restoring backup
Adding
Backup update received.
Backup update received.
Message received: Hello from Client120, with E2E Encryption
Message received: Hello from Client120, with E2E Encryption
Message received: Hello from Client120, with E2E Encryption
Message received: Hello from Client120, with E2E Encryption
Message received: Hello from Client120, with E2E Encryption
Message received: Hello from Client120, with E2E Encryption after 121 restoring backup
Message received: Hello from Client120, with E2E Encryption after 121 restoring backup
Message received: Hello from Client120, with E2E Encryption after 121 restoring backup
Message received: Hello from Client120, with E2E Encryption after 121 restoring backup
Message received: Hello from Client120, with E2E Encryption after 121 restoring backup
Received 0
Received 5
Received 5
Sent: Hello from Client121, with E2E Encryption
Sent: Hello from Client121, with E2E Encryption
Sent: Hello from Client121, with E2E Encryption
Sent: Hello from Client121, with E2E Encryption
Sent: Hello from Client121, with E2E Encryption
Sent: Hello from Client121, with E2E Encryption after 121 restoring backup
Sent: Hello from Client121, with E2E Encryption after 121 restoring backup
Sent: Hello from Client121, with E2E Encryption after 121 restoring backup
Sent: Hello from Client121, with E2E Encryption after 121 restoring backup
Sent: Hello from Client121, with E2E Encryption after 121 restoring backup
WARNING: unsafe channel creation enabled
Failed to register user josh13: rpc error: code = Unknown desc = Username josh13 is already taken. Please try again
WARNING: unsafe channel creation enabled
Adding Adding
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 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 0
Received 5 Received 5
Removed user from discovery: josh13 Removed user from discovery: josh13
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
WARNING: unsafe channel creation enabled
Sent: Hi 18->9, with E2E Encryption Message received: Hi 18->18, with E2E Encryption
Sent: Hi 18->9, with E2E Encryption Message received: Hi 18->18, 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 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 2
Received 3 Received 3
Sent: Hi 18->18, with E2E Encryption
Sent: Hi 18->18, with E2E Encryption
Sent: Hi 18->9, with E2E Encryption
Sent: Hi 18->9, with E2E Encryption
Sent: Hi 18->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
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
...@@ -39,3 +19,23 @@ Message received: Hello, 18, with E2E Encryption ...@@ -39,3 +19,23 @@ 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 Received 20
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
Sent: Hi 19->19, with E2E Encryption
Sent: Hi 19->19, with E2E Encryption
Message received: Hi 19->19, with E2E Encryption
Message received: Hi 19->19, with E2E Encryption
Received 2
Sent: Hello from 20, without E2E Encryption
Sent: Hello from 20, without E2E Encryption
Sent: Hello from 20, without E2E Encryption
Sent: Hello from 20, without E2E Encryption
Sent: Hello from 20, without E2E Encryption
Message received: Hello from 21, without E2E Encryption Message received: Hello from 21, without E2E Encryption
Message received: Hello from 21, without E2E Encryption Message received: Hello from 21, without E2E Encryption
Message received: Hello from 21, without E2E Encryption Message received: Hello from 21, without E2E Encryption
...@@ -14,9 +9,3 @@ Sent: Hello from 20, without E2E Encryption ...@@ -14,9 +9,3 @@ Sent: Hello from 20, without E2E Encryption
Sent: Hello from 20, without E2E Encryption Sent: Hello from 20, without E2E Encryption
Sent: Hello from 20, without E2E Encryption Sent: Hello from 20, without E2E Encryption
Sent: Hello from 20, without E2E Encryption Sent: Hello from 20, without E2E Encryption
Message received: Hello from 21, without E2E Encryption
Message received: Hello from 21, without E2E Encryption
Message received: Hello from 21, without E2E Encryption
Message received: Hello from 21, without E2E Encryption
Message received: Hello from 21, without E2E Encryption
Received 5
Sent: Hello from 21, without E2E Encryption
Sent: Hello from 21, without E2E Encryption
Sent: Hello from 21, without E2E Encryption
Sent: Hello from 21, without E2E Encryption
Sent: Hello from 21, without E2E Encryption
Message received: Hello from 20, without E2E Encryption Message received: Hello from 20, without E2E Encryption
Message received: Hello from 20, without E2E Encryption Message received: Hello from 20, without E2E Encryption
Message received: Hello from 20, without E2E Encryption Message received: Hello from 20, without E2E Encryption
...@@ -14,9 +9,3 @@ Sent: Hello from 21, without E2E Encryption ...@@ -14,9 +9,3 @@ Sent: Hello from 21, without E2E Encryption
Sent: Hello from 21, without E2E Encryption Sent: Hello from 21, without E2E Encryption
Sent: Hello from 21, without E2E Encryption Sent: Hello from 21, without E2E Encryption
Sent: Hello from 21, without E2E Encryption Sent: Hello from 21, without E2E Encryption
Message received: Hello from 20, without E2E Encryption
Message received: Hello from 20, without E2E Encryption
Message received: Hello from 20, without E2E Encryption
Message received: Hello from 20, without E2E Encryption
Message received: Hello from 20, without E2E Encryption
Received 5
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment