Chainflip Soundcheck 0.1.1
⠀Chainflip is a decentralised, trustless protocol that enables cross chain swaps between different blockchains.
Content
Information about the project
Description
⠀Chainflip is a protocol for automated cross-chain token exchange that solves existing problems of decentralized solutions affecting their usability. This protocol allows users to automatically exchange tokens without relying on centralized providers, token wrap or other software. Commissions for liquidity and network operation are included in each swap, eliminating the need to purchase your own tokens to pay for gas. The operation of the system is provided by a network of validators, the consensus is provided by the PoS protocol. The project is focused on using the Polkadot ecosystem.
Phases
⠀The following phases are known at this point:
- December 1 — 7 — submission of applications for the Soundcheck testnet;
- December 7 — documentation publication on a validator running;
- December 15, 2021 — the testnet launching;
- January 19, 2022 — completion of the first stage of the testnet.
Rewards
⠀The 250,000 FLIP tokens will be distributed according to the leaderboard - based on the points earned. The total number of points is 4,000,000.
⠀ Points can be earned in the following ways:
⠀To participate, you have to complete a KYC after reviewing your application.
Server requirements
⠀Announced (VDS/DS):
4 CPU, 8 GB RAM, 50 GB SSD, 1 Gbps, Ubuntu 20.04
Registration
Registration is closed. Selected validators have received letters for passing the CUS and verification confirmation letters.
⠀The original letter comes from noreply@chainflip.io
and looks like in the screenshot below.
⠀If you have problems passing KYC, try to pass in another browser, especially try the Edge/Internet Explorer.
Preparing
Private key
⠀To run the validator, you need the private key of the ETH wallet you specified when registering for the testnet.
⠀E.g in the MetaMask it can be obtained in as follows
Rinkeby tokens
⠀Also you need 0.1 ETH in the Rinkeby network, which you can get by using one of the faucets:
Rinkeby RPC
⠀The Rinkeby RPC is required to run the node. It isn't recommended to use Infura, so it is worth choosing either to launch your own node or alternative services. Our choice is Rivet Cloud service.
⠀Go to the website and click «GET STARTED FREE»
⠀After getting to the control panel:
Launching
⠀Each subsection is a separate type of installation, you have to select one of them.
Linux (manually)
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh)
⠀Create a directories in which a data will be stored
mkdir -p $HOME/chainflip/ $HOME/chainflip_backup
⠀Execute the command and enter the private key from the Ethereum wallet with FLIP tokens to write it into the file
read -rp #39;\e[40m\e[92mEnter Ethereum wallet private key:\e[0m ' pk; echo "$pk" | sed 's%0x%%' | tr -d '\n' > $HOME/chainflip_backup/ethereum_key_file; cp $HOME/chainflip_backup/ethereum_key_file $HOME/chainflip/
subkey generate | tee -a $HOME/chainflip_backup/signing_key.txt
⠀Add validator ID to the system as a variable
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n chainflip_validator -v `awk 'NR == 5 {printf $(NF)}' $HOME/chainflip_backup/signing_key.txt`
⠀Write validator private key to the file
awk 'NR == 2 {printf $(NF)}' $HOME/chainflip_backup/signing_key.txt | sed 's%0x%%' > $HOME/chainflip_backup/signing_key_file; cp $HOME/chainflip_backup/signing_key_file $HOME/chainflip/
echo -e "`subkey generate-node-key 2>&1`" | tee -a $HOME/chainflip_backup/node_key.txt
awk 'NR == 2 {printf $1}' $HOME/chainflip_backup/node_key.txt > $HOME/chainflip_backup/node_key_file; cp $HOME/chainflip_backup/node_key_file $HOME/chainflip/
⠀Make a backup copy of the settings folder, saving it to your PC (the command displays the path)
echo $HOME/chainflip_backup/
⠀Place the previously saved Websocket RPC into the variable
read -rp #39;\e[40m\e[92mEnter Websocket RPC:\e[0m ' rpc
sudo tee <<EOF >/dev/null $HOME/chainflip/Default.toml [node_p2p] node_key_file = "$HOME/chainflip/node_key_file" [state_chain] ws_endpoint = "ws://127.0.0.1:9944" signing_key_file = "$HOME/chainflip/signing_key_file" [eth] from_block = 9810000 node_endpoint = "$rpc" private_key_file = "$HOME/chainflip/ethereum_key_file" [health_check] hostname = "0.0.0.0" port = 5555 [signing] db_file = "data.db" EOF
⠀Create a service file for the node
sudo tee <<EOF >/dev/null /etc/systemd/system/chainflipnd.service [Unit] Description=Chainflip Validator Node [Service] User=$USER ExecStart=`which chainflip-node` \\ --chain soundcheck \\ --base-path $HOME/chainflip/chaindata \\ --node-key-file $HOME/chainflip/node_key_file \\ --in-peers 500 \\ --out-peers 500 \\ --port 30333 \\ --validator \\ --ws-max-out-buffer-capacity 3000 \\ --bootnodes /ip4/165.22.70.65/tcp/30333/p2p/12D3KooW9yoE6qjRG9Bp5JB2JappsU9V5bck1nUDSNRR2ye3dFbU Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
⠀Create an engine service file
sudo tee <<EOF >/dev/null /etc/systemd/system/chainfliped.service [Unit] Description=Chainflip Validator Engine [Service] User=$USER ExecStart=`which chainflip-engine` --config-path $HOME/chainflip/Default.toml Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload sudo systemctl enable chainflipnd chainfliped sudo systemctl restart chainflipnd chainfliped
⠀Add commands to the system as aliases:
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n chainflip_node_log -v "sudo journalctl -fn 100 -u chainflipnd" -a . <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n chainflip_engine_log -v "sudo journalctl -fn 100 -u chainfliped" -a
Linux (automatically)
⠀Run the script, enter Websocket RPC, Ethereum wallet private key with FLIP tokens (if asked) and wait till the installation is done
⠀If any file from list below is missing, a new key will be generated, otherwise the file will be restored from the backup
echo $HOME/chainflip_backup/signing_key_file echo $HOME/chainflip_backup/node_key_file
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -ai
Staking
⠀To stake to the node you need:
- Go to the site;
- Connect a wallet specified during registration;
- Click «Add a node»;
- Insert the public key, which you can find out with the command
echo $chainflip_validator
⠀After a while, the added node will appear after refreshing the page.
Recovering
⠀To restore a node, for example in case of migration to another server, it is necessary to place backups of the following files:
⠀In a special directory (or place the saved directory with these files in the home folder)
echo $HOME/chainflip_backup
⠀Run the script and wait till the installation is done
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -ai
Updating
⠀Run the script and wait till the updating is done
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -up
Uninstalling
⠀Run the script and wait till the uninstalling is done
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -un
Community contribution
Our team is not responsible for any possible negative consequences, as we cannot guarantee the safety of the tools presented
How to get here?
⠀To get into this honorable section, you should write a message to SecorD with information about the tool:
- Project name;
- A short title in 2-3 words (to be used as a headline);
- Description to be added to the article (what it's for, functionality, how to use it, other useful information, preferably with screenshots).
- Benefits to the community;
- Opportunity to make a statement;
- An additional opportunity to present evidence of the contribution in various projects.
Useful commands
⠀Available variables (remove echo
while using)
echo $chainflip_validator
# The node chainflip_node_log sudo journalctl -fn 100 -u chainflipnd # The engine chainflip_engine_log sudo journalctl -fn 100 -u chainfliped
# The node sudo systemctl restart chainflipnd # The engine sudo systemctl restart chainfliped
Useful links
Official website | Official Telegram group
Discord | Twitter | Testnet article | Staking UI
Acknowledgments
Everyone from the Chainflip Team
Let’s Node! Team — studying the project, writing the article, maintaining the Russian-speaking community