Run Waterfall Node Testnet8 in Docker
What is new in delegate fork? March 19th at 8:00 UTC, at slot 2,729,920, which corresponds to epoch 85,310
Features
- Optimization of storage:
This will reduce disk storage requirements significantly and decrease the number of read/write operations.
At present(15/02/2024), a node synchronized from scratch will require 50 GB of storage. - Integration of stake delegation functions into the protocol.
This functionality will enable the following use cases:- Distribution of stake ownership and/or rewards. For example, three users sharing a stake and rewards equally.
- Rules for a trial period, during which one or more users can withdraw their stake and rewards, with additional withdrawals permitted afterwards.
- One or more users can initiate reward or stake payouts, while other users receive rewards and/or stakes.
This will allow hot wallets to send rewards or stake to cold wallets, ensuring the security of your WATER tokens.
Fixes
- Enhanced synchronization between coordinators and validators.
- Resolution of synchronization errors when a node performs a stake or reward withdrawal operation.
- Additional minimum block validation before block retransmission across the network.
What is new?
Features
- Optimizations and improvements in synchronization.
During previous synchronization, the coordinating node was synchronized first, and then the shard node. Now synchronization occurs in parallel, which has reduced synchronization time by about 1/3. - Improve search for new peers in the shard. Improved search for new peers in the shard, boot, and regular nodes, with added filtration by genesis. Now nodes initiate a connection only if their genesis matches. This has reduced the amount of spam during connection, and nodes can now find each other faster.
- Validators are automatically unlocked.
Previously, it was necessary to specify the addresses that needed to be unlocked when starting the node so that validators could sign blocks. Now it is sufficient to specify the path to the password file and the account will be unlocked before creating the block. - Proposer recommendation.
An improvement on optimistic consensus has been implemented where participants in the previous slot send their DAG to one another, and the leader uses this information to publish an optimal block. This step adds reliability to the operation of optimistic consensus. - Empty block creation.
If there were no blocks in the epoch due to the lack of transactions in the network, the validator can create an empty block. This is necessary in order to generate a new hash, which is used for shuffling and determining the roles for validators. This reduces the risk of predictability of validator roles when there are no transactions in the network. - Estimate of transaction gas.
Previously, transaction gas costs were estimated during block creation and validation, which was irrelevant. We now add gas validation when the transaction is added to the pool and during finalization. We use the value specified in the transaction to validate the block size. - Storage optimization.
We optimized the storage of the state on the coordinator. Compared to testnet7, we reduced it by a factor of 4. Currently, approximate expenses for disk space are increasing by 1 GB every day.
Fixes
- Fixed the issue with calculating the hash for the state
- Fixed deployment of contracts in Hardhat and Remix
- Fixed downloading multiple large blocks simultaneously
- Fixed the launch of the node in read mode
- Fixed the shard from the last saved checkpoint during node startup.
- Fixed the bloom indexer.
Refactoring
- Optimized the signature of the block in the shard
- Optimized the creation of a block in the shard.
- Refactored validation of a block in the shard
- Deleted unused Sealer
- Deleted unused bad block.
- Update version of the blst library
- Optimized the propagation of blocks, allowing us to increase the block size to 10,000 transactions.
Video manual
Install Docker
You need to install Docker, which will allow you to perform further steps consistently across any operating system. You can install Docker for your operating system using the following links:
Requirements
Hardware
Minimal
- CPU (Cores):
2.0
- Memory (GiB):
4.0
- SSD Disk (GiB):
512.0
- Bandwidth (Mb/s):
10.0
Recommend
- CPU (Cores):
4.0
- Memory (GiB):
8.0
- SSD Disk (GiB):
1024.0
- Bandwidth (Mb/s):
20.0
Windows
- For the Windows operating system, you need to use all of the commands in the PowerShell terminal.
MacOS on arm
We recommend enabling the following settings:
Login to private registry
The source code for Waterfall is currently closed (it will be opened after a security audit), so the source code and images are stored in a private repository. To access the private Docker image registry, you need to log in. Execute the following command in the terminal:
docker login -u public -p glpat-XvZ6bPe48rFGZ5z14Fxz registry.waterfall.network
Pull image
Download image from the private registry, where you logged in on the previous step. Use the latest Docker image that contains all the necessary software to run the node. To do this, you need to execute the following command in the terminal:
docker pull registry.waterfall.network/waterfall/protocol/docker:testnet8
How to sync faster?
If you don't want to sync from the genesis block, you can download a network state:
- Go home directory
cd ~
- You should not have a
~/.wf8
directory. - Download backup (~50G).
wget https://storage.googleapis.com/wf-snapshots/wf8-3427744.tar
- Extract archive
tar -xvf wf8-3168380.tar.gz
- Check results
> ls ~/.wf8 coordinator gwat > ls ~/.wf8/coordinator beaconchaindata > ls ~/.wf8/coordinator/beaconchaindata beaconchain.db > ls ~/.wf8/gwat gwat > ls ~/.wf8/gwat/gwat LOCK chaindata lightchaindata nodes triecache
Run Node
Execute the following command in the terminal:
cd ~
Executing the following command in the terminal:
docker run --platform linux/amd64 --name wf -d --rm -p 4000:4000 -p 13000:13000 -p 12000:12000/udp -p 30303:30303 -p 9545:9545 -p 9546:9546 -v $PWD/.wf8/logs:/opt/wf/data/logs -v $PWD/.wf8/gwat:/opt/wf/data/gwat -v $PWD/.wf8/coordinator:/opt/wf/data/coordinator registry.waterfall.network/waterfall/protocol/docker:testnet8
- the generation of coordinator and validator keys
- keys are imported into the node wallets
- the node starts up
- The database data is stored in the home directory
~/.wf8
Check status
You can check the status of the node by executing the following command in the terminal:
docker exec -it wf /opt/wf/sh/status.sh
Main:
The Coordinator Node isn't running
- the Coordinator node is not running, it is still startingThe Coordinator node is syncing. Distance: 9294
- the Coordinator node is synchronizing, synchronization occurs when Distance will be equal to 0The Validator Node isn't running
- the Validator node is synchronizing- The Validator node is synchronizing:
The Validator node is syncing. Status { currentBlock: 0, currentSlot: 15738, finalizedSlot: 0, highestBlock: 0, knownStates: 0, maxDagSlot: 0, pulledStates: 0, startingBlock: 0 }
The node is synchronized.
- the node is synchronized.Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
- Node IDCoordinator peers: 5
- number of connected nodes with coordinatorsValidator peers: 10
- number of connected nodes with validatorsKeys weren't generated
- this means that the keys are still being generated and the node has not yet started
-
Worker #<workers index>
Coordinator public key: 0xad7aac64a8ab9507a3b06ac46a30d48d89c8bfb4f36d402cfa4e5817ecc37cb01dfd339295f99565367af78aa727a2c1
- the coordinator's public key, which holds the stake and earns in the coordinating network.Validator address: 0x2cd4289d5d5246ccb557a493e65a2ac94914b8b0
- the validator's address, that creates blocks in the BlockDAG network and gets rewards for it.Withdrawal address: 0x2cd4289d5d5246ccb557a493e65a2ac94914b8b0
- The address that can send a deactivation transaction and take the rewards and stake of the coordinator and validator.The coordinator has not been activated
- indicates that either the transaction with the stake has not been sent, or this transaction has not yet been processed.Coordinator status: active_ongoing
- coordinator status:pending_initialized
- When the first deposit is processed, but not enough funds are available (or it is not yet the end of the first epoch) to get the coordinator into the activation queue.pending_queued
- When the coordinator is waiting to get activated, and it has enough funds, etc. While in the queue, the coordinator activation epoch keeps changing until it gets to the front and makes it through (finalization is a requirement here too).active_ongoing
- When the coordinator is still attesting, and has not initiated any exit.active_exiting
- When the coordinator is still active, but has filed a voluntary request to exit.active_slashed
- When the coordinator is still active, but has a slashed status and is scheduled to exit.exited_unslashed
- When the coordinator has reached a regular exit epoch, not being slashed, and no longer has to attest, but cannot withdraw yet.exited_slashed
- When the coordinator has reached a regular exit epoch, but was slashed, and has to wait for a longer withdrawal period.withdrawal_possible
- After the coordinator has exited, and is later permitted to move funds, and is truly out of the system.withdrawal_done
- funds have actually been moved
Stake: 3200.000000000 WATER
- the stake that was sentCoordinator balance: 3200.038794846 WATER
- the coordinator balance, along with the stakeValidator balance: 0.000000000000000000 WATER
- the validator balance
-
The Coordinator node needs to synchronize. The
Distance
field should decrease when you run the status command next time - The Validator node needs to synchronize. The
FinalizedSlot
field is catching up to theCurrentSlot
when you run the status command next time.
Usually, the synchronization process takes hours and depends on your hardware, internet speed and other factors.
Onboarding
If the node is running and synchronized (See the result of the status command – The node is synchronized), you can add and activate the worker by taking the following steps:
- Install Metamask according to the instructions
- Add a new network in Metamask by specifying the following parameters:
- Network Name:
Waterfall 8 Test Network
- RPC URL:
https://rpc.testnet8.waterfall.network/
- Chain ID:
8601152
- Currency symbol:
WATER
- Block Explorer URL: https://explorer.testnet8.waterfall.network
- Network Name:
- In the advanced settings of Metamask, enable the display of the data field when sending a transaction:
- Create an account address in Metamask if you don't have one already
- On the faucet page, get 4000 WATER for your account.
- Generate keys if you don't have already mnemonic phrases to add a new first worker to your node by running the following command in the terminal:
You have to save mnemonic phrases to add new worker in future or restore keys
docker exec -it wf /opt/wf/sh/add.sh new-mnemonic <withdrawals address>
Example 1:In response, you will get the following result:docker exec -it wf /opt/wf/sh/add.sh new-mnemonic
Example 2:Save next phrases to restore keys in future: hint deer steak absorb strategy despair bread element fine twice device frozen genuine poem buyer reason agree trip stumble leisure notable country belt sad Generated new Worker #0: Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Send tx by Metamask to activate Worker: To: 0x6671Ed1732b6b5AF82724A1d1A94732D1AA37aa6 Value: 3200 WATER Data: 0xf401b2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b41f4bbc7feb1ed211d97adab2137c837f586026641f4bbc7feb1ed211d97adab2137c837f5860266adfca54d3ed084d4d64faa112031cc32732ad7980cd3e3905489ea8ff91f4591cb38b0062e4e41375a1a3a22fdc7b4ae0ee19dd1f2dca01d36cccad73c9208dee5e7d94f07b5c355b7c62be306347d80f4cebf03eb048aef9bae2f529208a909
In response, you will get the following result:docker exec -it wf /opt/wf/sh/add.sh new-mnemonic 0x30c35895FE0f7768A261b5326e4332cBb4556Ba3
Save next phrases to restore keys in future: hint deer steak absorb strategy despair bread element fine twice device frozen genuine poem buyer reason agree trip stumble leisure notable country belt sad Generated new Worker #1: Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159 Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3 Send tx by Metamask to activate Worker: To: 0x6671Ed1732b6b5AF82724A1d1A94732D1AA37aa6 Value: 3200 WATER Data: 0xf401ab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159b68a027ffb5089ed1573a301cfa4d1e2f273094c30c35895fe0f7768a261b5326e4332cbb4556ba3b40601fa62c2682e498ac4005592097e0b1dd840884f6b4bcfdf55db99b6768cce98f1f9c5b3032a447bb9ea79a01297094bbeccdac4a86720969496a916c11416b0fd757345dc6c37b509d537729216278f4b6496808a73b879614f2ad5d9ab
- Generate keys if you already have mnemonic phrases to add a new worker to your node by running the following command in the terminal:
Example 1:
docker exec -it wf /opt/wf/sh/add.sh existing-mnemonic "<mnemonic>" <withdrawals address>
In response, you will get the following result:docker exec -it wf /opt/wf/sh/add.sh existing-mnemonic "hint deer steak absorb strategy despair bread element fine twice device frozen genuine poem buyer reason agree trip stumble leisure notable country belt sad"
Example 2:Generated new Worker #0: Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Send tx by Metamask to activate Worker: To: 0x6671Ed1732b6b5AF82724A1d1A94732D1AA37aa6 Value: 3200 WATER Data: 0xf401b2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b41f4bbc7feb1ed211d97adab2137c837f586026641f4bbc7feb1ed211d97adab2137c837f5860266adfca54d3ed084d4d64faa112031cc32732ad7980cd3e3905489ea8ff91f4591cb38b0062e4e41375a1a3a22fdc7b4ae0ee19dd1f2dca01d36cccad73c9208dee5e7d94f07b5c355b7c62be306347d80f4cebf03eb048aef9bae2f529208a909
In response, you will get the following result:docker exec -it wf /opt/wf/sh/add.sh existing-mnemonic "hint deer steak absorb strategy despair bread element fine twice device frozen genuine poem buyer reason agree trip stumble leisure notable country belt sad" 0x30c35895FE0f7768A261b5326e4332cBb4556Ba3
Generated new Worker #1: Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159 Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3 Send tx by Metamask to activate Worker: To: 0x6671Ed1732b6b5AF82724A1d1A94732D1AA37aa6 Value: 3200 WATER Data: 0xf401ab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159b68a027ffb5089ed1573a301cfa4d1e2f273094c30c35895fe0f7768a261b5326e4332cbb4556ba3b40601fa62c2682e498ac4005592097e0b1dd840884f6b4bcfdf55db99b6768cce98f1f9c5b3032a447bb9ea79a01297094bbeccdac4a86720969496a916c11416b0fd757345dc6c37b509d537729216278f4b6496808a73b879614f2ad5d9ab
- If the node is running and synchronized (check the result of the status command), you can activate the Worker. If you activate the Worker before the node is synchronized, you will incur penalties.
Generate data for the transaction by running the following command in the terminal, or use the information from the previous 2 steps:
Example:
docker exec -it wf /opt/wf/sh/deposit.sh <workers index>
In response, you will get the following result:docker exec -it wf /opt/wf/sh/deposit.sh 0
Send tx by Metamask to activate Worker: To: 0x6671Ed1732b6b5AF82724A1d1A94732D1AA37aa6 Value: 3200 WATER Data: 0xf401b2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b41f4bbc7feb1ed211d97adab2137c837f586026641f4bbc7feb1ed211d97adab2137c837f5860266adfca54d3ed084d4d64faa112031cc32732ad7980cd3e3905489ea8ff91f4591cb38b0062e4e41375a1a3a22fdc7b4ae0ee19dd1f2dca01d36cccad73c9208dee5e7d94f07b5c355b7c62be306347d80f4cebf03eb048aef9bae2f529208a909
- Using MetaMask, send a transaction to the address, with the amount and data obtained in the previous step
- After this, execute the status command in the terminal to determine that your worker is running.
Example:In response, you will get the following result:docker exec -it wf /opt/wf/sh/status.sh
Main: The node is synchronized. Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a Coordinator peers: 46 Validator peers: 21 Worker #0: Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Coordinator status: active_ongoing Stake: 3200.000000000 WATER Coordinator balance: 3205.186418496 WATER Validator status: active Validator balance: 0.00029646821736 WATER Worker #1: Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159 Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3 The coordinator has not been activated Validator status: pending_activation Validator balance: 0 WATER
Offboarding
Withdraw
To withdraw your rewards, run the following command:
docker exec -it wf /opt/wf/sh/withdraw.sh <workers index> <amount in WATTER>
Example:
docker exec -it wf /opt/wf/sh/status.sh
Main:
The node is synchronized.
Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
Coordinator peers: 46
Validator peers: 21
Worker #0:
Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b
Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3206.703440448 WATER
Validator status: active
Validator balance: 0.00088940465208 WATER
Worker #1:
Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159
Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c
Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3203.327661056 WATER
Validator status: active
Validator balance: 0.00059293643472 WATER
docker exec -it wf /opt/wf/sh/withdraw.sh 0 6.703440448
TxHash: "0xa603a6b66a5f2f3d27185a70c3ce25ebccf610e81438be17a0bd51ec8857b87f"
docker exec -it wf /opt/wf/sh/withdraw.sh 1 3.327661056
Send tx by Metamask:
From: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
To: 0x6671Ed1732b6b5AF82724A1d1A94732D1AA37aa6
Value: 0 WATER
Data: 0xf406b68a027ffb5089ed1573a301cfa4d1e2f273094c2e2e3a1987c80000
docker exec -it wf /opt/wf/sh/status.sh
Main:
The node is synchronized.
Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
Coordinator peers: 45
Validator peers: 20
Worker #0:
Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b
Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3207.822642907 WATER
Validator status: active
Validator balance: 6.7043843461431 WATER
Worker #1:
Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159
Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c
Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3201.129999961 WATER
Validator status: active
Validator balance: 0.00187384655518272 WATER
Transfer
To transfer the rewards to yourself, run the following command:
docker exec -it wf /opt/wf/sh/transfer.sh <workers index> <to address> <amount in WATTER>
Example:
docker exec -it wf /opt/wf/sh/status.sh
Main:
The node is synchronized.
Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
Coordinator peers: 45
Validator peers: 20
Worker #0:
Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b
Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3208.067323867 WATER
Validator status: active
Validator balance: 6.704829048469139 WATER
Worker #1:
Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159
Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c
Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3201.350212825 WATER
Validator status: active
Validator balance: 0.00187384655518272 WATER
docker exec -it wf /opt/wf/sh/transfer.sh 0 0x4d76c92aa070c5fbdef46b309737cf1b42eb07ca 6.7
TxHash: "0x90228c83b80b26128405bda59a9b80a89e7ceeba5cb6b406e06e37649e10f866"
docker exec -it wf /opt/wf/sh/status.sh
Main:
The node is synchronized.
Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
Coordinator peers: 45
Validator peers: 20
Worker #0:
Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b
Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3208.091791963 WATER
Validator status: active
Validator balance: 0.00444734614309968 WATER
Worker #1:
Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159
Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c
Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3201.374680921 WATER
Validator status: active
Validator balance: 0.00187384655518272 WATER
Exit
To deactivate the worker, run the following command:
docker exec -it wf /opt/wf/sh/exit.sh <workers index>
Example:
docker exec -it wf /opt/wf/sh/status.sh
Main:
The node is synchronized.
Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
Coordinator peers: 45
Validator peers: 20
Worker #0:
Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b
Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3208.140728155 WATER
Validator status: active
Validator balance: 0.00444734614309968 WATER
Worker #1:
Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159
Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c
Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3201.399149017 WATER
Validator status: active
Validator balance: 0.00187384655518272 WATER
docker exec -it wf /opt/wf/sh/exit.sh 0
TxHash: "0xe94baf143ee61ed30671cf7b53681fa02206d1b79799acdb59a83f3ec0127815"
docker exec -it wf /opt/wf/sh/exit.sh 1
Send tx by Metamask:
From: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
To: 0x6671Ed1732b6b5AF82724A1d1A94732D1AA37aa6
Value: 0 WATER
Data: 0xf403ab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159b68a027ffb5089ed1573a301cfa4d1e2f273094c
docker exec -it wf /opt/wf/sh/status.sh
Main:
The node is synchronized.
Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
Coordinator peers: 45
Validator peers: 20
Worker #0:
Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b
Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Coordinator status: active_exiting
Stake: 3200.000000000 WATER
Coordinator balance: 3208.336472923 WATER
Validator status: active
Validator balance: 0.00404528635967088 WATER
Worker #1:
Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159
Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c
Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3201.594893785 WATER
Validator status: active
Validator balance: 0.00261501709858272 WATER
docker exec -it wf /opt/wf/sh/status.sh
Main:
The node is synchronized.
Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a
Coordinator peers: 45
Validator peers: 20
Worker #0:
Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b
Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266
Coordinator status: withdrawal_possible
Stake: 3200.000000000 WATER
Coordinator balance: 3208.336472923 WATER
Validator status: exited
Validator balance: 0.00404528635967088 WATER
Worker #1:
Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159
Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c
Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3
Coordinator status: active_ongoing
Stake: 3200.000000000 WATER
Coordinator balance: 3201.594893785 WATER
Validator status: active
Validator balance: 0.00261501709858272 WATER
Stop Node
To stop the node, execute the following command in the terminal:
docker stop wf
Reinstall Node
- Stop Node (see instructions above)
- Remove data in home directory
~/.wf8
by executing the following command in the terminal:rm -R ~/.wf8
- Pull image (see instructions above)
- Run Node (see instructions above) and other steps in instructions above
Upgrade node
- Stop Node (see instructions above)
- Pull image (see instructions above)
- Run Node (see instructions above)
Transfer workers to another computer
- On the new computer, launch the node and wait for full synchronization.
- On the old computer, delete all workers with the following command.
docker exec -it wf /opt/wf/sh/rm.sh
Now you can restore workers with the following command 'docker exec -it wf /opt/wf/sh/restore.sh "<mnemonic>"'
- Make sure that there are no workers
docker exec -it wf /opt/wf/sh/status.sh
Main: The node is synchronized. Node ID: a6032d0be6164bb2d534c4b5a34ff71d11be9f6af927fdaafc3b700f914a958a Coordinator peers: 46 Validator peers: 21 Keys weren't generated
- On the new computer, run the procedure to restore workers.
Example:
docker exec -it wf /opt/wf/sh/restore.sh "<mnemonic>"
docker exec -it wf /opt/wf/sh/restore.sh "hint deer steak absorb strategy despair bread element fine twice device frozen genuine poem buyer reason agree trip stumble leisure notable country belt sad"
Restored Worker #0: Coordinator public key: 0xb2696ae5c88b88fb0709082367f5c9db256a4db9abecf4c9045e58151ad51126ea0ce7cbff76fa4524cfb66395ba168b Validator address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Withdrawal address: 0x41f4bbc7feb1ed211d97adab2137c837f5860266 Restored Worker #1: Coordinator public key: 0xab317784df7c9bcc4d0d85a9475593b3e71164a46f3a40c02af73e1d8422b525f53120c77b5cca0b7ad8bee52d696159 Validator address: 0xb68a027ffb5089ed1573a301cfa4d1e2f273094c Withdrawal address: 0x30c35895fe0f7768a261b5326e4332cbb4556ba3 2 Workers were restored.
Deploy Smart-Contract
To deploy smart-contract read instructions
Common Issues and Solutions
-
If the peers of the Coordinating node disappeared during synchronization, please restart the Docker
-
Is there an instruction for Linux? For the Linux platform, please install Docker using the instructions provided at: https://docs.docker.com/desktop/install/debian/ Afterwards, follow our standard installation instruction
-
What are the minimum hardware requirements? The minimum hardware requirements include a CPU with at least 2 cores and 4 GB of RAM. Faster hardware is preferable(mainly CPU and RAM) for better performance. The number of Workers you have should match the hardware resources you possesss , and a faster internet speed is also essential. The HDD size doesn't increase when you add additional Workers.
-
How many Workers can I run on a one node(one PC)? For now, we guarantee stable work for 16 Workers on 1 node.
-
Can I run 2 nodes on 2 PCs with the same IP. Yes, you can.
-
Why is the synchronization taking so long? The synchronization process is time-consuming due to its comprehensive nature, involving the download of the entire network state. On testnet8, synchronization will be 25% faster. We have future plans to implement improvements for even faster synchronization
-
Why Validator balance is 0? Time must pass for the coordinator's balance to change after 4 eras. This will take approximately an hour.
-
Is it possible for my node to incur penalties? If workers are active, but your node is not working (you turn off your PC or stop the node), in this case, your workers may incur penalties
-
May I activate the worker before synchronization is finished? If the node is running and synchronized (check the result of the status command), you can activate the Worker. If you activate the Worker before the node is synchronized, you will incur penalties