WIP: FrostFS local Development and Testing environment
Find a file
Alex Vanin ebc0f96b2f [#76] Update neo-go and contracts to N3 testnet RC2 version
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-05-21 14:26:43 +03:00
.github Add README and related docs 2020-09-25 16:20:34 +03:00
bin [#76] Update neo-go and contracts to N3 testnet RC2 version 2021-05-21 14:26:43 +03:00
docs Change repo http_gate to http_gw 2021-05-18 14:11:31 +03:00
services [#76] Update neo-go and contracts to N3 testnet RC2 version 2021-05-21 14:26:43 +03:00
wallets [#76] Update neo-go and contracts to N3 testnet RC2 version 2021-05-21 14:26:43 +03:00
.dockerignore Initial commit 2020-07-10 18:33:27 +03:00
.editorconfig Initial commit 2020-07-10 18:33:27 +03:00
.env [#76] Update neo-go and contracts to N3 testnet RC2 version 2021-05-21 14:26:43 +03:00
.gitignore add idea directory to gitignore 2021-02-28 02:20:34 +03:00
.services Add S3 Gate 2020-12-01 14:18:58 +03:00
CONTRIBUTING.md Add README and related docs 2020-09-25 16:20:34 +03:00
help.mk Update documentation 2020-12-03 15:12:11 +03:00
LICENSE Initial commit 2020-07-10 18:33:27 +03:00
Makefile Add Makefile targets to change NeoFS global config values 2021-04-19 09:58:30 +03:00
neofs_config.mk Add Makefile targets to change NeoFS global config values 2021-04-19 09:58:30 +03:00
README.md Add paragraph about update targets in readme 2021-04-19 09:58:30 +03:00

NeoFS

NeoFS local Development and Testing environment


Overview

Tools to set up local NeoFS network and Neo 3 privnet. Devenv, for short.

Quick Start

$ make up

When all services are up, you need to make GAS deposit for test wallet to be able to pay for NeoFS operations. Test wallet is located in wallet/wallet.json with the corresponding key in wallet/wallet.key. The password is empty.

$ make prepare.ir
Enter account NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx password >
Sent invocation transaction fa6ba62bffb04030d303dcc95bda7413e03aa3c7e6ca9c2f999d65db9ec9b82c

Change NeoFS global configuration values with make update.* commands. The password of inner ring wallet is one. See examples in make help.

$ make update.epoch_duration val=30
Changing EpochDuration configration value to 30
Enter account NNudMSGzEoktFzdYGYoNb3bzHzbmM1genF password > 
Sent invocation transaction dbb8c1145b6d10f150135630e13bb0dc282023163f5956c6945a60db0cb45cb0
Updating NeoFS epoch to 2
Enter account NNudMSGzEoktFzdYGYoNb3bzHzbmM1genF password > 
Sent invocation transaction 0e6eb5e190f36332e5e5f4e866c7e100826e285fd949e11c085e15224f343ba6

You can see the addresses and hostnames of components with make hosts command.

$ make hosts
192.168.130.10 bastion.neofs.devenv
192.168.130.50 main_chain.neofs.devenv
192.168.130.61 ir01.neofs.devenv
...
192.168.130.74 s04.neofs.devenv

It's recommended to add make hosts output to your local /etc/hosts file.

For instructions on how to set up DevEnv on macOS, please refer the guide in docs directory.

How it's organized

.
├── Makefile         # Commands to manage devenv
├── .services        # List of services to work with
├── services         # Services definitions and files
│   ├── basenet
│   ├── chain
│   ├── ir
│   ├── morph_chain
│   └── storage
├── vendor           # Temporary files and artifacts
└── wallets          # Wallet files to manage GAS assets

Main commands and targets to manage devenv's services are in Makefile.

Each service is defined in it's own directory under services/ with all required files to run and scripts to get external artifacts or dependencies.

The list of services and the starting order is defined in .services file. You can comment out services you don't want to start or add your own new services.

You can find more information on each service in docs directory.

Maybe you will find the answer for your question in F.A.Q.

Notable make targets

make help will print the brief description of available targets. Here we describe some of them in a more detailed way.

up

Start all Devenv services.

This target call pull to get container images, get to download required artifacts, vendor/hosts to generate hosts file and then starts all services in the order defined in .services file.

down

Shutdowns all services. This will destroy all containers and networks. All changes made inside containers will be lost.

hosts

Display addresses and host names for each running service, if available.

clean

Clean up vendor directory.

Contributing

Feel free to contribute to this project after reading the contributing guidelines.

Before starting to work on a certain topic, create an new issue first, describing the feature/topic you are going to implement.

License