codex-factory/README.md

81 lines
2.5 KiB
Markdown
Raw Normal View History

2021-04-19 19:25:08 +02:00
# Bee Factory
This project builds up a test environment with Bee clients and with a test blockchain.
The created environment is runnable on local machine as well.
All services run in `Docker` containers only.
Currently, the repository supports running Bee nodes up to 5 by default.
# Usage
The whole Bee environment (with blockchain) can be started by [running one script](###Run-Environment),
but for that you need to have the necessary Docker images, which is possible to build yourself by [running some scripts](###Setup-the-environment)
First you may want to set all global variables that the scripts will use.
For that, there is a [.env](scripts/.env) file which contains all necessary variables that you need.
```sh
$ set -a && source ./scripts/.env && set +a
```
If you do not set these global variables, the scripts will use those which are available in the [.env](scripts/.env) file.
## Setup the environment
Create the common Docker network for the environment with
```sh
$ ./scripts/network.sh
```
To start the blockchain, run the following command in the root directory of the project:
```sh
$ ./scripts/blockchain.sh
```
After that, it's possible to deploy Swarm smart contracts
```sh
2021-05-05 14:21:20 +02:00
$ npm run migrate:contracts
```
Before you start the Bee nodes with the deployed Swap Factory, you have to fund your overlay addresses of your Bee nodes for the successful start.
The [supply.js](src/supply.js) script can fund the addresses which are defined in [bee-overlay-addresses.json](bee-overlay-addresses.json) file.
To run this script just execute
```sh
$ npm run supply
```
and the configured accounts will get 1 ether and 100 BZZ Token.
After all above went successfully you can start the Bee nodes
```sh
$ ./scripts/bee.sh start --workers=4
```
OR it is possible to build docker images on a desired state, so that a fresh environment can be started on each run.
### Build Docker Images
Basically, a full-featured Bee environment has 2 types of Docker image:
- Bee images: Bee clients with pre-defined keys (and optionally including the state which you nodes have in its [data-dirs](scripts/bee-data-dirs))
```sh
$ ./scripts/bee-docker-build.sh
```
- Blockchain image: Ganache blockchain which you may want to take a snapshot of after the contracts are deployed and the pre-defined Bee client keys are funded already.
```sh
$ ./scripts/blockchain-docker-build.sh
```
## Run Environment
If you have all Docker images that your [environment file](scripts/.env) requires,
start the Bee cluster
```sh
$ ./scripts/environment.sh start
```