Update docs for v0.21.0 release

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
Alex Vanin 2021-06-04 14:33:15 +03:00 committed by Stanislav Bogatyrev
parent be20d48c35
commit 9f2a340dd5
6 changed files with 178 additions and 87 deletions

View file

@ -8,7 +8,7 @@
--- ---
## Overview ## Overview
Tools to set up local NeoFS network and Neo 3 privnet. Devenv, for short. Tools to set up local NeoFS network and N3 privnets. Devenv, for short.
## Quick Start ## Quick Start

View file

@ -1,14 +1,17 @@
# Neo 3 privnet service # N3 main chain privnet service
A single-node Neo3 privnet deployment running on A single-node N3 privnet deployment, running on
[neo-go](https://github.com/nspcc-dev/neo-go). [neo-go](https://github.com/nspcc-dev/neo-go). Represents N3 MainNet.
Contracts deployed: Contracts deployed:
- NeoFS [mainnet contract](https://github.com/nspcc-dev/neofs-contract) - NeoFS [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/neofs)
- Processing [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/processing)
RPC available at `http://main_chain.neofs.devenv:30333`.
## .env settings ## .env settings
### CHAIN_URL="https://fs.neo.org/dist/chain.gz" ### CHAIN_URL
URL to get main chain dump. Used on artifact get stage. URL to get main chain dump. Used on artifact get stage.
@ -16,31 +19,30 @@ URL to get main chain dump. Used on artifact get stage.
Path to get main chain dump. If set, overrides `CHAIN_URL`. Path to get main chain dump. If set, overrides `CHAIN_URL`.
### NEOGO_VERSION=0.91.1-pre-389-g71216865 ### NEOGO_VERSION
Version on NeoGo container to use in both main privnet and sidechain. Version of neo-go docker container for main chain deployment.
## Main Privnet GAS ## Main chain wallets
There is a wallet with GAS for both main privnet and side chain in There is a wallet with GAS that used for contract deployment:
`wallets/wallet.json`. `wallets/wallet.json`. This wallet has one account with **empty password**.
``` ```
$ neo-go wallet nep5 balance --token GAS \ $ neo-go wallet nep17 balance \
-w wallets/wallet.json \ -w wallets/wallet.json \
--addr NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx \
-r http://main_chain.neofs.devenv:30333 -r http://main_chain.neofs.devenv:30333
TokenHash: 668e0c1f9d7b70a99dd9e06eadd4c784d641afbc Account NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM
Amount : 9987.92281340 GAS: GasToken (d2a4cff31913016155e38e474a2c06d08be276cf)
Updated: 13908 Amount : 9978.0074623
Updated: 34
``` ```
If you need GAS to deploy contracts on main privnet or create NeoFS account by If you want to operate in main chain with your personal wallet (e.g. to make
making deposits on NeoFS mainnet contract, you can transfer GAS from that a deposit in NeoFS contract), you can transfer GAS from there.
wallet.
Create new wallet 1. Create new wallet.
``` ```
$ neo-go wallet init -a -w wallets/neofs1.json $ neo-go wallet init -a -w wallets/neofs1.json
@ -58,39 +60,46 @@ Confirm passphrase >
wallet successfully created, file location is wallets/neofs1.json wallet successfully created, file location is wallets/neofs1.json
``` ```
Transfer some GAS there 2. Transfer GAS from `wallets/wallet.json`. The password is empty.
``` ```
$ neo-go wallet nep5 transfer --privnet -w wallets/wallet.json \ $ neo-go wallet nep17 transfer \
--from NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx \ -w wallets/wallet.json \
-r http://main_chain.neofs.devenv:30333 \
--from NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM \
--to NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \ --to NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \
--amount 50 --token GAS \ --amount 50 \
--rpc-endpoint http://main_chain.neofs.devenv:30333 --token GAS
``` ```
Check it's there 3. Check it's there.
``` ```
$ neo-go wallet nep5 balance --token GAS \ $ neo-go wallet nep17 balance \
-w wallets/neofs1.json \ -w wallets/neofs1.json \
--addr NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \
-r http://main_chain.neofs.devenv:30333 -r http://main_chain.neofs.devenv:30333
TokenHash: 668e0c1f9d7b70a99dd9e06eadd4c784d641afbc Account NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6
Amount : 50 GAS: GasToken (d2a4cff31913016155e38e474a2c06d08be276cf)
Updated: 14689 Amount : 50
Updated: 14689
``` ```
## Claim GAS from NEO on CN ## Claim GAS from consensus node
If there is no enough GAS on `wallets/wallet.json` account, you can claim some If there is no enough GAS on `wallets/wallet.json` account, you can claim some
GAS from CN node's wallet from `services/chain/node-wallet.json` and then GAS to consensus node's wallet and then transfer it.
transfer it. Wallet password can be found in
`services/chain/protocol.privnet.yml` file.
Consensus node is running with `services/chain/node-wallet.json` wallet. It has
multiple accounts with the password `one`.
Claim GAS to consensus node's wallet. Use account that contains NEO tokens.
``` ```
$ neo-go wallet claim -w services/chain/node-wallet.json \ $ neo-go wallet claim \
-a NVNvVRW5Q5naSx2k2iZm7xRgtRNGuZppAK \ -w services/chain/node-wallet.json \
-r http://main_chain.neofs.devenv:30333 -r http://main_chain.neofs.devenv:30333 \
-a NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP \
Password > Password >
70e09bbd55846dcc7cee23905b737c63e5a80d32e387bce108bc6db8e641fb90 70e09bbd55846dcc7cee23905b737c63e5a80d32e387bce108bc6db8e641fb90
``` ```
@ -98,41 +107,52 @@ Password >
Then you can transfer GAS the same way as it was done in previous section. Then you can transfer GAS the same way as it was done in previous section.
``` ```
neo-go wallet nep5 transfer --privnet -w services/chain/node-wallet.json \ $ neo-go wallet nep17 transfer \
--from NVNvVRW5Q5naSx2k2iZm7xRgtRNGuZppAK \ -w services/chain/node-wallet.json \
-r http://main_chain.neofs.devenv:30333 \
--from NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP \
--to NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \ --to NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \
--amount 500 --token GAS \ --amount 50 \
--rpc-endpoint http://main_chain.neofs.devenv:30333 --token GAS
``` ```
## NeoFS GAS deposit ## NeoFS GAS deposit
NeoFS identifies users by their Neo wallet key pair. To start using NeoFS in NeoFS identifies users by their Neo wallet key pair. To start using NeoFS in
devenv you need to transfer some GAS from Main privnet account to NeoFS main devenv you need to transfer some GAS to NeoFS contract in main chain.
contract's account by calling the `deposit` method.
First you need to get your account's LE encoded ScriptHash Invoke `bin/deposit.sh` script by running `make prepare.ir` command to transfer
50 GAS from account in `wallets/wallet.json` file. Script enters passwords
automatically with `expect` utility.
``` ```
$ neo-go util convert NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 $ make prepare.ir
Password >
Address to BE ScriptHash 82500e2e7de441e1b7378146ad91474f30fa1a0b Can't find matching token in the wallet. Querying RPC-node for balances.
Address to LE ScriptHash 0b1afa304f4791ad468137b7e141e47d2e0e5082 6713c776f4102300691d9c3c493bcd3402434f5e32e8147e0a5bc72209a1e410
Address to Base64 (BE) glAOLn3kQeG3N4FGrZFHTzD6Ggs=
Address to Base64 (LE) Cxr6ME9Hka1GgTe34UHkfS4OUII=
String to Hex 4e586e7a77334a3956764b586a4d314250414a4b3451557054744551753454705536
String to Base64 TlhuenczSjlWdktYak0xQlBBSks0UVVwVHRFUXU0VHBVNg==
``` ```
And call the `deposit` method: Script converts addresses and executes this command:
``` ```
$ neo-go contract invokefunction -w wallets/neofs1.json \ $ neo-go wallet nep17 transfer \
-a NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \ -w wallets/wallet.json \
-r http://main_chain.neofs.devenv:30333 \ -r http://main_chain.neofs.devenv:30333 \
5f490fbd8010fd716754073ee960067d28549b7d \ --from NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM \
deposit 0b1afa304f4791ad468137b7e141e47d2e0e5082 \ --to NerhjaqJsJt4LxMqUbkkVMpsF2d9TtcpFv \
int:50 bytes: -- 0b1afa304f4791ad468137b7e141e47d2e0e5082 --token GAS \
--amount 50
Enter account NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 password > ```
Sent invocation transaction 50e25f8e85c3b52dbd99381104cbe8056dad1a6e8809e8bf0e5d0a2527f55932
You can specify any wallet address scripthash in the transfer's data argument,
and NeoFS deposit will be transferred to that address.
```
$ neo-go wallet nep17 transfer \
-w wallets/wallet.json \
-r http://main_chain.neofs.devenv:30333 \
--from NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM \
--to NerhjaqJsJt4LxMqUbkkVMpsF2d9TtcpFv \
--token GAS \
--amount 50 \
hash160:bd711de066e9c2f7b502c7f3f0e0a6f1c8341edd
``` ```

View file

@ -9,7 +9,7 @@ simple steps.
1. Get the key in WIF format 1. Get the key in WIF format
``` ```
$ docker exec -it main_chain neo-go wallet export -w wallets/wallet.json -d NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx $ docker exec -it main_chain neo-go wallet export -w wallets/wallet.json -d NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM
Enter password > Enter password >
KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr
``` ```
@ -21,9 +21,9 @@ $ neofs-cli util keyer KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr
PrivateKey 1dd37fba80fec4e6a6f13fd708d8dcb3b29def768017052f6c930fa1c5d90bbb PrivateKey 1dd37fba80fec4e6a6f13fd708d8dcb3b29def768017052f6c930fa1c5d90bbb
PublicKey 031a6c6fbbdf02ca351745fa86b9ba5a9452d785ac4f7fc2b7548ca2a46c4fcf4a PublicKey 031a6c6fbbdf02ca351745fa86b9ba5a9452d785ac4f7fc2b7548ca2a46c4fcf4a
WIF KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr WIF KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr
Wallet3.0 NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx Wallet3.0 NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM
ScriptHash3.0 12b97a2206ae4b10c7e0194b7b655c32cc912057 ScriptHash3.0 5ea4d57ff4b09098a37db8138686ae2ef6a5b9aa
ScriptHash3.0BE 572091cc325c657b4b19e0c7104bae06227ab912 ScriptHash3.0BE aab9a5f62eae868613b87da39890b0f47fd5a45e
``` ```
3. Dump into file in binary format 3. Dump into file in binary format
@ -35,7 +35,7 @@ $ xxd wallets/wallet.key
00000010: b29d ef76 8017 052f 6c93 0fa1 c5d9 0bbb ...v.../l....... 00000010: b29d ef76 8017 052f 6c93 0fa1 c5d9 0bbb ...v.../l.......
``` ```
Later this functionality will be included in `neofs-cli` directly. Later you will be able to provide wallet file in neofs-node config.
### How to create Neo wallet JSON file using a NeoFS key file? ### How to create Neo wallet JSON file using a NeoFS key file?

View file

@ -1,16 +1,19 @@
# NeoFS Inner Ring # NeoFS Inner Ring
Minimal set of seven NeoFS InnerRing as required by Governance scheme. NeoFS Inner Ring (Alphabet) node. According to governance scheme, Inner Ring
should contain Alphabet nodes that share key with one of side chain consensus
nodes. In basic setup there is a single consensus node and single Inner Ring
(Alphabet) node.
## .env settings ## .env settings
### IR_VERSION=0.12.0 ### IR_VERSION
Image version label to use for InnerRing containers. Image version label to use for Inner Ring docker containers.
If you want to use locally built image, just set it's label here. Instead of If you want to use locally built image, just set it's label here. Instead of
pulling from DockerHub, the local image will be used. pulling from DockerHub, the local image will be used.
### IR_IMAGE=nspccdev/neofs-ir ### IR_IMAGE=nspccdev/neofs-ir
Image label prefix to use for InnerRing containers. Image label prefix to use for Inner Ring docker containers.

View file

@ -1,18 +1,85 @@
# NeoFS sidechain service # N3 NeoFS side chain privnet service
A single-node N3 privnet deployment, running on
[neo-go](https://github.com/nspcc-dev/neo-go). Represents N3 NeoFS SideChain.
It's a single-node Neo3-based NeoFS sidechain deployment running on Contracts deployed:
[neo-go](https://github.com/nspcc-dev/neo-go). - Alphabet (AZ) [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/alphabet)
- Audit [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/audit)
- Balance [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/balance)
- Container [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/container)
- Netmap [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/netmap)
- NeoFSID [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/neofsid)
- Proxy [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/proxy)
- Reputation [contract](https://github.com/nspcc-dev/neofs-contract/tree/master/reputation)
RPC available at `http://morph_chain.neofs.devenv:30333`.
## .env settings ## .env settings
### MORPH_CHAIN_URL="https://fs.neo.org/dist/morph.chain.gz" ### MORPH_CHAIN_URL
URL to get NeoFS sidechain dump. Used on artifact get stage. URL to get side chain dump. Used on artifact get stage.
### MORPH_CHAIN_PATH ### MORPH_CHAIN_PATH
Path to get NeoFS sidechain chain dump. If set, overrides `MORPH_CHAIN_URL`. Path to get side chain dump. If set, overrides `CHAIN_URL`.
### NEOGO_VERSION=0.91.1-pre-389-g71216865 ### NEOGO_VERSION
Version on NeoGo container to use in both main privnet and sidechain. Version of neo-go docker container for side chain deployment.
## Side chain wallets
There is a wallet with GAS that used for contract deployment:
`wallets/wallet.json`. This wallet has one account with **empty password**.
```
$ neo-go wallet nep17 balance \
-w wallets/wallet.json \
-r http://morph_chain.neofs.devenv:30333
Account NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM
GAS: GasToken (d2a4cff31913016155e38e474a2c06d08be276cf)
Amount : 189826.0515316
Updated: 3909
NEOFS: NeoFS Balance (69550190e740b93f92dbd5dea52246f550391057)
Amount : 50
Updated: 3909
```
This way you can also monitor NeoFS internal balance of your account.
## NeoFS global config
NeoFS uses global configuration to store epoch duration, maximum object size,
container fee and other network parameters. Global configuration is stored in
netmap contract and managed by Inner Ring (Alphabet) nodes.
To change these parameters use `make update.*` commands. Command down below
changes epoch duration from 300 blocks (about 300 seconds with 1bps) to 30.
Script enters passwords automatically with `expect` utility.
```
$ make update.epoch_duration val=30
Changing EpochDuration configration value to 30
Enter account NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP password >
Sent invocation transaction bdc0fa88cd6719ef6df2b9c82de423ddec6141ca24255c2d0072688083b1de9d
Updating NeoFS epoch to 20
Enter account NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP password >
Sent invocation transaction 12296e1ce24dd6c04edb9c56d0a1d0e26d3226adefb0333c74a28788f44a8d0f
```
Read more about available configuration in Makefile help.
```
$ make help
...
Targets:
...
update.audit_fee Update audit fee per result in fixed 12 (make update.audit_fee val=100)
update.basic_income_rate Update basic income rate in fixed 12 (make update.basic_income_rate val=1000)
update.container_fee Update container fee per alphabet node in fixed 12 (make update.container_fee val=500)
update.eigen_trust_iterations Update amount of EigenTrust iterations (make update.eigen_trust_iterations val=2)
update.epoch_duration Update epoch duration in side chain blocks (make update.epoch_duration val=30)
update.max_object_size Update max object size in bytes (make update.max_object_size val=1000)
```

View file

@ -1,13 +1,14 @@
# Storage nodes service # Storage service
## .env settings ## .env settings
### NODE_VERSION=0.12.0 ### NODE_VERSION
Image version label to use for Storage Node containers. Image version label to use for Storage docker containers.
If you want to use locally built image, just set it's label here. Instead of If you want to use locally built image, just set it's label here. Instead of
pulling from DockerHub, the local image will be used. pulling from DockerHub, the local image will be used.
### NODE_IMAGE=nspccdev/neofs-ir ### NODE_IMAGE=nspccdev/neofs-ir
Image label prefix to use for Storage containers.
Image label prefix to use for Storage docker containers.