# 搭建 Vara 测试网验证人节点
🚧文档内容可能随时更新, 可点击右上角小铃铛订阅更新🚧
[TOC]
- 加入本次 Workshop 群组获取帮助: https://t.me/vara_testnet_validator_cn
- 本文链接:https://hackmd.io/@gearvara/testnet_validator_cn, 或扫码在移动设备上浏览:
[](https://hackmd.io/@gearvara/testnet_validator_cn)
## 准备工作
### 下载 Vara 节点可执行文件
在 https://get.gear.rs 获取最新的节点可执行文件压缩包 (Vara Node Stage-2 Nightly Builds),并解压到 `/usr/local/bin/gear` 路径下
```
$ curl -#L https://get.gear.rs/vara-nightly-linux-x86_64.tar.xz | sudo tar -xvvJC /usr/local/bin/
-rwxr-xr-x root/root 50384720 2022-10-27 09:08 gear
```
### 设置节点名称并启动
然后通过 `--name` 参数指定节点名称, 例如 "⚙️Gearvara"
```
$ gear --validator --telemetry-url "wss://telemetry.rs/submit 0" --name "⚙️Gearvara"
2022-10-27 15:13:56 Gear Node
2022-10-27 15:13:56 ✌️ version 0.1.0-e0a629d860c
2022-10-27 15:13:56 ❤️ by Gear Technologies, 2021-2022
2022-10-27 15:13:56 📋 Chain specification: Vara Network
2022-10-27 15:13:56 🏷 Node name: ⚙️Gearvara
2022-10-27 15:13:56 👤 Role: AUTHORITY
2022-10-27 15:13:56 💾 Database: RocksDb at /root/.local/share/gear-node/chains/vara_network/db/full
2022-10-27 15:13:56 ⛓ Native runtime: vara-420 (vara-1.tx1.au1)
2022-10-27 15:14:52 Using default protocol ID "sup" because none is configured in the chain specs
2022-10-27 15:14:52 🏷 Local node identity is: 12D3KooWC1pRYi7smVS8aRyPTHMexprCit7XqyEsBoQH8KFaNYX9
2022-10-27 15:14:52 💻 Operating system: linux
2022-10-27 15:14:52 💻 CPU architecture: x86_64
2022-10-27 15:14:52 💻 Target environment: gnu
2022-10-27 15:14:52 💻 CPU: Intel(R) Xeon(R) CPU @ 2.20GHz
2022-10-27 15:14:52 💻 CPU cores: 16
2022-10-27 15:14:52 💻 Memory: 120868MB
2022-10-27 15:14:52 💻 Kernel: 4.19.0-21-cloud-amd64
2022-10-27 15:14:52 💻 Linux distribution: Arch Linux
2022-10-27 15:14:52 💻 Virtual machine: yes
2022-10-27 15:14:52 📦 Highest known block at #672910
2022-10-27 15:14:52 〽️ Prometheus exporter started at 127.0.0.1:9615
...
```
节点开始同步后, 你就能在 [telemetry](https://telemetry.rs/#/0x186defe95770157dffc41ae90fa409410e172a40d52eb22459e889f7b7a838b4) 页面看到你的节点同步进度.
目前大约需要1小时同步到最新高度.
节点同步时不影响我们进行后续的操作.
### 创建 stash 和 controller 账户
在 Polkadot.js Apps 页面侧边栏切换到 TEST NETWORKS > Vara , 或者直接访问 https://polkadot.js.org/apps/?rpc=wss://rpc.vara-network.io
然后创建两个账户,作为质押时所用的 __stash__ 和 __controller__ 账户
### 获取测试网代币
将 __stash__ 和 __controller__ 的地址发送给 [@GearvaraBot](https://t.me/GearvaraBot), 获取一定数量的测试代币
### 生成节点 session key
通过运行如下命令来生产新的 session key:
```
$ curl -s -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933
```
它会输出类似下面的 JSON 字符串:
```
{"jsonrpc":"2.0","result":"...","id":1}
```
`...` 部分就是你的 session key, 例如:
```
0x403b210d9e52bac373c2ce382276657894ffe58010f522824e2977db2b1874374650ea21cb4ebf8cb19acc8d3efa845ada23312639f2587e9e78fe6c4bc0d816
```
## 链上设置
### TL;DR.gif
下面的 GIF 动画展示了整个链上设置环节的所有操作.

### 分步教学
在 Polkadot.js Apps 页面,通过顶部菜单 Network > Staking > Accounts, 点击 "⊕ Validator" 按钮

选中之前创建的 __stash__ 和 __controller__ 账号.
方便起见,在测试环境中,两者可以使用同一个账号.
输入任意你想质押的代币数量. 记住不要把所有余额用于质押,以免后续支付交易手续费时余额不足.
点击 "Next".

填写你自己的 Session Key.
确认并点击 "Bond & Validate".

确认并点击 "Sign and Submit".

稍等片刻,你的节点就会出现在等待列表中.

可以通过点击自己账户名称来确认自己目前质押代币的数量, 图中显示已经质押了 10 枚代币.

现在大功告成,只需要等待社区给你的节点提名,就有机会成为验证人并产出区块.
## FAQ
### 推荐的服务器配置
没有硬性要求,推荐 2核/4G内存/100G硬盘
### 现在是激励测试网吗?
不是,相关事项请大家等待官方公布细则。
本次 Workshop 纯教学导向,供有意向运行主网节点的验证人以及技术人员提供参考。
Vara 测试网有可能出于测试目的在不事先通知的情况下重置,请大家控制心理预期
### 如何才能入选验证人?
Vara 测试网目前处于 PoA -> PoS 的升级阶段,升级后可通过提名方式参选
目前只有处于官方白名单的节点参与出块
### 如何保持节点在后台运行?
参考官方文档 https://wiki.gear-tech.io/zh-cn/docs/node/node-as-service/