diff --git a/pages/builders/chain-operators/tools/op-conductor.mdx b/pages/builders/chain-operators/tools/op-conductor.mdx index 6d4d6cff0..2879e8d50 100644 --- a/pages/builders/chain-operators/tools/op-conductor.mdx +++ b/pages/builders/chain-operators/tools/op-conductor.mdx @@ -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: @@ -138,7 +140,7 @@ This setup guide has the following assumptions: {

Pause two conductors

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

Update op-node configuration and switch the active sequencer

} @@ -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 ``` @@ -162,7 +164,7 @@ This setup guide has the following assumptions: {

Add voting nodes

} - 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`) {

Confirm state

} @@ -188,11 +190,11 @@ This setup guide has the following assumptions: {

Confirm state

} - Confirm all conductors successfully resumed with [conductor\_paused](#conductor_paused) + Confirm all conductors successfully resumed with [conductor_paused](#conductor_paused) {

Tranfer leadership

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

Confirm state

} @@ -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 @@ -382,7 +384,7 @@ manually started sequencer. -#### conductor\_pause +#### conductor_pause `Pause` pauses op-conductor. @@ -402,7 +404,7 @@ manually started sequencer. -#### conductor\_resume +#### conductor_resume `Resume` resumes op-conductor. @@ -422,7 +424,7 @@ manually started sequencer. -#### conductor\_paused +#### conductor_paused Paused returns true if the op-conductor is paused. @@ -442,7 +444,7 @@ Paused returns true if the op-conductor is paused. -#### conductor\_stopped +#### conductor_stopped Stopped returns true if the op-conductor is stopped. @@ -482,7 +484,7 @@ SequencerHealthy returns true if the sequencer is healthy. -#### conductor\_leader +#### conductor_leader API related to consensus. @@ -506,7 +508,7 @@ Leader returns true if the server is the leader. -#### conductor\_leaderWithID +#### conductor_leaderWithID API related to consensus. @@ -530,13 +532,13 @@ LeaderWithID returns the current leader's server info. -#### conductor\_addServerAsVoter +#### conductor_addServerAsVoter - API related to consensus. + API related to consensus. The address parameter is the raft consensus address, not the RPC address. -AddServerAsVoter adds a server as a voter to the cluster. +AddServerAsVoter adds a server as a voter to the cluster. @@ -549,12 +551,12 @@ AddServerAsVoter adds a server as a voter to the cluster. ```sh - cast rpc conductor_addServerAsVoter --rpc-url http://127.0.0.1:50050 + cast rpc conductor_addServerAsVoter --rpc-url http://127.0.0.1:50050 ``` -#### conductor\_addServerAsNonvoter +#### conductor_addServerAsNonvoter API related to consensus. @@ -579,7 +581,7 @@ The non-voter will not participate in the leader election. -#### conductor\_removeServer +#### conductor_removeServer API related to consensus. @@ -603,7 +605,7 @@ RemoveServer removes a server from the cluster. -#### conductor\_transferLeader +#### conductor_transferLeader API related to consensus. @@ -627,7 +629,7 @@ TransferLeader transfers leadership to another server. -#### conductor\_transferLeaderToServer +#### conductor_transferLeaderToServer API related to consensus. @@ -651,7 +653,7 @@ TransferLeaderToServer transfers leadership to a specific server. -#### conductor\_clusterMembership +#### conductor_clusterMembership ClusterMembership returns the current cluster membership configuration. @@ -671,7 +673,7 @@ ClusterMembership returns the current cluster membership configuration. -#### conductor\_active +#### conductor_active API called by `op-node`. @@ -695,7 +697,7 @@ Active returns true if the op-conductor is active (not paused or stopped). -#### conductor\_commitUnsafePayload +#### conductor_commitUnsafePayload API called by `op-node`. @@ -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.