Run Waterfall Node Testnet6 in Docker
Testnet6 has been stopped. Use our other testnets
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
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 we logged in on the previous step, 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:testnet6
Run Node
Go to your home directory 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/.wf/logs:/opt/wf/data/logs -v $PWD/.wf/gwat:/opt/wf/data/gwat -v $PWD/.wf/coordinator:/opt/wf/data/coordinator registry.waterfall.network/waterfall/protocol/docker:testnet6
- 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
~/.wf
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
Keys weren't generated
- this means that the keys are still being generated and the node has not yet startedThe node has not started yet
- the node is not running, it is still startingThe node is syncing. Distance: 9294
- the coordinator is synchronizing, synchronization occurs when Distance will be equal to 0- The validator is synchronizing:
The node is syncing. Status: { currentBlock: 0, currentSlot: 15738, finalizedSlot: 0, highestBlock: 0, knownStates: 0, maxDagSlot: 0, pulledStates: 0, startingBlock: 0 }
The node synchronized.
- the node is synchronized.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 not yet the end of the first epoch) to get coordinator into the activation queue.pending_queued
- When coordinator is waiting to get activated, and have enough funds etc. while in the queue, coordinator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too).active_ongoing
- When coordinator must be attesting, and have not initiated any exit.active_exiting
- When coordinator is still active, but filed a voluntary request to exit.active_slashed
- When coordinator is still active, but have a slashed status and is scheduled to exit.exited_unslashed
- When coordinator has reached reguler exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet.exited_slashed
- When coordinator has reached reguler exit epoch, but was slashed, have to wait for a longer withdrawal period.withdrawal_possible
- After coordinator has exited, a while later is permitted to move funds, and is truly out of the system.withdrawal_done
- actually having moved funds away
Stake: 3200.000000000 WATER
- the stake that was sentCoordinator balance: 3200.038794846 WATER
- coordinator balance along with the stakeValidator balance: 0.000000000000000000 WATER
- validator balanceCoordinator peers: 5
- number of connected nodes with coordinatorsValidator peers: 10
- number of connected nodes with validators
Stop Node
To stop the node, you can execute the following command in the terminal:
docker stop wf
Onboarding
If the node is running and synchronized (look at the result of the status command The node synchronized.
), you can 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 6 Test Network
- RPC URL:
https://rpc.testnet6.waterfall.network/
- Chain ID:
1501866
- Currency symbol:
WATER
- Block Explorer URL: https://explorer.testnet6.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 data for the transaction by running the following command in the terminal:
In response, you will get the following result:
docker exec -it wf /opt/wf/sh/deposit.sh
Send tx by Metamask: To: 0xA2D4AE28Eacc2833BF624906A9Fb39d92fFCB95a Value: 3200 WATER Data: "0xf401942c9c38cd7d46be5e0ee0412dd3382ea7b8ada360fef15de3f07b5aa766ba8ac3a82b935387b257d00b98d07422a9feb3d7fe8eb6bb56460e94382d8031a10a42ded56eb3d7fe8eb6bb56460e94382d8031a10a42ded56eafd3817c5c02ae1ad1c32805e679d80bd9b696776d3eb2377acc6abda5839a3567e65f48f35608c30c84a6ed8cc4f2810a0953431abab154d1ea97b0dc1fb4e0369d77965d1461f0a55b6cd3c08980baa41e816d7007a0aa320cdb2ed0bfcdec"
- 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.
Reinstall Node
- Stop Node (see instructions above)
- Remove data in home directory
~/.wf
by executing the following command in the terminal:rm -R ~/.wf
- Pull image (see instructions above)
- Run Node (see instructions above) and others steps in instructions above
Deploy Smart-Contract
To deploy smart-contract read instructions
Popular Issues and Their Solutions
- If the peers of the Coordinating node disappeared during synchronization, please restart the Docker