forked from TrueCloudLab/frostfs-node
100 lines
3.1 KiB
Markdown
100 lines
3.1 KiB
Markdown
|
# NeoFS Admin Tool
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
Admin tool provides an easier way to deploy and maintain private installation
|
||
|
of NeoFS. Private installation contains a set of consensus N3 nodes, NeoFS
|
||
|
Alphabet, and Storage nodes. Admin tool generates consensus keys, initializes
|
||
|
side chain and provides functions to update the network and register new
|
||
|
Storage nodes.
|
||
|
|
||
|
## Build
|
||
|
|
||
|
To build binary locally use `make bin/neofs-adm` command.
|
||
|
|
||
|
For clean build inside docker container use `make docker/bin/neofs-adm`.
|
||
|
|
||
|
Build docker image with `make image-adm`.
|
||
|
|
||
|
At NeoFS private install deployment, neofs-adm requires compiled NeoFS
|
||
|
contracts. Find them in the latest release of
|
||
|
[neofs-contract repository](https://github.com/nspcc-dev/neofs-contract/releases).
|
||
|
|
||
|
|
||
|
## Commands
|
||
|
|
||
|
### Config
|
||
|
|
||
|
Config section provides `init` command that creates configuration file for the
|
||
|
private installation deployment and updates. Config file is optional, all
|
||
|
parameters may be passed by arguments or read from standard input (wallet
|
||
|
passwords).
|
||
|
|
||
|
Config example:
|
||
|
```yaml
|
||
|
rpc-endpoint: https://address:port # side chain RPC node endpoint
|
||
|
alphabet-wallets: /path # path to consensus node / alphabet wallets storage
|
||
|
network:
|
||
|
max_object_size: 67108864 # max size of single NeoFS object, bytes
|
||
|
epoch_duration: 240 # duration of NeoFS epoch in blocks, consider block generation frequency in side chain
|
||
|
basic_income_rate: 0 # basic income rate, for private consider 0
|
||
|
fee:
|
||
|
audit: 0 # network audit fee, for private installation consider 0
|
||
|
candidate: 0 # inner ring candidate registration fee, for private installation consider 0
|
||
|
container: 0 # container creation fee, for private installation consider 0
|
||
|
withdraw: 0 # withdraw fee, for private installation consider 0
|
||
|
credentials: # passwords for consensus node / alphabet wallets
|
||
|
az: ...
|
||
|
buky: ...
|
||
|
vedi: ...
|
||
|
glagoli: ...
|
||
|
dobro: ...
|
||
|
yest: ...
|
||
|
zhivete: ...
|
||
|
```
|
||
|
|
||
|
### Morph
|
||
|
|
||
|
#### Network deployment
|
||
|
|
||
|
- Use `generate-alphabet` to generate set of wallets for consensus and
|
||
|
Alphabet nodes.
|
||
|
|
||
|
- `init` will initialize side chain by deploying smart contracts and
|
||
|
setting provided NeoFS network configuration.
|
||
|
|
||
|
- `generate-storage-wallet` generates wallet for the Storage node that
|
||
|
is ready for deployment. It also transfers a bit of side chain GAS so this
|
||
|
wallet can be used for NeoFS bootstrap.
|
||
|
|
||
|
#### Network maintenance
|
||
|
|
||
|
- `force-new-epoch` increments NeoFS epoch number and enforces new epoch
|
||
|
handlers in NeoFS nodes.
|
||
|
|
||
|
- `refill-gas` transfers side chain GAS to specified wallet.
|
||
|
|
||
|
- `update-contracts` starts contract update routine.
|
||
|
|
||
|
#### Container migration
|
||
|
|
||
|
If network has to be redeployed, these commands will migrate all container meta
|
||
|
info. These commands **do not migrate actual objects**.
|
||
|
|
||
|
- `dump-containers` saves all containers and metadata registered in container
|
||
|
contract to a file.
|
||
|
|
||
|
- `restore-containers` restores previously saved containers in container
|
||
|
contract.
|
||
|
|
||
|
#### Network info
|
||
|
|
||
|
- `dump-config` prints NeoFS network configuration.
|
||
|
|
||
|
- `dump-hashes` prints NeoFS contract addresses stored in NNS.
|
||
|
|
||
|
|
||
|
## Private network deployment
|
||
|
|
||
|
Read step-by-step guide of private storage deployment [in docs](./docs/deploy.md).
|