You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can also build [from source](https://github.com/casper-network/casper-node-launcher). However, all the setup and pull of casper-node releases will be manual.
25
25
26
+
`casper-node-util` is a helper script for managing a `casper-node` and installed as a debian package dependency of `casper-node-launcher`
27
+
26
28
:::note
27
29
28
30
The `casper-sidecar` component is also typically installed alongside the node to provide additional APIs and event streaming. For more information, see the [Sidecar Setup](./casper-sidecar.md) page.
Copy file name to clipboardExpand all lines: versioned_docs/version-2.0.0/operators/setup/hardware.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,8 +10,11 @@ The following hardware specifications are recommended for the Casper [Mainnet](h
10
10
11
11
- 4 Cores
12
12
- 32 GB Ram
13
-
- 2 TB SSD
14
-
- Linux machine running Ubuntu 20.04
13
+
- Storage (SSD)
14
+
- 2 TB (Archival Nodes)
15
+
- 500 GB (TTL Nodes)
16
+
- Linux machine running Ubuntu 22.04, 24.04 or Debian 13
17
+
- Binaries are build on 22.04 and will run on Linux having same or higher Clib version.
15
18
16
19
17
20
:::note Notes
@@ -20,6 +23,7 @@ The following hardware specifications are recommended for the Casper [Mainnet](h
20
23
21
24
- For non-archival nodes, current disc usage is significantly lower (e.g., ~500 GB is sufficient for at least 1 year). It is safe to start with lower capacity and scale up as needed.
22
25
26
+
- LMDB is a memory backed database. More RAM than recommended will help read performance after data is cached.
Copy file name to clipboardExpand all lines: versioned_docs/version-2.0.0/operators/setup/install-node.md
+36-47Lines changed: 36 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,28 +18,8 @@ The following ports are used by the node:
18
18
Of these `35000` is the only port required to be open for your node to function, however, opening `8888` will allow others to know general network health. For more details, see the additional information on [Node Endpoints](./node-endpoints.md).
19
19
20
20
## Operating System Requirements
21
-
The recommended OS version is Ubuntu 20.04.
22
-
23
-
### Using Ubuntu 22.04 or 24.04
24
-
25
-
Installing using Ubuntu 22.04 or 24.04 follows the same instructions as 20.04 with one exception:
26
-
27
-
If you try to install packages, you will receive:
28
-
29
-
```
30
-
casper-client : Depends: libssl1.1 (>= 1.1.0) but it is not installable
31
-
```
32
-
33
-
This message is due to the default `openssl` moving to 3.* with Ubuntu 22.04. You need to install OpenSSL 1.* for prior versions of Ubuntu to use the Casper binaries with the following command:
Before beginning, [update the maximum open files limit](./open-files.md) for your system. Specifically, update the node's `/etc/security/limits.conf` file as described [here](./open-files.md#updating-limits-conf), to ensure proper node operation.
21
+
The recommended OS version is Ubuntu 22.04, Ubuntu 24.04 or Debian 13.
22
+
The current binary build OS is Ubuntu 22.04 and a Debian based system with Clib equal to or newer than the build system will work.
43
23
44
24
## Required Clean Up
45
25
@@ -63,10 +43,10 @@ The following commands will set up the Casper repository for packages:
echo"deb [arch=amd64 signed-by=/etc/apt/keyrings/casper-repo-pubkey.gpg] https://repo.casper.network/releases focal main"| sudo tee -a /etc/apt/sources.list.d/casper.list
46
+
echo"deb [arch=amd64 signed-by=/etc/apt/keyrings/casper-repo-pubkey.gpg] https://repo.casper.network/releases jammy main"| sudo tee -a /etc/apt/sources.list.d/casper.list
67
47
sudo apt update
68
48
```
69
-
We are creating /etc/apt/keyrings if needed, so we don't have the issue with this key being trusted by all APT requests if stored in /etc/apt/trusted.gpg.d.
49
+
We are creating `/etc/apt/keyrings` if needed, so we don't have the issue with this key being trusted by all APT requests if stored in `/etc/apt/trusted.gpg.d`.
70
50
71
51
## Required Tools
72
52
@@ -85,7 +65,7 @@ It defaults to `bash` but can be changed with the `--shell` argument:
85
65
--shell <STRING> The type of shell to generate the completion script for [default: bash] [possible values:
Now you can use `casper-client` and press the `tab` key to get auto completion for your commands.
97
77
78
+
## Required Number of Open Files
79
+
80
+
Before beginning, [update the maximum open files limit](./open-files.md) for your system. Specifically, update the node's `/etc/security/limits.conf` file as described [here](./open-files.md#updating-limits-conf), to ensure proper node operation.
@@ -163,44 +147,48 @@ If you are using the node for historical data and want to query back to genesis,
163
147
sync_handling = genesis
164
148
```
165
149
150
+
DB archives are made of networks and if you are launching an archival node, requesting these from Casper will make node setup much faster. Historical block syncing is the lowest priority in network operation and take more time as the chain grows.
151
+
166
152
## Starting the Node
167
153
168
154
Start the node using the following commands:
169
155
170
156
```bash
171
-
sudo /etc/casper/node_util.py rotate_logs
172
-
sudo /etc/casper/node_util.py start
173
-
```
157
+
sudo casper_node_util start
158
+
```
174
159
175
160
### Monitoring the Synchronization Process
176
161
177
162
The following command will display the node synchronization details:
178
163
179
164
```bash
180
-
/etc/casper/node_util.py watch
165
+
casper_node_util watch
181
166
```
182
167
183
-
When you first run the watch command, you may see the message `RPC: Not Ready`. Once the node is synchronized, the status will change to `RPC: Ready` and a similar output:
Aug 13 20:41:05 ip-10-0-5-211 systemd[1]: Started casper-node-launcher.service - Casper Node Launcher.
204
192
```
205
193
206
194
The reactor state will be in CatchUp mode until it acquires the full tip state, at which point it will shift to KeepUp mode. If you left `sync_to_genesis` as `true`, it will begin syncing back history at this time.
@@ -224,6 +212,7 @@ trie_or_chunk_timeouts 0
224
212
```
225
213
226
214
If the node is not showing active (running) status, it is either stopped or in the process of restarting.
215
+
Indexing of the DB on startup can take some time if the node is archival.
Copy file name to clipboardExpand all lines: versioned_docs/version-2.0.0/operators/setup/joining.md
+25-89Lines changed: 25 additions & 89 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,111 +14,47 @@ Visit the [Hardware Specifications](./hardware.md) section and provision your no
14
14
15
15
Follow the instructions on the [Node Setup](./install-node.md) page.
16
16
17
-
## Step 3: Building the Required Contracts {#step-3-build-contracts}
17
+
## Step 3: Creating and Fund Keys for Bonding {#step-3-create--fund-keys-for-bonding}
18
18
19
-
Use the commands below to build all the necessary contracts for bonding, retrieving rewards, and unbonding.
19
+
See the [Node Setup](./basic-node-configuration.md#create-fund-keys) instructions if you have not generated a validator key. This lives in `/etc/casper/validator_keys`.
20
+
This will need funded to allow bonding.
20
21
21
-
1. Clone the casper-node repository.
22
+
## Step 4: Updating the Trusted Hash {#step-5-update-the-trusted-hash}
The node's `config.toml` needs to be updated with a recent trusted hash.
26
25
27
-
2. Install these prerequisites, which are also listed [here](https://github.com/casper-network/casper-node#pre-requisites-for-building).
26
+
See the [Trusted Hash for Synchronizing](./basic-node-configuration.md#trusted-hash-for-synchronizing) instructions if you have not set up a trusted hash during node installation.
-`pkg-config` - On Ubuntu, use `sudo apt-get install pkg-config`
32
-
-`openssl` - On Ubuntu, use `sudo apt-get install openssl`
33
-
-`libssl-dev` - On Ubuntu, use `sudo apt-get install libssl-dev`
28
+
## Step 5: Setting sync mode
34
29
35
-
3. Install the [Rust casper-client](../../developers/prerequisites.md#install-casper-client) and fund the [keys](../setup/basic-node-configuration.md#create-fund-keys) you will use for bonding.
30
+
The default mode in config for sync is `ttl`. Available options are listed as comments in the `config.toml`. The only sync modes for an operating node are `nosync`, `ttl`, or `genesis`.
36
31
37
-
4. Use the following commands to build the contracts in release mode. Make sure you have [installed Rust](../../developers/writing-onchain-code/getting-started.md#installing-rust).
32
+
`ttl` syncs the Time To Live data, which is the minimum history needed to operate as a validator. `nosync` would need to wait for the ttl period to get this history until possible to transition into `Validate`.
38
33
39
-
```bash
40
-
cd casper-node
41
-
make setup-rs
42
-
make build-client-contracts
43
-
```
34
+
The sync condition needs to be met before it is possible to transition from `KeepUp` to `Validate`. There are two reasons why `ttl` is recommended for a validator.
44
35
45
-
These commands will build all the necessary Wasm contracts for operating as a validator:
46
-
-`activate_bid.wasm` - Reactivates an ejected validator
47
-
-`add_bid.wasm` - Enables bonding for validator stake
48
-
-`delegate.wasm` - Delegates stake
49
-
-`undelegate.wasm` - Undelegates stake
50
-
-`withdraw_bid.wasm` - Enables unbonding for validator stake
36
+
### Improved performance of caching
51
37
52
-
## Step 4: Creating and Fund Keys for Bonding {#step-4-create--fund-keys-for-bonding}
38
+
`ttl` sync reduces disk space drastically compared to a `genesis` sync archive mode. This improves performance of LMDB DB as it is memory cached and gives higher probablity of cache hits.
53
39
54
-
See the [Node Setup](./basic-node-configuration.md#create-fund-keys) instructions if you have not generated and funded your validator keys.
40
+
### Dangers of `genesis` sync archival validators
55
41
56
-
## Step 5: Updating the Trusted Hash {#step-5-update-the-trusted-hash}
42
+
A node must sync to the tip of the chain and be in `KeepUp` state before transitioning to `Validate` state. However, prior to this transition, the historical sync operation must complete.
57
43
58
-
The node's `config.toml` needs to be updated with a recent trusted hash.
44
+
With a `ttl` node this is the minimum state required to operate as a validator. Even if a node has been shut down for some time, acquiring this data is generally fast.
59
45
60
-
See the [Trusted Hash for Synchronizing](./basic-node-configuration.md#trusted-hash-for-synchronizing) instructions if you have not set up a trusted hash during node installation.
46
+
If a node is in `genesis` sync mode, the historical state required is all the way back to the highest block previously synced. The node cannot transition to `Validate` mode until the full historical sync is complete. Historical sync is deprioritized, so this can cause a considerable delay in getting back operational as a validator after prolonged downtime.
61
47
62
-
## Step 6: Starting the Node {#step-6-start-the-node}
63
-
64
-
Start the node with the `casper-node-launcher`:
65
-
66
-
```bash
67
-
sudo systemctl start casper-node-launcher
68
-
```
69
-
70
-
The above Debian package installs a casper-node service for systemd.
71
-
72
-
For more information, visit [GitHub](https://github.com/casper-network/casper-node/wiki#node-operators).
73
-
74
-
## Step 7: Confirming the Node is Synchronized {#step-7-confirm-the-node-is-synchronized}
75
-
76
-
While the node is synchronizing, the `/status` endpoint is available. You will be able to compare this to another node's status endpoint `era_id` and `height` to determine if you are caught up. You will not be able to perform any `casper-client` calls to your `7777` RPC port until your node is fully caught up.
77
-
78
-
Towards the end of the following output, notice the `era_id` and `height` that you can use to determine if your node has completed synchronizing.
79
-
80
-
<details>
81
-
<summary>Sample output of the <code>/status</code> endpoint</summary>
## Step 8: Sending the Bonding Request {#step-7-send-the-bonding-request}
48
+
## Step 5: Confirming the Node is Synchronized {#step-5-confirm-the-node-is-synchronized}
119
49
120
-
You can submit a [bonding request](../becoming-a-validator/bonding.md) to change your synchronized node to a validating node.
50
+
The `casper-node-util watch` command gives display of current node status. And example output is given on the [Node Setup](./basic-node-configuration.md#create-fund-keys) page.
121
51
122
-
The bonding request must be sent after the node has synchronized the protocol state and linear blockchain to avoid being ejected for liveness failures.
52
+
The node has a reactor state machine displayed as `Reactor State:` in the `watch` command. This is coming from the `localhost:8888/status` endpoint.
53
+
54
+
Full status endpoint output can be seen with: `curl localhost:8888/status | jq`. We are piping to `jq` for clean `json` output.
123
55
56
+
## Step 6: Sending the Bonding Request {#step-6-send-the-bonding-request}
124
57
58
+
You can submit a [bonding request](../becoming-a-validator/bonding.md) to change your synchronized node to a validating node.
59
+
60
+
The bonding request must be sent after the node has synchronized the protocol state and linear blockchain to avoid being ejected for liveness failures.
Copy file name to clipboardExpand all lines: versioned_docs/version-2.0.0/operators/setup/node-endpoints.md
+15-4Lines changed: 15 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,9 @@ Node operators can modify a node's configuration options, including the port set
17
17
18
18
The default endpoints for Mainnet and Testnet are open by default and are described below in more detail. If the node connects to a different network, the ports may differ depending on how the network was set up.
19
19
20
+
## Default IP bonding
21
+
22
+
On all defaults given in `config-example.toml` which generates `config.toml` have the bond all interfaces `0.0.0.0` address. If you wish to restrict interfaces, provide the correct IP for these config locations.
If the networking port is closed, the node becomes unreachable, and the node won't be discoverable in the network. If this is a validator, it will face eviction. A read-only node will be considered to be offline.
30
33
31
-
32
34
## Default JSON-RPC HTTP Server Port: 7777 {#7777}
33
35
34
-
The configuration options for the JSON-RPC HTTP server are under the `rpc_server` section in the `config.toml` file. The `address` using port 7777 is the listening address for JSON-RPC HTTP server.
36
+
The configuration options for the JSON-RPC HTTP server is now in `/etc/casper-sidecar/config.toml`, as the RPC service has moved outside of the node.
35
37
36
38
```md
37
-
address = '0.0.0.0:7777'
39
+
ip_address = '0.0.0.0'
40
+
port = 7777
38
41
```
39
42
40
-
DApps would use this address to [interact with the Casper JSON-RPC API](../../developers/json-rpc/index.md). Users would use this address to [interact with the network using CLI](../../developers/cli/index.md). Validators would use this address to [bond](../becoming-a-validator/bonding.md#example-bonding-transaction) or [unbond](../becoming-a-validator/unbonding.md). If this port is closed, the requests coming to this port will not be served, but the node remains unaffected.
43
+
DApps would use this address to [interact with the Casper JSON-RPC API](../../developers/json-rpc/index.md). Users would use this address to [interact with the network using CLI](../../developers/cli/index.md). Validators would use this address to [bond](../becoming-a-validator/bonding.md#example-bonding-transaction) or [unbond](../becoming-a-validator/unbonding.md). If this port is closed or the `casper-sidecar` is not installed, the requests coming to this port will not be served, but the node remains unaffected.
44
+
45
+
## Default Binary-RPC HTTP Server Port: 7779 {#7779}
41
46
47
+
The node RPC moved to the `casper-sidecar` and was replaced with the binary RPC interface. This can be exposed externally if desired for direct calling to node in binary format, which is more efficient than JSON-RPC. However, single RPC calls can involve multiple binary port calls to build up expected data.
48
+
49
+
```md
50
+
address = '0.0.0.0:7779'
51
+
```
42
52
43
53
## Default REST HTTP Server Port: 8888 {#8888}
44
54
@@ -52,6 +62,7 @@ Opening port 8888 is recommended but not required. This port allows the node to
52
62
53
63
One may use this port to [get a trusted hash](./basic-node-configuration.md#trusted-hash-for-synchronizing), [verify successful staging](../maintenance/upgrade.md#verifying-successful-staging) during an upgrade, or to [confirm that the node is synchronized](./joining.md#step-7-confirm-the-node-is-synchronized).
54
64
65
+
If restricting port 8888, it is requested that access is allowed from `3.21.239.186` for the casper-network-monitor to track overall health of the network.
0 commit comments