بنقرة واحدة
replace-operator
Replace a single operator in a Charon distributed validator cluster
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Replace a single operator in a Charon distributed validator cluster
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Query the local Grafana/Prometheus/Loki stack shipped with this CDVN repo. Use when investigating cluster health, charon/beacon/EL errors, peer connectivity, validator performance, or log patterns against the locally-running monitoring stack (not Obol's hosted Grafana).
Add new operators to an existing Charon distributed validator cluster
Add new validators to an existing Charon distributed validator cluster
Export the anti-slashing database (EIP-3076) from the validator client
Import an anti-slashing database (EIP-3076) into the validator client
Recreate private key shares for a Charon cluster while keeping the same validator public keys
| name | replace-operator |
| description | Replace a single operator in a Charon distributed validator cluster |
| user-invokable | true |
Warning: This is an alpha feature and is not yet recommended for production use.
Replace a single operator in a Charon cluster with a new one. All participating operators (remaining + new) run a charon alpha edit replace-operator ceremony together (P2P via relay). The new operator must receive the current cluster-lock.json before the ceremony begins.
Read scripts/edit/replace-operator/README.md for full details if needed.
Common prerequisites:
.env file exists with NETWORK and VC variables set.charon directory with cluster-lock.json and charon-enr-private-keyjq installedAsk the user: "Are you a remaining operator (performing the replacement) or the new operator joining as a replacement?"
Script: scripts/edit/replace-operator/remaining-operator.sh
Additional prerequisites:
.charon/cluster-lock.json and .charon/charon-enr-private-key must exist--skip-export is used)Arguments to gather:
--new-enr: ENR of the new replacement operator--old-enr: ENR of the operator being replaced--skip-export (optional): Skip ASDB export if already done--dry-run firstRun:
./scripts/edit/replace-operator/remaining-operator.sh \
--new-enr "enr:-..." \
--old-enr "enr:-..." \
[--skip-export] \
[--dry-run]
Set WORK_DIR env var to override the repository root directory if running from a custom location.
After completion, the script will print commands to start containers manually. Remind the user to wait ~2 epochs before starting containers.
Script: scripts/edit/replace-operator/new-operator.sh
This is a two-step process:
Ask if the user needs to generate an ENR:
./scripts/edit/replace-operator/new-operator.sh --generate-enr
This creates .charon/charon-enr-private-key and displays the ENR. Tell the user to share this ENR with the existing operators.
The existing operators, in turn, need to share the cluster-lock.json with the new operators, which contains the current cluster configuration and is required for the P2P ceremony.
After receiving the current cluster-lock.json from remaining operators:
--cluster-lock: Path to the received cluster-lock.json--old-enr: ENR of the operator being replaced--dry-run first./scripts/edit/replace-operator/new-operator.sh \
--cluster-lock ./received-cluster-lock.json \
--old-enr "enr:-..." \
[--dry-run]
Set WORK_DIR env var to override the repository root directory if running from a custom location.
The new operator runs this at the same time as the remaining operators run their ceremony. All operators must participate together.
After the ceremony completes, the script automatically:
.charon directory.charon (contains complete configuration)Note: the new operator does NOT have slashing protection history (fresh start).