139 lines
4 KiB
Markdown
139 lines
4 KiB
Markdown
|
# Neo 3 privnet service
|
||
|
|
||
|
A single-node Neo3 privnet deployment running on
|
||
|
[neo-go](https://github.com/nspcc-dev/neo-go).
|
||
|
|
||
|
Contracts deployed:
|
||
|
- NeoFS [mainnet contract](https://github.com/nspcc-dev/neofs-contract)
|
||
|
|
||
|
## .env settings
|
||
|
|
||
|
### CHAIN_URL="https://fs.neo.org/dist/devenv.gz"
|
||
|
|
||
|
URL to get main chain dump. Used on artifact get stage.
|
||
|
|
||
|
### CHAIN_PATH
|
||
|
|
||
|
Path to get main chain dump. If set, overrides `CHAIN_URL`.
|
||
|
|
||
|
### NEOGO_VERSION=0.91.0-6-gd7e13de5
|
||
|
|
||
|
Version on NeoGo container to use in both main privnet and sidechain.
|
||
|
|
||
|
## Main Privnet GAS
|
||
|
|
||
|
There is a wallet with GAS for both main privnet and side chain in
|
||
|
`wallets/wallet.json`.
|
||
|
|
||
|
```
|
||
|
$ neo-go wallet nep5 balance --token GAS \
|
||
|
-w wallets/wallet.json \
|
||
|
--addr NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx \
|
||
|
-r http://main_chain.neofs.devenv:30333
|
||
|
|
||
|
TokenHash: 668e0c1f9d7b70a99dd9e06eadd4c784d641afbc
|
||
|
Amount : 9987.92281340
|
||
|
Updated: 13908
|
||
|
```
|
||
|
|
||
|
If you need GAS to deploy contracts on main privnet or create NeoFS account by
|
||
|
making deposits on NeoFS mainnet contract, you can transfer GAS from that
|
||
|
wallet.
|
||
|
|
||
|
Create new wallet
|
||
|
|
||
|
```
|
||
|
$ neo-go wallet init -a -w wallets/neofs1.json
|
||
|
|
||
|
Enter the name of the account > neofs1
|
||
|
Enter passphrase >
|
||
|
Confirm passphrase >
|
||
|
|
||
|
{
|
||
|
"version": "3.0",
|
||
|
"accounts": [
|
||
|
{
|
||
|
"address": "NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6",
|
||
|
...
|
||
|
wallet successfully created, file location is wallets/neofs1.json
|
||
|
```
|
||
|
|
||
|
Transfer some GAS there
|
||
|
```
|
||
|
$ neo-go wallet nep5 transfer --privnet -w wallets/wallet.json \
|
||
|
--from NTrezR3C4X8aMLVg7vozt5wguyNfFhwuFx \
|
||
|
--to NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \
|
||
|
--amount 50 --token GAS \
|
||
|
--rpc-endpoint http://main_chain.neofs.devenv:30333
|
||
|
```
|
||
|
|
||
|
Check it's there
|
||
|
```
|
||
|
$ neo-go wallet nep5 balance --token GAS \
|
||
|
-w wallets/neofs1.json \
|
||
|
--addr NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \
|
||
|
-r http://main_chain.neofs.devenv:30333
|
||
|
|
||
|
TokenHash: 668e0c1f9d7b70a99dd9e06eadd4c784d641afbc
|
||
|
Amount : 50
|
||
|
Updated: 14689
|
||
|
```
|
||
|
|
||
|
## Claim GAS from NEO on CN
|
||
|
|
||
|
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
|
||
|
transfer it. Wallet password can be found in
|
||
|
`services/chain/protocol.privnet.yml` file.
|
||
|
|
||
|
```
|
||
|
$ neo-go wallet claim -w services/chain/node-wallet.json \
|
||
|
-a NVNvVRW5Q5naSx2k2iZm7xRgtRNGuZppAK \
|
||
|
-r http://main_chain.neofs.devenv:30333
|
||
|
|
||
|
Password >
|
||
|
70e09bbd55846dcc7cee23905b737c63e5a80d32e387bce108bc6db8e641fb90
|
||
|
```
|
||
|
|
||
|
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 \
|
||
|
--from NVNvVRW5Q5naSx2k2iZm7xRgtRNGuZppAK \
|
||
|
--to NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \
|
||
|
--amount 500 --token GAS \
|
||
|
--rpc-endpoint http://main_chain.neofs.devenv:30333
|
||
|
```
|
||
|
|
||
|
## NeoFS GAS deposit
|
||
|
|
||
|
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
|
||
|
contract's account by calling the `deposit` method.
|
||
|
|
||
|
First you need to get your account's LE encoded ScriptHash
|
||
|
|
||
|
```
|
||
|
$ neo-go util convert NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6
|
||
|
|
||
|
Address to BE ScriptHash 82500e2e7de441e1b7378146ad91474f30fa1a0b
|
||
|
Address to LE ScriptHash 0b1afa304f4791ad468137b7e141e47d2e0e5082
|
||
|
Address to Base64 (BE) glAOLn3kQeG3N4FGrZFHTzD6Ggs=
|
||
|
Address to Base64 (LE) Cxr6ME9Hka1GgTe34UHkfS4OUII=
|
||
|
String to Hex 4e586e7a77334a3956764b586a4d314250414a4b3451557054744551753454705536
|
||
|
String to Base64 TlhuenczSjlWdktYak0xQlBBSks0UVVwVHRFUXU0VHBVNg==
|
||
|
```
|
||
|
|
||
|
And call the `deposit` method:
|
||
|
```
|
||
|
$ neo-go contract invokefunction -w wallets/neofs1.json \
|
||
|
-a NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 \
|
||
|
-r http://main_chain.neofs.devenv:30333 \
|
||
|
af5dc5f7e6a6efc64d679098f328027591a2e518 \
|
||
|
deposit 0b1afa304f4791ad468137b7e141e47d2e0e5082 \
|
||
|
int:50 bytes: -- 0b1afa304f4791ad468137b7e141e47d2e0e5082
|
||
|
|
||
|
Enter account NXnzw3J9VvKXjM1BPAJK4QUpTtEQu4TpU6 password >
|
||
|
Sent invocation transaction 50e25f8e85c3b52dbd99381104cbe8056dad1a6e8809e8bf0e5d0a2527f55932
|
||
|
```
|