Skip to content

Commit

Permalink
docs: initial space for operator docs (#105)
Browse files Browse the repository at this point in the history
Adding an operator guide to the walrus docs. Pretty light on details
for now, but it can be built out as we get closer to testnet + working
with operators.

---------

Co-authored-by: Markus Legner <[email protected]>
  • Loading branch information
johnjmartin and mlegner authored Aug 22, 2024
1 parent abaf0e1 commit 6f97afd
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 2 deletions.
6 changes: 5 additions & 1 deletion docs/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<!-- markdownlint-disable headings no-empty-links -->

# Summary

[Walrus](./README.md)
Expand Down Expand Up @@ -27,10 +28,13 @@

# Usage

- [Developer Guide](./dev-guide/dev-guide.md)
- [Developer guide](./dev-guide/dev-guide.md)
- [Components](./dev-guide/components.md)
- [Operations](./dev-guide/dev-operations.md)
- [Sui structures](./dev-guide/sui-struct.md)
- [Operator guide](./operator-guide/operator-guide.md)
- [Storage node](./operator-guide/storage-node.md)
- [Aggregator](./operator-guide/aggregator.md)
- [Setup](./usage/setup.md)
- [Interacting with Walrus](./usage/interacting.md)
- [Using the client CLI](./usage/client-cli.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/dev-guide/dev-guide.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Developer Guide
# Developer guide

This guide introduces all the concepts needed to build applications that use Walrus as a storage
or availability layer. The [overview](../design/overview.md) provides more background and explains
Expand Down
21 changes: 21 additions & 0 deletions docs/operator-guide/aggregator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Operating an aggregator

Below is an example of an aggregator node which hosts a HTTP endpoint that can be used
to fetch data from Walrus over the web.

The aggregator process is run via the `walrus` client binary in [daemon mode](../usage/web-api.md).
It can be run in many ways, one example being via a systemd service:

```ini
[Unit]
Description=Walrus Aggregator

[Service]
User=walrus
Environment=RUST_BACKTRACE=1
Environment=RUST_LOG=info,walrus=debug
ExecStart=/opt/walrus/bin/walrus --config /opt/walrus/config/client_config.yaml aggregator --bind-address 0.0.0.0:9000
Restart=always

LimitNOFILE=65536
```
10 changes: 10 additions & 0 deletions docs/operator-guide/operator-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Operator guide

This chapter introduces all the concepts needed for operators of the different components that make
up the Walrus system. It is currently a work in progress and will be updated as the platform grows.

Specifically, this guide describes the following:

- [Storage node](storage-node.md) contains the most relevant instructions for operators of a Walrus
storage node.
- [Aggregator](aggregator.md) describes the operation of a Walrus aggregator host.
49 changes: 49 additions & 0 deletions docs/operator-guide/storage-node.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Operating a storage node

The binary of the storage node is not yet publicly available. It will be made available in September
to operators for Testnet nodes. Prior to official network launch the code will be open-sourced.

A basic systemd service running the Storage Node could look like this:

```ini
[Unit]
Description=Walrus Storage Node

[Service]
User=walrus
Environment=RUST_BACKTRACE=1
Environment=RUST_LOG=info,walrus=debug
ExecStart=/opt/walrus/bin/walrus-node run --config-path /opt/walrus/config/walrus-node.yaml
Restart=always

LimitNOFILE=65536
```

Make sure to adjust any paths and, if desired, the log level.

The `walrus-node` binary stores slivers in RocksDB, which means the data will be stored on disk, to
a path configured by the `/opt/walrus/config/walrus-node.yaml` file. The full format with all
mandatory and optional configuration parameters will be made available with the binary.

Here are some important config params from a shortened version of the `walrus-node.yaml` config
file:

```yaml
storage_path: /opt/walrus/db
metrics_address: 127.0.0.1:9184
rest_api_address: 0.0.0.0:9185
sui:
rpc: https://fullnode.testnet.sui.io:443
system_object: 0xWALRUS_CONTRACT
blob_recovery:
max_concurrent_blob_syncs: 10
retry_interval_min_secs: 1
retry_interval_max_secs: 3600
metadata_request_timeout_secs: 5
max_concurrent_metadata_requests: 1
sliver_request_timeout_secs: 300
invalidity_sync_timeout_secs: 300
```
For monitoring, you can configure Grafana Agent to fetch metrics from `localhost:9184/metrics`
(or whatever you've configured `metrics_address` to be).

0 comments on commit 6f97afd

Please sign in to comment.