From 3c8d801e5ccad1ec5227c884ab9543d15df85236 Mon Sep 17 00:00:00 2001 From: Dennis Date: Tue, 5 Mar 2024 18:14:18 +0100 Subject: [PATCH] chore(docs): operator avs registration (#495) adds docs on registering as an operator on testnet task: none --- docs/site/docs/home.md | 2 +- docs/site/docs/operate/introduction.md | 33 --------------- .../docs/operate/introduction/introduction.md | 15 +++++++ .../{ => introduction}/requirements.md | 2 +- docs/site/docs/operate/testnet/client.md | 17 ++++++++ docs/site/docs/operate/testnet/install.md | 41 +++++++++++++++++++ .../site/docs/operate/testnet/introduction.md | 11 +++++ docs/site/docs/operate/testnet/register.md | 39 ++++++++++++++++++ docs/site/sidebars.ts | 35 +++++++++++++--- 9 files changed, 154 insertions(+), 41 deletions(-) delete mode 100644 docs/site/docs/operate/introduction.md create mode 100644 docs/site/docs/operate/introduction/introduction.md rename docs/site/docs/operate/{ => introduction}/requirements.md (95%) create mode 100644 docs/site/docs/operate/testnet/client.md create mode 100644 docs/site/docs/operate/testnet/install.md create mode 100644 docs/site/docs/operate/testnet/introduction.md create mode 100644 docs/site/docs/operate/testnet/register.md diff --git a/docs/site/docs/home.md b/docs/site/docs/home.md index 7b7d4a59b..01ecbd6da 100644 --- a/docs/site/docs/home.md +++ b/docs/site/docs/home.md @@ -11,4 +11,4 @@ slug: / _Welcome to the documentation portal for all things Omni!_ -Please read on to learn [about Omni](./learn/introduction/introduction.md), [the network](./protocol/introduction.md), [developer docs](./develop/contracts.md) and [running a validator](./operate/introduction.md). +Please read on to learn [about Omni](./learn/introduction/introduction.md), [the network](./protocol/introduction.md), [developer docs](./develop/contracts.md) and [running a validator](./operate/introduction/introduction.md). diff --git a/docs/site/docs/operate/introduction.md b/docs/site/docs/operate/introduction.md deleted file mode 100644 index 0d3f9edb9..000000000 --- a/docs/site/docs/operate/introduction.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Introduction - -## What is a node operator in Omni? - -Operators run Omni node software and play an active role in validating the Omni network. - -In all other blockchains, validators can only stake the native token of that chain. With Omni, validators can stake **\$OMNI**, but they can also restake **\$ETH**, via Eigenlayer. Operators can also receive **\$ETH** delegations from other users. - -## Registering as an Operator - -To register with Omni, operators must: - -1. Register as an operator in Eigenlayer - - This registers your Ethereum public key with the Eigenlayer. You can follow Eigenlayer's instructions [here](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation). - -2. Register as an operator in the Omni AVS smart contracts. - - This step tells Eigenlayer that you'd like to be an operator specifically for the Omni AVS. Thus, the **\$ETH** that you, and your delegators restaked, will be used to secure Omni. Omni provides a CLI for this. - -3. Run the Omni client software - - This is the component that participates in network validation. Our consensus clients track delegations and stake from our AVS contracts. - - Similar to Ethereum, Omni validators run 2 components: our consensus client, `halo`, and an EVM execution client `geth`, `erigon`, `nethermind`, etc. - -## How do I become an operator? - -If you'd like to become an Omni operator, please reach out to the team. diff --git a/docs/site/docs/operate/introduction/introduction.md b/docs/site/docs/operate/introduction/introduction.md new file mode 100644 index 000000000..42bc410ae --- /dev/null +++ b/docs/site/docs/operate/introduction/introduction.md @@ -0,0 +1,15 @@ +--- +sidebar_position: 1 +--- + +# Introduction + +## What Is a Node Operator in Omni? + +Operators run Omni node software and play an active role in validating the Omni network. + +In all other blockchains, validators can only stake the native token of that chain. With Omni, validators can stake **\$OMNI**, but they can also restake **\$ETH**, via Eigenlayer. Operators can also receive **\$ETH** delegations from other users. + +## How Do I Become an Operator? + +If you'd like to become an Omni operator, please reach out to the team. diff --git a/docs/site/docs/operate/requirements.md b/docs/site/docs/operate/introduction/requirements.md similarity index 95% rename from docs/site/docs/operate/requirements.md rename to docs/site/docs/operate/introduction/requirements.md index 4ee8e6fba..5df51b190 100644 --- a/docs/site/docs/operate/requirements.md +++ b/docs/site/docs/operate/introduction/requirements.md @@ -2,7 +2,7 @@ sidebar_position: 2 --- -# Run a Validator +# Validator Requirements Omniʼs operator needs to run the consensus client and the execution client: diff --git a/docs/site/docs/operate/testnet/client.md b/docs/site/docs/operate/testnet/client.md new file mode 100644 index 000000000..82485f31c --- /dev/null +++ b/docs/site/docs/operate/testnet/client.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 4 +--- + +# Run the Client + +This is the component that participates in network validation. Our consensus clients track delegations and stake from our AVS contracts. + +Similar to Ethereum, Omni validators run 2 components: our consensus client, `halo`, and an EVM execution client `geth`, `erigon`, `nethermind`, etc. + +:::info + +This feature is not yet enabled. Please do not attempt to run it. + +::: + + diff --git a/docs/site/docs/operate/testnet/install.md b/docs/site/docs/operate/testnet/install.md new file mode 100644 index 000000000..2c0277d70 --- /dev/null +++ b/docs/site/docs/operate/testnet/install.md @@ -0,0 +1,41 @@ +--- +sidebar_position: 2 +--- + +# Installing the Omni CLI + +The Omni CLI will allow you to interact with the Omni network and simplifies the process of performing actions as an operator. + +## Install from Binary + +The easiest way to install the Omni CLI is to download the latest release from the [GitHub releases page](https://github.com/omni-network/omni/releases). Once downloaded, you can extract the binary and move it to a location in your PATH. + +## Install from Script + +You can also install the Omni CLI using the following script: + +```bash +curl -sSfL https://raw.githubusercontent.com/omni-network/omni/main/scripts/install_omni_cli.sh | sh -s +``` + +## Install from Source + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + ```bash + git clone https://github.com/omni-network/omni.git + cd omni + make install-cli + ``` + + + ```bash + git clone https://github.com/omni-network/omni.git + cd omni + go install ./cli/cmd/omni + ``` + + diff --git a/docs/site/docs/operate/testnet/introduction.md b/docs/site/docs/operate/testnet/introduction.md new file mode 100644 index 000000000..ba1647ea1 --- /dev/null +++ b/docs/site/docs/operate/testnet/introduction.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 1 +--- + +# EigenLayer Registration + +## Registering as an Operator for Testnet + +To register with Omni, operators must first register as an operator in Eigenlayer testnet + +This registers your Ethereum public key with the Eigenlayer. You can follow Eigenlayer's instructions [here](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation). diff --git a/docs/site/docs/operate/testnet/register.md b/docs/site/docs/operate/testnet/register.md new file mode 100644 index 000000000..b06073f0e --- /dev/null +++ b/docs/site/docs/operate/testnet/register.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 3 +--- + +# Omni AVS Contract Registration + +This tells EigenLayer that you'd like to be an operator specifically for the Omni AVS. Thus, the **\$ETH** that you, and your delegators restaked, will be used to secure Omni. Omni provides a CLI for this. + +You will need to have an `operator.yml` file to perform this registration. This file is created as part of [registering as an operator with the EigenLayer CLI](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation). + +
+`operator.yml` Reference + +For further information on this reference, please refer to the [EigenLayer reference example](https://github.com/Layr-Labs/eigenlayer-cli/blob/master/pkg/operator/config/operator-config-example.yaml). + +```yaml +operator: + address: 0xfd23f7f705344bce1582fcf9bc6a0dc8e33b3b61 # Your operator address + earnings_receiver_address: 0xfd23f7f705344bce1582fcf9bc6a0dc8e33b3b61 # Your operator payout address, may be the same as above + delegation_approver_address: "0x0000000000000000000000000000000000000000" # Your delegation approver address, may be left as shown + staker_opt_out_window_blocks: 0 # may be left as shown, and can be updated later using EigenLayer CLI + metadata_url: "https://raw.githubusercontent.com/idea404/resources/main/eigenlayer/metadata.json" # Your metadata URL +el_delegation_manager_address: 0x8ce361602B935680E8DeC218b820ff5056BeB7af # The address of the EigenLayer delegation manager on the Omni Network +eth_rpc_url: http://127.0.0.1:8002 # Your node Ethereum RPC URL +private_key_store_path: /Users/idea404/.eigenlayer/operator_keys/OpKeys1.ecdsa.key.json # Your private key store path generated or imported by EigenLayer CLI +signer_type: local_keystore # Your signer type, may be left as shown +chain_id: 100 # The chain ID of the Omni Network +``` + +
+ +## Register as an Operator + +1. Ensure that your node address has been added to the allowed list of operators. +2. Run the following command to register as an operator: + +```bash +omni operator register --config-file ~/path/to/operator.yml --avs-address +``` diff --git a/docs/site/sidebars.ts b/docs/site/sidebars.ts index ce46596df..c8577ec11 100644 --- a/docs/site/sidebars.ts +++ b/docs/site/sidebars.ts @@ -6,8 +6,7 @@ const sidebars: SidebarsConfig = { type: "category", label: "Introduction", className: "sidebar-title", - collapsible: true, - collapsed: false, + collapsible: false, items: [ { type: "autogenerated", @@ -23,7 +22,7 @@ const sidebars: SidebarsConfig = { type: "category", label: "Background", className: "sidebar-title", - collapsible: true, + collapsible: false, items: [ { type: "autogenerated", @@ -39,7 +38,7 @@ const sidebars: SidebarsConfig = { type: "category", label: "Omni", className: "sidebar-title", - collapsible: true, + collapsible: false, items: [ { type: "autogenerated", @@ -122,9 +121,33 @@ const sidebars: SidebarsConfig = { ], operateSidebar: [ { - type: "autogenerated", - dirName: "operate", + type: "category", + label: "Introduction", + className: "sidebar-title", + collapsible: false, + items: [ + { + type: "autogenerated", + dirName: "operate/introduction", + } + ] }, + { + type: "html", + value: "", + }, + { + type: "category", + label: "Testnet", + className: "sidebar-title", + collapsible: false, + items: [ + { + type: "autogenerated", + dirName: "operate/testnet", + } + ] + } ], };