Skip to content

small fixes to op-conductor page #990

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Oct 15, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 26 additions & 23 deletions pages/builders/chain-operators/tools/op-conductor.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ At OP Labs, op-conductor is deployed as a kubernetes statefulset because it
requires a persistent volume to store the raft log. This guide describes
setting up conductor on an existing network without incurring downtime.

You can utilize the [op-conductor-ops](https://github.com/ethereum-optimism/infra/tree/main/op-conductor-ops) tool to confirm the conductor status between the steps.

### Assumptions

This setup guide has the following assumptions:
Expand Down Expand Up @@ -138,7 +140,7 @@ This setup guide has the following assumptions:

{<h3>Pause two conductors</h3>}

Pause `sequencer-0` &` sequencer-1` conductors with [conductor\_pause](#conductor_pause)
Pause `sequencer-0` &` sequencer-2` conductors with [conductor_pause](#conductor_pause)
RPC request.

{<h3>Update op-node configuration and switch the active sequencer</h3>}
Expand All @@ -150,7 +152,7 @@ This setup guide has the following assumptions:
* all sequencer op-node configs:

```yaml
OP_NODE_CONDUCTOR_ENABLED: "true"
OP_NODE_CONDUCTOR_ENABLED: "true" # this is what commits unsafe blocks to the raft logs
OP_NODE_RPC_ADMIN_STATE: "" # this flag cant be used with conductor
```

Expand All @@ -162,7 +164,7 @@ This setup guide has the following assumptions:

{<h3>Add voting nodes</h3>}

Add voting nodes to cluster using [conductor\_AddServerAsVoter](#conductor_addServerAsVoter)
Add voting nodes to cluster using [conductor_AddServerAsVoter](#conductor_addserverasvoter)
RPC request to the leader conductor (`sequencer-1`)

{<h3>Confirm state</h3>}
Expand All @@ -188,11 +190,11 @@ This setup guide has the following assumptions:

{<h3>Confirm state</h3>}

Confirm all conductors successfully resumed with [conductor\_paused](#conductor_paused)
Confirm all conductors successfully resumed with [conductor_paused](#conductor_paused)

{<h3>Tranfer leadership</h3>}

Trigger leadership transfer to `sequencer-0` using [conductor\_transferLeaderToServer](#conductor_transferLeaderToServer)
Trigger leadership transfer to `sequencer-0` using [conductor_transferLeaderToServer](#conductor_transferleadertoserver)

{<h3>Confirm state</h3>}

Expand Down Expand Up @@ -357,7 +359,7 @@ It is configured via its [flags / environment variables](https://github.com/ethe
Conductor exposes [admin RPCs](https://github.com/ethereum-optimism/optimism/blob/develop/op-conductor/rpc/api.go#L17)
on the `conductor` namespace.

#### conductor\_overrideLeader
#### conductor_overrideLeader

`OverrideLeader` is used to override the leader status, this is only used to
return true for `Leader()` & `LeaderWithID()` calls. It does not impact the
Expand All @@ -382,7 +384,7 @@ manually started sequencer.
</Tabs.Tab>
</Tabs>

#### conductor\_pause
#### conductor_pause

`Pause` pauses op-conductor.

Expand All @@ -402,7 +404,7 @@ manually started sequencer.
</Tabs.Tab>
</Tabs>

#### conductor\_resume
#### conductor_resume

`Resume` resumes op-conductor.

Expand All @@ -422,7 +424,7 @@ manually started sequencer.
</Tabs.Tab>
</Tabs>

#### conductor\_paused
#### conductor_paused

Paused returns true if the op-conductor is paused.

Expand All @@ -442,7 +444,7 @@ Paused returns true if the op-conductor is paused.
</Tabs.Tab>
</Tabs>

#### conductor\_stopped
#### conductor_stopped

Stopped returns true if the op-conductor is stopped.

Expand Down Expand Up @@ -482,7 +484,7 @@ SequencerHealthy returns true if the sequencer is healthy.
</Tabs.Tab>
</Tabs>

#### conductor\_leader
#### conductor_leader

<Callout type="info">
API related to consensus.
Expand All @@ -506,7 +508,7 @@ Leader returns true if the server is the leader.
</Tabs.Tab>
</Tabs>

#### conductor\_leaderWithID
#### conductor_leaderWithID

<Callout type="info">
API related to consensus.
Expand All @@ -530,13 +532,13 @@ LeaderWithID returns the current leader's server info.
</Tabs.Tab>
</Tabs>

#### conductor\_addServerAsVoter
#### conductor_addServerAsVoter

<Callout type="info">
API related to consensus.
API related to consensus. The address parameter is the raft consensus address, not the RPC address.
</Callout>

AddServerAsVoter adds a server as a voter to the cluster.
AddServerAsVoter adds a server as a voter to the cluster.

<Tabs items={['curl', 'cast']}>
<Tabs.Tab>
Expand All @@ -549,12 +551,12 @@ AddServerAsVoter adds a server as a voter to the cluster.

<Tabs.Tab>
```sh
cast rpc conductor_addServerAsVoter --rpc-url http://127.0.0.1:50050 <id> <addr> <version>
cast rpc conductor_addServerAsVoter --rpc-url http://127.0.0.1:50050 <id> <raft-consensus-addr> <version>
```
</Tabs.Tab>
</Tabs>

#### conductor\_addServerAsNonvoter
#### conductor_addServerAsNonvoter

<Callout type="info">
API related to consensus.
Expand All @@ -579,7 +581,7 @@ The non-voter will not participate in the leader election.
</Tabs.Tab>
</Tabs>

#### conductor\_removeServer
#### conductor_removeServer

<Callout type="info">
API related to consensus.
Expand All @@ -603,7 +605,7 @@ RemoveServer removes a server from the cluster.
</Tabs.Tab>
</Tabs>

#### conductor\_transferLeader
#### conductor_transferLeader

<Callout type="info">
API related to consensus.
Expand All @@ -627,7 +629,7 @@ TransferLeader transfers leadership to another server.
</Tabs.Tab>
</Tabs>

#### conductor\_transferLeaderToServer
#### conductor_transferLeaderToServer

<Callout type="info">
API related to consensus.
Expand All @@ -651,7 +653,7 @@ TransferLeaderToServer transfers leadership to a specific server.
</Tabs.Tab>
</Tabs>

#### conductor\_clusterMembership
#### conductor_clusterMembership

ClusterMembership returns the current cluster membership configuration.

Expand All @@ -671,7 +673,7 @@ ClusterMembership returns the current cluster membership configuration.
</Tabs.Tab>
</Tabs>

#### conductor\_active
#### conductor_active

<Callout type="info">
API called by `op-node`.
Expand All @@ -695,7 +697,7 @@ Active returns true if the op-conductor is active (not paused or stopped).
</Tabs.Tab>
</Tabs>

#### conductor\_commitUnsafePayload
#### conductor_commitUnsafePayload

<Callout type="info">
API called by `op-node`.
Expand Down Expand Up @@ -725,3 +727,4 @@ layer.
* Checkout [op-conductor-mon](https://github.com/ethereum-optimism/infra):
which monitors multiple op-conductor instances and provides a unified interface
for reporting metrics.
* Get familiar with [op-conductor-ops](https://github.com/ethereum-optimism/infra/tree/main/op-conductor-ops)to interact with op-conductor.
Loading