Skip to content
Snippets Groups Projects
Commit 331cc98a authored by Josh Brooks's avatar Josh Brooks
Browse files

Finalize documentation

parent 6d4af1a5
No related branches found
No related tags found
3 merge requests!68Master merge,!24Josh/local env migration,!11Release
# 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. There are 2 testing suite packages There are 2 testing suite packages (smokeinfra and basice2e) and a
(smokeinfra and basice2e) and a general long-running network package (localNetwork). general-use long-running network package (localNetwork).
### Testing Suites ### Testing Suites
These testing suites are used by the xx network team to ensure basic functionality 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 of the network and its clients. It is a part of their CI/CD workflow. If the
integration tedigga#1 integration tedigga#1
st fails with an unknown or unhandled error, they look at the logs st fails with an unknown or unhandled error, they look at the logs
to narrow down and resolve the issue. to narrow down and resolve the issue.
[//]: # (link to the readme?)
[SmokeInfra](./smokeinfra/) is a simple test of the xx network, ensuring that rounds are running. [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 Generally speaking, this is for the xx network team and developers that wish to
contribute to how the network operates. contribute to how the network operates.
...@@ -26,39 +26,23 @@ is added to this testing suite via the run script (`run.sh`) ...@@ -26,39 +26,23 @@ is added to this testing suite via the run script (`run.sh`)
## Local Network ## Local Network
The [localNetwork package](./localNetwork) is a more general use network tool. 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 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 either via the `run.sh` script, manually killed by the user. This can be done either via the `run.sh` script,
which will run the network with internal IP addresses, or the `runpublish.sh`, which runs the network which will run the network with internal IP addresses, or the `runpublish.sh`, which runs the network
with remotely accessible IP addresses. With this network established, a developer may, with remotely accessible IP addresses. With this network established, a developer may,
for example, test the xxDK against it. 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?
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.
## Scripts ## Scripts
### `build.sh` ### `build.sh`
...@@ -88,8 +72,6 @@ By default it downloads from a public bucket which includes release and master b ...@@ -88,8 +72,6 @@ By default it downloads from a public bucket which includes release and master b
This script will require additional set-up steps, see the [Additional Set-Up](#Additional-Set-Up) section for This script will require additional set-up steps, see the [Additional Set-Up](#Additional-Set-Up) section for
details. details.
### My Multi Word Header
### download.sh ### download.sh
[`download.sh`](./download.sh) will download all network related repositories to the working [`download.sh`](./download.sh) will download all network related repositories to the working
...@@ -139,3 +121,19 @@ GITLAB_ACCESS_TOKEN=token_here ./download_cmix_binaries.sh [l/m] d ...@@ -139,3 +121,19 @@ 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`. 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
= Local Continuously Running Network (localNetwork)
This tool runs several servers as a local simulation of the xx network.
The basic structure is as follows:
* 3 Nodes, BatchSize of 32
* 3 Gateways, each connected to its own node
* User Discovery Bot
* Scheduling Server
* Client Registrar
With these tools you may run the xxDK off of the produced [ndf](./ndf.json), testing locally without
having to operate on MainNet or any other live network.
## Configurability
If you wish to operate with a larger local network, you may generate a programmable number of gateways/servers
using the (generate)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment