该教程在Ubuntu 18.04下制作完成,基本Kusama v0.7.30版本为了系统安全性,请不要使用root账户。
curl https://sh.rustup.rs -sSf | sh
如果已经安装rust,确认升级到最新版本
rustup update
###安装运行kusama节点需要的软件
sudo apt install make clang pkg-config libssl-dev build-essential
Ubuntu 18.04中默认已安装NTP Client,可运行timedatectl命令确认
timedatectl
如果没安装可以运行安装命令:
sudo apt-get install ntp
确认软件正常工作:
sudo ntpq -p
git clone https://github.com/paritytech/polkadot.git
cd polkadot
git tag | grep "$v\0\.7"
git checkout v0.7.28
./scripts/init.sh
cargo build --release
为了安全地生成kusama账号,使用subkey工具,安装方式:
cargo install --force --git https://github.com/paritytech/substrate subkey
验证人节点必须以 archive 模式同步以避免被惩罚。如果您已经同步好,您必须首先运行polkadot purge-chain删除之前的数据库,然后确保使用–pruning=archive运行 Polkadot。
./target/release/polkadot --chain kusama --pruning=archive
我们使用subkey生成账号,需要特别注意的是,stash和controller账户都可以使用Schnorrkel(sr25519)来做密钥对加密形式,但必须使用Edwards(ed25519)来给session账号设置。
使用Schnorrkel(sr25519)来做密钥对加密形式
subkey --network kusama --sr25519 generate
使用Edwards(ed25519)来做密钥对加密形式
subkey --network kusama --ed25519 generate
把大多数的KSM 代币存在stash账户中,仅保存少量的KSM代币在controller账户为了必要的操作,Session账户不需要任何的KSM代币就可以运行功能。
打开 https://polkadot.js.org/apps/# ,保证setting里面配置连接本地websocket节点 ws://127.0.0.1:9944
Polkadot UI中找到Staking -> “Account Actions” -> “New stake”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sU8GuF3e-1587434974110)(https://wiki.polkadot.network/docs/assets/guides/how-to-validate/polkadot-dashboard-bonding.jpg “绑定KSM”)]
Stash account -选择 Stash 账户。在这个例子我们会绑定 100 milliKSMs - 确保你的 Stash 帐户拥有至少这个数量。当然你也可以绑定更多。
Controller account - 选择你之前创建的 Controller 帐号。此帐户也需要少量 KMS 才能开始和停止验证。
Value bonded - 你想从Stash账户里面绑定的KSM数量。注意你不一定要绑定Stash账户里面全部的KSM。在绑定完完成后,你一直都可以继续追加绑定KSM。但是要提现绑定中的SM,需要等到解绑周期结束,KSM中解绑周期是7天。
Payment destination - 把奖励发送到那个帐戶。
确保节点全部同步完毕后,Ctl-c关毕进程,以validator模式启动节点,并且用session账户的文件来运行你的验证人:
./target/release/polkadot --chain kusama --validator --keystore-path=/home/validator/kusama_home/polkadot/CqLSsLsT4vzvjxvUvZiHQ1HmkindkXnJHmg3JcGzwmBSw98.json --name 168NODE-COM --pruning=archive
接下来生成session keys,将结果保存好。
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933
需要将session keys告诉整个链。Polkadot UI中找到"Staking" -> “Account Actions” -> “Set Session Key”,输入author_rotateKeys,点击"Set Session Key".
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dFMJlA8w-1587434974114)(https://wiki.polkadot.network/docs/assets/guides/how-to-validate/set-session-key-1.jpg “setKeys”)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dcm3Cr7W-1587434974115)(https://wiki.polkadot.network/docs/assets/guides/how-to-validate/set-session-key-2.jpg “setKeys”)]
完成后节点就开始工作了。
验证的目的是证明你的节点是存活的,并且能在Telemetry( https://telemetry.polkadot.io/#/Kusama )上找到你的节点。
Polkadot UI找到"Validate"
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJ8y8XUz-1587434974119)(https://wiki.polkadot.network/docs/assets/guides/how-to-validate/polkadot-dashboard-validate.jpg “setKeys”)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IfHYHCEz-1587434974123)(https://wiki.polkadot.network/docs/assets/guides/how-to-validate/polkadot-dashboard-validate-modal.jpg “setKeys”)]
Payment preferences - 验证人会先取下这里设定的奖励,余下那些将会与提名你的人按比例分配。
点击 “Validate”。
在Telemetry( https://telemetry.polkadot.io/#/Kusama )上找到你的节点。验证人节点搭建完毕。