Skip to content

Commit decdf4d

Browse files
authored
fix(docs): improve validator registration steps (#734)
2 parents a4152f3 + aa8d482 commit decdf4d

File tree

5 files changed

+482
-264
lines changed

5 files changed

+482
-264
lines changed

docs/2-run-node.mdx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ Once your node is running, proceed with the registration:
5858
]}
5959
/>
6060

61+
:::tip[Validator Tracker]
62+
63+
You can track validator status, uptime, and software versions on the [Flare Validator Tracker](https://flare-validators.flare.network).
64+
65+
:::
66+
6167
## Flare Entity
6268

6369
Runs alongside a Validator to provide crucial data for Flare's FTSO and FDC protocols.
@@ -77,6 +83,6 @@ Requires a running [Validator Node](#validator-node). To set up a Flare Entity:
7783

7884
:::tip[Systems Explorer]
7985

80-
All registered Flare Entities, alongside voting and reward epoch, and finalization data can be viewed on the [Flare Systems Explorer](https://flare-systems-explorer.flare.network/providers).
86+
You can view Flare Entity data, including reward epochs and finalization, on the [Flare Systems Explorer](https://flare-systems-explorer.flare.network/providers).
8187

8288
:::

docs/network/guides/using-flare-stake-tool.mdx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,34 @@ If you encounter any issues during this process, refer to the [Troubleshooting](
410410
- **amount**: Amount must be provided in FLR units.
411411
- **node ID**, **start time** and **end time**: Use the values noted down from the [setup](#setup).
412412

413+
If you are adding a validator node, you also need to provide the proof of possession **BLS public key** and **BLS signature**.
414+
415+
Retrieve these details using the following command:
416+
417+
```bash
418+
curl -X POST --data '{
419+
"jsonrpc":"2.0",
420+
"id" :1,
421+
"method" :"info.getNodeID"
422+
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info | jq
423+
```
424+
425+
The output will be similar to the following:
426+
427+
```plaintext
428+
{
429+
"jsonrpc": "2.0",
430+
"result": {
431+
"nodeID": "NodeID-CGeHNYkQJX4qb21x976PEcNt3FqsUZfXL",
432+
"nodePOP": {
433+
popBLSPublicKey ---> "publicKey": "0xb6a40b905128c010e4d7b0cbd6f7b7912a1da9a6022a8c720887b5183a4f2f109c678027316ae4757f7f987f1fa5addb",
434+
popBLSSignature ---> "proofOfPossession": "0xb9394ef2992a77a3b70440c2fdb3b2a53f23fb8579460322b69a290bf3de7fafc2665b155b5300c08a1e7bcb45bb7eaf0ca7f596650b0423f61f329744e37f6908c1d7e4191378d5f0ff7fd7f8abd02d37a2be9dd95635a0b1f744b043cb5d9e"
435+
}
436+
},
437+
"id": 1
438+
}
439+
```
440+
413441
3. If you selected **Add a validator node**, you have to set the **delegation fee**. This is the percentage of all rewards that the node owner keeps.
414442
The rest is split proportionally between the self-bond and all delegators that contributed stake. 10 means 10%, so the maximum value is 100.
415443

@@ -420,6 +448,8 @@ If you encounter any issues during this process, refer to the [Troubleshooting](
420448
? Enter start time(E.g. 1693185095): ●●●●●●●●
421449
? Enter end time(E.g. 1693185095): ●●●●●●●●
422450
? Enter delegation fee(E.g. 10): 10
451+
? Please enter the popBLSPublicKey: 0x●●●●●●●●
452+
? Please enter the popBLSSignature: 0x●●●●●●●●
423453
```
424454

425455
4. You are then asked to confirm the staking transaction on your hardware wallet.

docs/run-node/2-from-source.mdx

Lines changed: 71 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Make sure to check the [hardware requirements](/run-node/system-requirements) be
3030
# 1. Find the latest stable release tag from:
3131
# https://github.com/flare-foundation/go-flare/releases
3232
# 2. Set the tag name in the variable below:
33-
LATEST_TAG="vX.Y.Z" # <-- REPLACE vX.Y.Z WITH THE ACTUAL LATEST TAG e.g. v1.10.0
33+
LATEST_TAG="vX.Y.Z" # <-- REPLACE vX.Y.Z WITH THE ACTUAL LATEST TAG e.g. v1.11.0
3434
```
3535

3636
2. Clone and build the binary:
@@ -63,6 +63,7 @@ Make sure to check the [hardware requirements](/run-node/system-requirements) be
6363
```bash
6464
./build/avalanchego --network-id=flare \
6565
--http-host= \
66+
--http-allowed-hosts="*" \
6667
--bootstrap-ips="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeIP"}' -H 'content-type:application/json;' https://flare-bootstrap.flare.network/ext/info | jq -r '.result.ip')" \
6768
--bootstrap-ids="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeID"}' -H 'content-type:application/json;' https://flare-bootstrap.flare.network/ext/info | jq -r '.result.nodeID')"
6869
```
@@ -74,6 +75,7 @@ Make sure to check the [hardware requirements](/run-node/system-requirements) be
7475
```bash
7576
./build/avalanchego --network-id=costwo \
7677
--http-host= \
78+
--http-allowed-hosts="*" \
7779
--bootstrap-ips="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeIP"}' -H 'content-type:application/json;' https://coston2-bootstrap.flare.network/ext/info | jq -r '.result.ip')" \
7880
--bootstrap-ids="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeID"}' -H 'content-type:application/json;' https://coston2-bootstrap.flare.network/ext/info | jq -r '.result.nodeID')"
7981
```
@@ -85,6 +87,7 @@ Make sure to check the [hardware requirements](/run-node/system-requirements) be
8587
```bash
8688
./build/avalanchego --network-id=songbird \
8789
--http-host= \
90+
--http-allowed-hosts="*" \
8891
--bootstrap-ips="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeIP"}' -H 'content-type:application/json;' https://songbird-bootstrap.flare.network/ext/info | jq -r '.result.ip')" \
8992
--bootstrap-ids="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeID"}' -H 'content-type:application/json;' https://songbird-bootstrap.flare.network/ext/info | jq -r '.result.nodeID')"
9093
```
@@ -96,6 +99,7 @@ Make sure to check the [hardware requirements](/run-node/system-requirements) be
9699
```bash
97100
./build/avalanchego --network-id=coston \
98101
--http-host= \
102+
--http-allowed-hosts="*" \
99103
--bootstrap-ips="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeIP"}' -H 'content-type:application/json;' https://coston-bootstrap.flare.network/ext/info | jq -r '.result.ip')" \
100104
--bootstrap-ids="$(curl -m 10 -sX POST --data '{"jsonrpc":"2.0", "id":1, "method":"info.getNodeID"}' -H 'content-type:application/json;' https://coston-bootstrap.flare.network/ext/info | jq -r '.result.nodeID')"
101105
```
@@ -114,6 +118,62 @@ Make sure to check the [hardware requirements](/run-node/system-requirements) be
114118
curl http://127.0.0.1:9650/ext/health | jq
115119
```
116120

121+
3. (Optional) If you plan to [register your node as a validator](/run-node/register-validator).
122+
Make sure to copy the staking keys to a persistent directory outside the default location.
123+
This is important for ensuring that your staking keys are not lost if the node is restarted or updated.
124+
125+
<Tabs groupId="network" block>
126+
127+
<TabItem value="flare" label="Flare Mainnet" default>
128+
129+
```bash
130+
# Create a dedicated directory
131+
sudo mkdir -p /opt/flare/staking
132+
# Move your keys
133+
sudo mv ~/.avalanchego/staking/staker.key /opt/flare/staking/
134+
sudo mv ~/.avalanchego/staking/staker.crt /opt/flare/staking/
135+
```
136+
137+
</TabItem>
138+
139+
<TabItem value="coston2" label="Flare Testnet Coston2">
140+
141+
```bash
142+
# Create a dedicated directory
143+
sudo mkdir -p /opt/coston2/staking
144+
# Move your keys
145+
sudo mv ~/.avalanchego/staking/staker.key /opt/coston2/staking/
146+
sudo mv ~/.avalanchego/staking/staker.crt /opt/coston2/staking/
147+
```
148+
149+
</TabItem>
150+
151+
<TabItem value="songbird" label="Songbird Canary-Network">
152+
153+
```bash
154+
# Create a dedicated directory
155+
sudo mkdir -p /opt/songbird/staking
156+
# Move your keys
157+
sudo mv ~/.avalanchego/staking/staker.key /opt/songbird/staking/
158+
sudo mv ~/.avalanchego/staking/staker.crt /opt/songbird/staking/
159+
```
160+
161+
</TabItem>
162+
163+
<TabItem value="coston" label="Songbird Testnet Coston">
164+
165+
```bash
166+
# Create a dedicated directory
167+
sudo mkdir -p /opt/coston/staking
168+
# Move your keys
169+
sudo mv ~/.avalanchego/staking/staker.key /opt/coston/staking/
170+
sudo mv ~/.avalanchego/staking/staker.crt /opt/coston/staking/
171+
```
172+
173+
</TabItem>
174+
175+
</Tabs>
176+
117177
:::tip[Node stuck when bootstrapping?]
118178

119179
If the node gets stuck during bootstrap (or it takes far longer than the estimates given above), try adding the parameter `--bootstrap-retry-enabled=false` when running the node.
@@ -125,19 +185,21 @@ If the node gets stuck during bootstrap (or it takes far longer than the estimat
125185
These are some of the most relevant CLI parameters you can use. Read more about them in the [Avalanche documentation](https://docs.avax.network/nodes/maintain/avalanchego-config-flags).
126186

127187
{/* prettier-ignore */}
128-
- [`--bootstrap-ips`](https://docs.avax.network/nodes/maintain/avalanchego-config-flags#--bootstrap-ips-string),
129-
[`--bootstrap-ids`](https://docs.avax.network/nodes/maintain/avalanchego-config-flags#--bootstrap-ids-string):
188+
- [`--bootstrap-ips`](https://build.avax.network/docs/nodes/configure/configs-flags#--bootstrap-ips-string),
189+
[`--bootstrap-ids`](https://build.avax.network/docs/nodes/configure/configs-flags#--bootstrap-ids-string):
130190
IP address and node ID of the peer used to connect to the rest of the network for bootstrapping. In the run command above, the bootstrap details are programmatically retrieved from the Flare bootstrap nodes upon startup. This is the recommended approach as the bootstrap node's IP and ID can rotate.
131191

132-
- [`--http-host`](https://docs.avax.network/nodes/maintain/avalanchego-config-flags#--http-host-string): Use `--http-host=` (empty) to allow connections from other machines. Otherwise, only connections from `localhost` are accepted.
192+
- [`--http-host`](https://build.avax.network/docs/nodes/configure/configs-flags#--http-host-string): Use `--http-host=` (empty) to allow connections from other machines. Otherwise, only connections from `localhost` are accepted.
193+
194+
- [`--http-port`](https://build.avax.network/docs/nodes/configure/configs-flags#--http-port-int): The port through which the node will listen to API requests. The default value is `9650`.
133195

134-
- [`--http-port`](https://docs.avax.network/nodes/maintain/avalanchego-config-flags#--http-port-int): The port through which the node will listen to API requests. The default value is `9650`.
196+
- [`--http-allowed-hosts`](https://build.avax.network/docs/nodes/configure/configs-flags#--http-allowed-hosts-string): Use `--http-allowed-hosts="*"` to allow connections from any machine. Otherwise, only connections from `localhost` are accepted.
135197

136-
- [`--staking-port`](https://docs.avax.network/nodes/maintain/avalanchego-config-flags#--staking-port-int): The port through which the network peers will connect to this node externally. Having this port accessible from the internet is required for correct node operation. The default value is `9651`.
198+
- [`--staking-port`](https://build.avax.network/docs/nodes/configure/configs-flags#--staking-port-int): The port through which the network peers will connect to this node externally. Having this port accessible from the internet is required for correct node operation. The default value is `9651`.
137199

138-
- [`--db-dir`](https://docs.avax.network/nodes/maintain/avalanchego-config-flags#--db-dir-string-file-path): Directory where the database is stored, defaults to `~/.avalanchego/db`. Make sure to use a disk with enough space as recommended in the [hardware requirements](/run-node/system-requirements) page. For example, you can use this option to store the database on an external drive.
200+
- [`--db-dir`](https://build.avax.network/docs/nodes/configure/configs-flags#--db-dir-string-file-path): Directory where the database is stored, defaults to `~/.avalanchego/db`. Make sure to use a disk with enough space as recommended in the [hardware requirements](/run-node/system-requirements) page. For example, you can use this option to store the database on an external drive.
139201

140-
- [`--chain-config-dir`](https://docs.avax.network/nodes/maintain/avalanchego-config-flags#--chain-config-dir-string): Optional JSON configuration file for using non-default values.
202+
- [`--chain-config-dir`](https://build.avax.network/docs/nodes/configure/configs-flags#--chain-config-dir-string): Optional JSON configuration file for using non-default values.
141203

142204
#### Sample JSON configuration:
143205

@@ -185,7 +247,7 @@ To update your node to a newer version of go-flare:
185247
# 1. Find the latest stable release tag from:
186248
# https://github.com/flare-foundation/go-flare/releases
187249
# 2. Set the tag name in the variable below:
188-
LATEST_TAG="vX.Y.Z" # <-- REPLACE vX.Y.Z WITH THE ACTUAL LATEST TAG e.g. v1.10.1
250+
LATEST_TAG="vX.Y.Z" # <-- REPLACE vX.Y.Z WITH THE ACTUAL LATEST TAG e.g. v1.11.0
189251
git checkout ${LATEST_TAG}
190252
```
191253

0 commit comments

Comments
 (0)