From 39cd58c3782b55a332fb3f9dc32f523179e308b2 Mon Sep 17 00:00:00 2001 From: Paul Lange Date: Thu, 27 Aug 2026 17:32:20 +0200 Subject: [PATCH 1/3] docs: rename Infra Partners tab to Operate, move infra-partners/ and specs/ under operate/ Moves 23 infra-partners pages to operate/ and 16 spec pages to operate/specification/, folds the Specs tab's two groups into the Operate tab, re-points 71 redirect destinations, and adds wildcard redirects for both old path prefixes. --- docs.json | 247 +++++++++--------- .../notices/archive/celo-sepolia-launch.mdx | 0 .../notices/archive/eigenda-v2-upgrade.mdx | 0 .../notices/archive/isthmus-upgrade.mdx | 0 .../notices/archive/jello-upgrade.mdx | 0 .../notices/archive/jovian-upgrade.mdx | 0 .../notices/archive/l1-fusaka-upgrade.mdx | 0 .../notices/archive/l2-migration.mdx | 0 .../notices/op-geth-deprecation.mdx | 0 .../notices/overview.mdx | 0 .../notices/req-resp-cl-sync-deprecation.mdx | 0 .../operators/architecture.mdx | 0 .../operators/archive-node.mdx | 0 .../operators/configuration.mdx | 0 {infra-partners => operate}/operators/faq.mdx | 0 .../operators/historical-proofs.mdx | 0 .../operators/maintenance.mdx | 0 .../operators/migrate-node.mdx | 0 .../operators/monitoring.mdx | 0 .../operators/network-config.mdx | 0 .../operators/overview.mdx | 0 .../operators/public-rpc-node.mdx | 0 .../operators/run-node.mdx | 0 .../operators/troubleshooting.mdx | 0 .../specification}/deployments.mdx | 0 {specs => operate/specification}/eigenda.mdx | 0 .../specification}/fee-abstraction.mdx | 0 {specs => operate/specification}/finality.mdx | 0 {specs => operate/specification}/index.mdx | 0 .../l1-smart-contract-verification.mdx | 0 .../specification}/l2-migration.mdx | 0 .../specification}/native-bridge.mdx | 0 .../smart-contract-updates-from-l1.mdx | 0 .../specification}/token-duality.mdx | 0 .../specification}/transaction-fees.mdx | 0 .../specification}/transaction-types.mdx | 0 .../specification}/upgrades/ice-cream.mdx | 0 .../specification}/upgrades/isthmus.mdx | 0 .../specification}/upgrades/jello.mdx | 0 .../specification}/upgrades/jovian.mdx | 0 40 files changed, 129 insertions(+), 118 deletions(-) rename {infra-partners => operate}/notices/archive/celo-sepolia-launch.mdx (100%) rename {infra-partners => operate}/notices/archive/eigenda-v2-upgrade.mdx (100%) rename {infra-partners => operate}/notices/archive/isthmus-upgrade.mdx (100%) rename {infra-partners => operate}/notices/archive/jello-upgrade.mdx (100%) rename {infra-partners => operate}/notices/archive/jovian-upgrade.mdx (100%) rename {infra-partners => operate}/notices/archive/l1-fusaka-upgrade.mdx (100%) rename {infra-partners => operate}/notices/archive/l2-migration.mdx (100%) rename {infra-partners => operate}/notices/op-geth-deprecation.mdx (100%) rename {infra-partners => operate}/notices/overview.mdx (100%) rename {infra-partners => operate}/notices/req-resp-cl-sync-deprecation.mdx (100%) rename {infra-partners => operate}/operators/architecture.mdx (100%) rename {infra-partners => operate}/operators/archive-node.mdx (100%) rename {infra-partners => operate}/operators/configuration.mdx (100%) rename {infra-partners => operate}/operators/faq.mdx (100%) rename {infra-partners => operate}/operators/historical-proofs.mdx (100%) rename {infra-partners => operate}/operators/maintenance.mdx (100%) rename {infra-partners => operate}/operators/migrate-node.mdx (100%) rename {infra-partners => operate}/operators/monitoring.mdx (100%) rename {infra-partners => operate}/operators/network-config.mdx (100%) rename {infra-partners => operate}/operators/overview.mdx (100%) rename {infra-partners => operate}/operators/public-rpc-node.mdx (100%) rename {infra-partners => operate}/operators/run-node.mdx (100%) rename {infra-partners => operate}/operators/troubleshooting.mdx (100%) rename {specs => operate/specification}/deployments.mdx (100%) rename {specs => operate/specification}/eigenda.mdx (100%) rename {specs => operate/specification}/fee-abstraction.mdx (100%) rename {specs => operate/specification}/finality.mdx (100%) rename {specs => operate/specification}/index.mdx (100%) rename {specs => operate/specification}/l1-smart-contract-verification.mdx (100%) rename {specs => operate/specification}/l2-migration.mdx (100%) rename {specs => operate/specification}/native-bridge.mdx (100%) rename {specs => operate/specification}/smart-contract-updates-from-l1.mdx (100%) rename {specs => operate/specification}/token-duality.mdx (100%) rename {specs => operate/specification}/transaction-fees.mdx (100%) rename {specs => operate/specification}/transaction-types.mdx (100%) rename {specs => operate/specification}/upgrades/ice-cream.mdx (100%) rename {specs => operate/specification}/upgrades/isthmus.mdx (100%) rename {specs => operate/specification}/upgrades/jello.mdx (100%) rename {specs => operate/specification}/upgrades/jovian.mdx (100%) diff --git a/docs.json b/docs.json index 1b985d43a..24d514e2c 100644 --- a/docs.json +++ b/docs.json @@ -421,24 +421,24 @@ ] }, { - "tab": "Infra Partners", + "tab": "Operate", "groups": [ { "group": "Network Notices", "pages": [ - "infra-partners/notices/overview", - "infra-partners/notices/op-geth-deprecation", - "infra-partners/notices/req-resp-cl-sync-deprecation", + "operate/notices/overview", + "operate/notices/op-geth-deprecation", + "operate/notices/req-resp-cl-sync-deprecation", { "group": "Archive", "pages": [ - "infra-partners/notices/archive/jovian-upgrade", - "infra-partners/notices/archive/jello-upgrade", - "infra-partners/notices/archive/l1-fusaka-upgrade", - "infra-partners/notices/archive/celo-sepolia-launch", - "infra-partners/notices/archive/eigenda-v2-upgrade", - "infra-partners/notices/archive/isthmus-upgrade", - "infra-partners/notices/archive/l2-migration" + "operate/notices/archive/jovian-upgrade", + "operate/notices/archive/jello-upgrade", + "operate/notices/archive/l1-fusaka-upgrade", + "operate/notices/archive/celo-sepolia-launch", + "operate/notices/archive/eigenda-v2-upgrade", + "operate/notices/archive/isthmus-upgrade", + "operate/notices/archive/l2-migration" ] } ] @@ -446,68 +446,63 @@ { "group": "Node Operation", "pages": [ - "infra-partners/operators/overview", - "infra-partners/operators/architecture", - "infra-partners/operators/run-node", - "infra-partners/operators/faq" + "operate/operators/overview", + "operate/operators/architecture", + "operate/operators/run-node", + "operate/operators/faq" ] }, { "group": "Node Management", "pages": [ - "infra-partners/operators/archive-node", - "infra-partners/operators/historical-proofs", - "infra-partners/operators/public-rpc-node", - "infra-partners/operators/monitoring", - "infra-partners/operators/maintenance", - "infra-partners/operators/troubleshooting", - "infra-partners/operators/migrate-node" + "operate/operators/archive-node", + "operate/operators/historical-proofs", + "operate/operators/public-rpc-node", + "operate/operators/monitoring", + "operate/operators/maintenance", + "operate/operators/troubleshooting", + "operate/operators/migrate-node" ] }, { "group": "Reference", "pages": [ - "infra-partners/operators/configuration", - "infra-partners/operators/network-config" + "operate/operators/configuration", + "operate/operators/network-config" ] - } - ] - }, - { - "tab": "Specs", - "groups": [ + }, { "group": "Specification", "pages": [ - "specs/index", + "operate/specification/index", { "group": "Deployments", "pages": [ - "specs/deployments", - "specs/l1-smart-contract-verification" + "operate/specification/deployments", + "operate/specification/l1-smart-contract-verification" ] }, - "specs/token-duality", - "specs/transaction-fees", - "specs/fee-abstraction", - "specs/transaction-types", - "specs/native-bridge", - "specs/eigenda", - "specs/finality" + "operate/specification/token-duality", + "operate/specification/transaction-fees", + "operate/specification/fee-abstraction", + "operate/specification/transaction-types", + "operate/specification/native-bridge", + "operate/specification/eigenda", + "operate/specification/finality" ] }, { "group": "Protocol Upgrades", "pages": [ - "specs/upgrades/jovian", - "specs/upgrades/jello", - "specs/upgrades/ice-cream", - "specs/upgrades/isthmus", + "operate/specification/upgrades/jovian", + "operate/specification/upgrades/jello", + "operate/specification/upgrades/ice-cream", + "operate/specification/upgrades/isthmus", { "group": "L2 Migration", "pages": [ - "specs/l2-migration", - "specs/smart-contract-updates-from-l1" + "operate/specification/l2-migration", + "operate/specification/smart-contract-updates-from-l1" ] } ] @@ -544,7 +539,7 @@ }, { "anchor": "FAQs", - "href": "https://docs.celo.org/infra-partners/operators/faq", + "href": "https://docs.celo.org/operate/operators/faq", "icon": "square-question" } ] @@ -578,7 +573,7 @@ }, { "source": "/tooling/nodes/run-a-celo-node", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/tooling/explorers/blockscout", @@ -638,7 +633,7 @@ }, { "source": "/cel2/l2-operator-guide", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/cel2/notices/day-1-partners", @@ -738,7 +733,7 @@ }, { "source": "/celo-codebase/protocol/identity/randomness", - "destination": "/specs/l2-migration#deactivated-random-contract" + "destination": "/operate/specification/l2-migration#deactivated-random-contract" }, { "source": "/celo-codebase/protocol/identity/smart-contract-accounts", @@ -930,7 +925,7 @@ }, { "source": "/celo-codebase/protocol/transactions/gas-pricing", - "destination": "/specs/transaction-fees" + "destination": "/operate/specification/transaction-fees" }, { "source": "/celo-codebase/protocol/transactions/index", @@ -1438,31 +1433,31 @@ }, { "source": "/developer-guide/integrations/checklist", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/integrations/cloud-hsm", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/integrations/custody", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/integrations/dapps", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/integrations/general", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/integrations/integrations", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/integrations/listings", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/overview", @@ -1478,7 +1473,7 @@ }, { "source": "/developer-guide/overview/integrations/custody", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-guide/overview/introduction", @@ -1590,31 +1585,31 @@ }, { "source": "/developer-resources/integrations/checklist", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-resources/integrations/cloud-hsm", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-resources/integrations/custody", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-resources/integrations/dapps", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-resources/integrations/general", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-resources/integrations/integrations", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-resources/integrations/listings", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/developer-resources/networks/alfajores-testnet", @@ -1834,7 +1829,7 @@ }, { "source": "/getting-started/alfajores-testnet/running-a-full-node-in-alfajores", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/alfajores-testnet/using-the-mobile-wallet", @@ -1850,11 +1845,11 @@ }, { "source": "/getting-started/baklava-testnet/running-a-full-node", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/baklava-testnet/running-a-full-node-in-baklava", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/baklava-testnet/running-a-validator-in-baklava", @@ -1878,11 +1873,11 @@ }, { "source": "/getting-started/mainnet/running-a-full-node-in-mainnet", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/mainnet/running-a-validator-in-mainnet", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/rc1", @@ -1890,31 +1885,31 @@ }, { "source": "/getting-started/rc1/running-a-full-node-in-rc1", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/rc1/running-a-validator-in-rc1", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/running-a-full-node", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/running-a-full-node-in-baklava", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/running-a-full-node-in-mainnet", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/running-a-validator", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/running-a-validator-in-mainnet", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/getting-started/running-oracles", @@ -2026,7 +2021,7 @@ }, { "source": "/network/alfajores/run-full-node", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/network/alfajores/faucet", @@ -2034,7 +2029,7 @@ }, { "source": "/network/baklava/run-full-node", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/network/baklava/run-validator", @@ -2042,7 +2037,7 @@ }, { "source": "/network/mainnet/run-full-node", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/network/mainnet/run-validator", @@ -2050,11 +2045,11 @@ }, { "source": "/network/node/run-alfajores", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/network/node/run-baklava", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/network/node/run-hosted", @@ -2062,7 +2057,7 @@ }, { "source": "/network/node/run-mainnet", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/protocol/bridge", @@ -2186,7 +2181,7 @@ }, { "source": "/protocol/randomness", - "destination": "/specs/l2-migration#deactivated-random-contract" + "destination": "/operate/specification/l2-migration#deactivated-random-contract" }, { "source": "/protocol/socialconnect", @@ -2754,35 +2749,35 @@ }, { "source": "/integration", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/integration/:slug*", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/infra-partners/integration", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/infra-partners/integration/checklist", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/infra-partners/integration/cloud-hsm", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/infra-partners/integration/custody", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/infra-partners/integration/general", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/infra-partners/integration/listings", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/contracts/:slug*", @@ -2790,7 +2785,7 @@ }, { "source": "/cel2/faq", - "destination": "/infra-partners/operators/faq" + "destination": "/operate/operators/faq" }, { "source": "/cel2/guides/bridging-celo-from-l1-to-l2", @@ -2802,55 +2797,55 @@ }, { "source": "/cel2/notices/celo-sepolia-launch", - "destination": "/infra-partners/notices/archive/celo-sepolia-launch" + "destination": "/operate/notices/archive/celo-sepolia-launch" }, { "source": "/cel2/notices/eigenda-v2-upgrade", - "destination": "/infra-partners/notices/archive/eigenda-v2-upgrade" + "destination": "/operate/notices/archive/eigenda-v2-upgrade" }, { "source": "/cel2/notices/isthmus-upgrade", - "destination": "/infra-partners/notices/archive/isthmus-upgrade" + "destination": "/operate/notices/archive/isthmus-upgrade" }, { "source": "/cel2/notices/l2-migration", - "destination": "/infra-partners/notices/archive/l2-migration" + "destination": "/operate/notices/archive/l2-migration" }, { "source": "/infra-partners/notices/jovian-upgrade", - "destination": "/infra-partners/notices/archive/jovian-upgrade" + "destination": "/operate/notices/archive/jovian-upgrade" }, { "source": "/infra-partners/notices/jello-upgrade", - "destination": "/infra-partners/notices/archive/jello-upgrade" + "destination": "/operate/notices/archive/jello-upgrade" }, { "source": "/infra-partners/notices/l1-fusaka-upgrade", - "destination": "/infra-partners/notices/archive/l1-fusaka-upgrade" + "destination": "/operate/notices/archive/l1-fusaka-upgrade" }, { "source": "/infra-partners/notices/celo-sepolia-launch", - "destination": "/infra-partners/notices/archive/celo-sepolia-launch" + "destination": "/operate/notices/archive/celo-sepolia-launch" }, { "source": "/infra-partners/notices/eigenda-v2-upgrade", - "destination": "/infra-partners/notices/archive/eigenda-v2-upgrade" + "destination": "/operate/notices/archive/eigenda-v2-upgrade" }, { "source": "/infra-partners/notices/isthmus-upgrade", - "destination": "/infra-partners/notices/archive/isthmus-upgrade" + "destination": "/operate/notices/archive/isthmus-upgrade" }, { "source": "/infra-partners/notices/l2-migration", - "destination": "/infra-partners/notices/archive/l2-migration" + "destination": "/operate/notices/archive/l2-migration" }, { "source": "/infra-partners/specs", - "destination": "/specs" + "destination": "/operate/specification" }, { "source": "/cel2/operators/architecture", - "destination": "/infra-partners/operators/architecture" + "destination": "/operate/operators/architecture" }, { "source": "/cel2/operators/community-rpc-node", @@ -2862,11 +2857,11 @@ }, { "source": "/cel2/operators/migrate-node", - "destination": "/infra-partners/operators/migrate-node" + "destination": "/operate/operators/migrate-node" }, { "source": "/cel2/operators/overview", - "destination": "/infra-partners/operators/overview" + "destination": "/operate/operators/overview" }, { "source": "/cel2/operators/penalties", @@ -2878,7 +2873,7 @@ }, { "source": "/cel2/operators/run-node", - "destination": "/infra-partners/operators/run-node" + "destination": "/operate/operators/run-node" }, { "source": "/cel2/operators/validator-rpc-faq", @@ -2890,11 +2885,11 @@ }, { "source": "/cel2/whats-changed/l1-l2", - "destination": "/specs/l2-migration" + "destination": "/operate/specification/l2-migration" }, { "source": "/cel2/whats-changed/op-l2", - "destination": "/specs/l2-migration" + "destination": "/operate/specification/l2-migration" }, { "source": "/cel2/whats-changed/overview", @@ -3142,7 +3137,7 @@ }, { "source": "/legacy/faq", - "destination": "/infra-partners/operators/faq" + "destination": "/operate/operators/faq" }, { "source": "/legacy/transition/guides/bridging-celo-from-l1-to-l2", @@ -3210,7 +3205,7 @@ }, { "source": "/legacy/protocol/transaction/gas-pricing", - "destination": "/specs/transaction-fees" + "destination": "/operate/specification/transaction-fees" }, { "source": "/legacy/protocol/transaction/escrow", @@ -3318,7 +3313,7 @@ }, { "source": "/legacy/protocol/randomness", - "destination": "/specs/l2-migration#deactivated-random-contract" + "destination": "/operate/specification/l2-migration#deactivated-random-contract" }, { "source": "/legacy/protocol/contracts/add-contract", @@ -3326,7 +3321,7 @@ }, { "source": "/legacy/node/run-mainnet", - "destination": "/infra-partners/operators/archive-node" + "destination": "/operate/operators/archive-node" }, { "source": "/legacy/validator/index", @@ -3374,11 +3369,27 @@ }, { "source": "/legacy/transition/whats-changed/l1-l2", - "destination": "/specs/l2-migration" + "destination": "/operate/specification/l2-migration" }, { "source": "/legacy/transition/optimism/op-l2", - "destination": "/specs/l2-migration" + "destination": "/operate/specification/l2-migration" + }, + { + "source": "/infra-partners", + "destination": "/operate/notices/overview" + }, + { + "source": "/infra-partners/:slug*", + "destination": "/operate/:slug*" + }, + { + "source": "/specs", + "destination": "/operate/specification" + }, + { + "source": "/specs/:slug*", + "destination": "/operate/specification/:slug*" } ], "footer": { diff --git a/infra-partners/notices/archive/celo-sepolia-launch.mdx b/operate/notices/archive/celo-sepolia-launch.mdx similarity index 100% rename from infra-partners/notices/archive/celo-sepolia-launch.mdx rename to operate/notices/archive/celo-sepolia-launch.mdx diff --git a/infra-partners/notices/archive/eigenda-v2-upgrade.mdx b/operate/notices/archive/eigenda-v2-upgrade.mdx similarity index 100% rename from infra-partners/notices/archive/eigenda-v2-upgrade.mdx rename to operate/notices/archive/eigenda-v2-upgrade.mdx diff --git a/infra-partners/notices/archive/isthmus-upgrade.mdx b/operate/notices/archive/isthmus-upgrade.mdx similarity index 100% rename from infra-partners/notices/archive/isthmus-upgrade.mdx rename to operate/notices/archive/isthmus-upgrade.mdx diff --git a/infra-partners/notices/archive/jello-upgrade.mdx b/operate/notices/archive/jello-upgrade.mdx similarity index 100% rename from infra-partners/notices/archive/jello-upgrade.mdx rename to operate/notices/archive/jello-upgrade.mdx diff --git a/infra-partners/notices/archive/jovian-upgrade.mdx b/operate/notices/archive/jovian-upgrade.mdx similarity index 100% rename from infra-partners/notices/archive/jovian-upgrade.mdx rename to operate/notices/archive/jovian-upgrade.mdx diff --git a/infra-partners/notices/archive/l1-fusaka-upgrade.mdx b/operate/notices/archive/l1-fusaka-upgrade.mdx similarity index 100% rename from infra-partners/notices/archive/l1-fusaka-upgrade.mdx rename to operate/notices/archive/l1-fusaka-upgrade.mdx diff --git a/infra-partners/notices/archive/l2-migration.mdx b/operate/notices/archive/l2-migration.mdx similarity index 100% rename from infra-partners/notices/archive/l2-migration.mdx rename to operate/notices/archive/l2-migration.mdx diff --git a/infra-partners/notices/op-geth-deprecation.mdx b/operate/notices/op-geth-deprecation.mdx similarity index 100% rename from infra-partners/notices/op-geth-deprecation.mdx rename to operate/notices/op-geth-deprecation.mdx diff --git a/infra-partners/notices/overview.mdx b/operate/notices/overview.mdx similarity index 100% rename from infra-partners/notices/overview.mdx rename to operate/notices/overview.mdx diff --git a/infra-partners/notices/req-resp-cl-sync-deprecation.mdx b/operate/notices/req-resp-cl-sync-deprecation.mdx similarity index 100% rename from infra-partners/notices/req-resp-cl-sync-deprecation.mdx rename to operate/notices/req-resp-cl-sync-deprecation.mdx diff --git a/infra-partners/operators/architecture.mdx b/operate/operators/architecture.mdx similarity index 100% rename from infra-partners/operators/architecture.mdx rename to operate/operators/architecture.mdx diff --git a/infra-partners/operators/archive-node.mdx b/operate/operators/archive-node.mdx similarity index 100% rename from infra-partners/operators/archive-node.mdx rename to operate/operators/archive-node.mdx diff --git a/infra-partners/operators/configuration.mdx b/operate/operators/configuration.mdx similarity index 100% rename from infra-partners/operators/configuration.mdx rename to operate/operators/configuration.mdx diff --git a/infra-partners/operators/faq.mdx b/operate/operators/faq.mdx similarity index 100% rename from infra-partners/operators/faq.mdx rename to operate/operators/faq.mdx diff --git a/infra-partners/operators/historical-proofs.mdx b/operate/operators/historical-proofs.mdx similarity index 100% rename from infra-partners/operators/historical-proofs.mdx rename to operate/operators/historical-proofs.mdx diff --git a/infra-partners/operators/maintenance.mdx b/operate/operators/maintenance.mdx similarity index 100% rename from infra-partners/operators/maintenance.mdx rename to operate/operators/maintenance.mdx diff --git a/infra-partners/operators/migrate-node.mdx b/operate/operators/migrate-node.mdx similarity index 100% rename from infra-partners/operators/migrate-node.mdx rename to operate/operators/migrate-node.mdx diff --git a/infra-partners/operators/monitoring.mdx b/operate/operators/monitoring.mdx similarity index 100% rename from infra-partners/operators/monitoring.mdx rename to operate/operators/monitoring.mdx diff --git a/infra-partners/operators/network-config.mdx b/operate/operators/network-config.mdx similarity index 100% rename from infra-partners/operators/network-config.mdx rename to operate/operators/network-config.mdx diff --git a/infra-partners/operators/overview.mdx b/operate/operators/overview.mdx similarity index 100% rename from infra-partners/operators/overview.mdx rename to operate/operators/overview.mdx diff --git a/infra-partners/operators/public-rpc-node.mdx b/operate/operators/public-rpc-node.mdx similarity index 100% rename from infra-partners/operators/public-rpc-node.mdx rename to operate/operators/public-rpc-node.mdx diff --git a/infra-partners/operators/run-node.mdx b/operate/operators/run-node.mdx similarity index 100% rename from infra-partners/operators/run-node.mdx rename to operate/operators/run-node.mdx diff --git a/infra-partners/operators/troubleshooting.mdx b/operate/operators/troubleshooting.mdx similarity index 100% rename from infra-partners/operators/troubleshooting.mdx rename to operate/operators/troubleshooting.mdx diff --git a/specs/deployments.mdx b/operate/specification/deployments.mdx similarity index 100% rename from specs/deployments.mdx rename to operate/specification/deployments.mdx diff --git a/specs/eigenda.mdx b/operate/specification/eigenda.mdx similarity index 100% rename from specs/eigenda.mdx rename to operate/specification/eigenda.mdx diff --git a/specs/fee-abstraction.mdx b/operate/specification/fee-abstraction.mdx similarity index 100% rename from specs/fee-abstraction.mdx rename to operate/specification/fee-abstraction.mdx diff --git a/specs/finality.mdx b/operate/specification/finality.mdx similarity index 100% rename from specs/finality.mdx rename to operate/specification/finality.mdx diff --git a/specs/index.mdx b/operate/specification/index.mdx similarity index 100% rename from specs/index.mdx rename to operate/specification/index.mdx diff --git a/specs/l1-smart-contract-verification.mdx b/operate/specification/l1-smart-contract-verification.mdx similarity index 100% rename from specs/l1-smart-contract-verification.mdx rename to operate/specification/l1-smart-contract-verification.mdx diff --git a/specs/l2-migration.mdx b/operate/specification/l2-migration.mdx similarity index 100% rename from specs/l2-migration.mdx rename to operate/specification/l2-migration.mdx diff --git a/specs/native-bridge.mdx b/operate/specification/native-bridge.mdx similarity index 100% rename from specs/native-bridge.mdx rename to operate/specification/native-bridge.mdx diff --git a/specs/smart-contract-updates-from-l1.mdx b/operate/specification/smart-contract-updates-from-l1.mdx similarity index 100% rename from specs/smart-contract-updates-from-l1.mdx rename to operate/specification/smart-contract-updates-from-l1.mdx diff --git a/specs/token-duality.mdx b/operate/specification/token-duality.mdx similarity index 100% rename from specs/token-duality.mdx rename to operate/specification/token-duality.mdx diff --git a/specs/transaction-fees.mdx b/operate/specification/transaction-fees.mdx similarity index 100% rename from specs/transaction-fees.mdx rename to operate/specification/transaction-fees.mdx diff --git a/specs/transaction-types.mdx b/operate/specification/transaction-types.mdx similarity index 100% rename from specs/transaction-types.mdx rename to operate/specification/transaction-types.mdx diff --git a/specs/upgrades/ice-cream.mdx b/operate/specification/upgrades/ice-cream.mdx similarity index 100% rename from specs/upgrades/ice-cream.mdx rename to operate/specification/upgrades/ice-cream.mdx diff --git a/specs/upgrades/isthmus.mdx b/operate/specification/upgrades/isthmus.mdx similarity index 100% rename from specs/upgrades/isthmus.mdx rename to operate/specification/upgrades/isthmus.mdx diff --git a/specs/upgrades/jello.mdx b/operate/specification/upgrades/jello.mdx similarity index 100% rename from specs/upgrades/jello.mdx rename to operate/specification/upgrades/jello.mdx diff --git a/specs/upgrades/jovian.mdx b/operate/specification/upgrades/jovian.mdx similarity index 100% rename from specs/upgrades/jovian.mdx rename to operate/specification/upgrades/jovian.mdx From 379fcac44973473cf651103fecd7d6fb99b5b679 Mon Sep 17 00:00:00 2001 From: Paul Lange Date: Thu, 27 Aug 2026 17:33:55 +0200 Subject: [PATCH 2/3] docs: re-point inbound links, CODEOWNERS, and AGENTS.md at the operate/ paths Rewrites ~140 internal links across 47 files, points the home-page Integrate card at the operator overview instead of the removed integration index, collapses the two CODEOWNERS blocks into /operate/, and updates the AGENTS.md directory list and canonical-fact paths. --- .github/CODEOWNERS | 7 ++--- AGENTS.md | 12 ++++----- .../fee-abstraction/using-fee-abstraction.mdx | 2 +- build-on-celo/index.mdx | 6 ++--- build-on-celo/network-overview.mdx | 2 +- build-on-celo/support.mdx | 2 +- .../community-rpc-node.mdx | 2 +- .../community-rpc-nodes/penalties.mdx | 6 ++--- home/celo-l1.mdx | 8 +++--- home/manage/self-custody.mdx | 2 +- home/protocol/challengers.mdx | 2 +- home/protocol/epoch-rewards/index.mdx | 2 +- home/protocol/index.mdx | 14 +++++----- .../transactions/transaction-types.mdx | 2 +- .../notices/archive/celo-sepolia-launch.mdx | 2 +- operate/notices/archive/isthmus-upgrade.mdx | 2 +- operate/notices/archive/jovian-upgrade.mdx | 2 +- operate/notices/archive/l2-migration.mdx | 4 +-- operate/notices/op-geth-deprecation.mdx | 6 ++--- operate/notices/overview.mdx | 4 +-- operate/operators/architecture.mdx | 8 +++--- operate/operators/archive-node.mdx | 6 ++--- operate/operators/configuration.mdx | 14 +++++----- operate/operators/faq.mdx | 24 ++++++++--------- operate/operators/historical-proofs.mdx | 8 +++--- operate/operators/maintenance.mdx | 4 +-- operate/operators/migrate-node.mdx | 18 ++++++------- operate/operators/monitoring.mdx | 2 +- operate/operators/network-config.mdx | 4 +-- operate/operators/overview.mdx | 26 +++++++++---------- operate/operators/public-rpc-node.mdx | 4 +-- operate/operators/run-node.mdx | 20 +++++++------- operate/operators/troubleshooting.mdx | 8 +++--- operate/specification/deployments.mdx | 2 +- operate/specification/index.mdx | 16 ++++++------ operate/specification/l2-migration.mdx | 8 +++--- operate/specification/token-duality.mdx | 2 +- operate/specification/transaction-fees.mdx | 4 +-- operate/specification/transaction-types.mdx | 2 +- operate/specification/upgrades/ice-cream.mdx | 2 +- operate/specification/upgrades/jovian.mdx | 2 +- snippets/home.jsx | 2 +- tooling/libraries-sdks/cli/index.mdx | 2 +- tooling/libraries-sdks/contractkit/setup.mdx | 2 +- tooling/nodes/overview.mdx | 2 +- tooling/oracles/run.mdx | 2 +- tooling/overview/migrate/from-ethereum.mdx | 2 +- tooling/testnets/celo-sepolia/index.mdx | 4 +-- 48 files changed, 143 insertions(+), 146 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fcf7f56d4..987e26942 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -15,11 +15,8 @@ # Contribute to Celo section - DevRel team /contribute-to-celo/ @celo-org/devrel -# Infrastructure Partners section - Blockchain team (was cel2) -/infra-partners/ @celo-org/blockchain - -# Specs section (was specs.celo.org) - Blockchain team -/specs/ @celo-org/blockchain +# Operate section (node operation and protocol specification) - Blockchain team +/operate/ @celo-org/blockchain # Tooling section /tooling/ @celo-org/devrel diff --git a/AGENTS.md b/AGENTS.md index 457435abb..365ea9c6c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,7 +8,7 @@ Structural work in progress is tracked in the restructure epic, [#2266](https:// - A [Mintlify](https://mintlify.com) site. Content is MDX; navigation, redirects and theme live in `docs.json`. There is no build step beyond the Mintlify CLI. - `docs.json` is the single source of truth for what is reachable. **A file on disk is unreachable until it is listed under `navigation`.** -- Content directories today: `home/`, `build-on-celo/`, `tooling/`, `contribute-to-celo/`, `infra-partners/`, `specs/`. +- Content directories today: `home/`, `build-on-celo/`, `tooling/`, `contribute-to-celo/`, `operate/`. - `snippets/` holds reusable JSX/MDX (`/snippets/ColoredText.jsx`, `/snippets/YouTube.jsx`, `/snippets/AddNetworkButton.jsx`). Import with an absolute path after the frontmatter: `import {YouTube} from '/snippets/YouTube.jsx'`. - Static assets: `img/`, `images/`, `assets/`, `logo/`. @@ -109,13 +109,13 @@ Numbers and addresses live on one canonical page; every other page links there i | Fact | Canonical page | Say this | |---|---|---| | Chain IDs, RPC URLs, explorers, faucet | `/build-on-celo/network-overview` | mainnet `42220`, `https://forno.celo.org`; Celo Sepolia `11142220`, `https://forno.celo-sepolia.celo-testnet.org`; faucet `https://faucet.celo.org/celo-sepolia` | -| Block time | `/specs/deployments` | "1-second blocks". Do not write "1-second finality" — see `/specs/finality` | -| Transaction cost | `/specs/transaction-fees` | "below $0.01 for a typical transaction" | -| Fee abstraction | `/build-on-celo/fee-abstraction/overview` (guide), `/tooling/contracts/fee-currencies` (addresses), `/specs/fee-abstraction` (protocol) | pay gas in USDm, USDC, USDT or another allowlisted token from any EOA; no paymaster; 6-decimal tokens use the **adapter** address as `feeCurrency` | +| Block time | `/operate/specification/deployments` | "1-second blocks". Do not write "1-second finality" — see `/operate/specification/finality` | +| Transaction cost | `/operate/specification/transaction-fees` | "below $0.01 for a typical transaction" | +| Fee abstraction | `/build-on-celo/fee-abstraction/overview` (guide), `/tooling/contracts/fee-currencies` (addresses), `/operate/specification/fee-abstraction` (protocol) | pay gas in USDm, USDC, USDT or another allowlisted token from any EOA; no paymaster; 6-decimal tokens use the **adapter** address as `feeCurrency` | | Stablecoins | `/build-on-celo/build-with-local-stablecoin` | 15 Mento stablecoins (USDm, EURm, BRLm, KESm, …) plus USDC, USDT, USA₮ and other issuers — "30+ stablecoins" in total | | MiniPay | `/build-on-celo/build-on-minipay/overview` | stablecoin wallet, 10M+ activations, Mini App discovery page, Celo only | -| Token duality | `/specs/token-duality` | CELO is both the native token and an ERC-20; no wrapping | -| Data availability | `/specs/eigenda` | EigenDA | +| Token duality | `/operate/specification/token-duality` | CELO is both the native token and an ERC-20; no wrapping | +| Data availability | `/operate/specification/eigenda` | EigenDA | | Architecture | `/build-on-celo/cel2-architecture` | Ethereum L2 on the OP Stack | | Agent payments | `/build-on-celo/build-with-ai/x402`, `/build-on-celo/build-with-ai/mpp` | HTTP 402 flows settled in USDC/USDT; Celo facilitator `https://api.x402.celo.org` | | Agent identity and trust | `/build-on-celo/build-with-ai/8004`, `/build-on-celo/build-with-ai/self-agent-id` | ERC-8004 registries on Celo; Self Agent ID adds a zero-knowledge proof-of-human | diff --git a/build-on-celo/fee-abstraction/using-fee-abstraction.mdx b/build-on-celo/fee-abstraction/using-fee-abstraction.mdx index f51672868..1d9a23ec3 100644 --- a/build-on-celo/fee-abstraction/using-fee-abstraction.mdx +++ b/build-on-celo/fee-abstraction/using-fee-abstraction.mdx @@ -33,7 +33,7 @@ Allowlisted addresses may be **adapters** rather than full ERC20 tokens. Adapter To get the underlying token address for an adapter, call `adaptedToken()` on the adapter contract. Newer adapters — including the USD₮ and USA₮ ones — expose this as `getAdaptedToken()` instead, so try both if the first call reverts. -For more on gas pricing, see [Transaction Fees](/specs/transaction-fees). +For more on gas pricing, see [Transaction Fees](/operate/specification/transaction-fees). ### Adapter Addresses diff --git a/build-on-celo/index.mdx b/build-on-celo/index.mdx index 11fb8ed29..84cb60296 100644 --- a/build-on-celo/index.mdx +++ b/build-on-celo/index.mdx @@ -69,8 +69,8 @@ Following a successful Baklava upgrade, the Celo L2 Mainnet officially went live ## Useful Links -* [Layer 2 Specification](/specs) -* [Node Operator Guide](/infra-partners/operators/overview) +* [Layer 2 Specification](/operate/specification) +* [Node Operator Guide](/operate/operators/overview) * [About Celo L1](/home/celo-l1) * [Cel2 Code](https://github.com/celo-org/optimism) -* [FAQ](/infra-partners/operators/faq) +* [FAQ](/operate/operators/faq) diff --git a/build-on-celo/network-overview.mdx b/build-on-celo/network-overview.mdx index 4beaab612..fbc6e360b 100644 --- a/build-on-celo/network-overview.mdx +++ b/build-on-celo/network-overview.mdx @@ -53,7 +53,7 @@ The Celo Sepolia Testnet is Celo's new developer testnet built on Ethereum Sepol **New Celo Sepolia Testnet Now Live!** Try Celo's new developer testnet on Ethereum Sepolia. -[Learn more →](/infra-partners/notices/archive/celo-sepolia-launch) +[Learn more →](/operate/notices/archive/celo-sepolia-launch) diff --git a/build-on-celo/support.mdx b/build-on-celo/support.mdx index 677c1eaa4..43b34435f 100644 --- a/build-on-celo/support.mdx +++ b/build-on-celo/support.mdx @@ -25,6 +25,6 @@ For the latest updates, sign up for the [DevDesk Mailing List](http ## Additional Resources -- [Celo specification](/specs) +- [Celo specification](/operate/specification) - [Transaction types on Celo](https://github.com/celo-org/txtypes) - [Celo Forum](https://forum.celo.org/) diff --git a/contribute-to-celo/community-rpc-nodes/community-rpc-node.mdx b/contribute-to-celo/community-rpc-nodes/community-rpc-node.mdx index 3e78c36ef..4090e2e19 100644 --- a/contribute-to-celo/community-rpc-nodes/community-rpc-node.mdx +++ b/contribute-to-celo/community-rpc-nodes/community-rpc-node.mdx @@ -17,7 +17,7 @@ To be eligible for rewards, registered and elected nodes must operate independen ## Running the RPC Service -To operate the required RPC endpoint, follow the [Running a node guide](/infra-partners/operators/run-node). +To operate the required RPC endpoint, follow the [Running a node guide](/operate/operators/run-node). ## Rewards diff --git a/contribute-to-celo/community-rpc-nodes/penalties.mdx b/contribute-to-celo/community-rpc-nodes/penalties.mdx index ea3790c72..fb20aab04 100644 --- a/contribute-to-celo/community-rpc-nodes/penalties.mdx +++ b/contribute-to-celo/community-rpc-nodes/penalties.mdx @@ -48,6 +48,6 @@ Providers with uptime below 20% for 7 days are slashed. ### References in the Specification -- [Overview of rewards and epochs in L2](/specs/smart-contract-updates-from-l1#overview-of-rewards-and-epochs-in-l2) -- [Scoring](/specs/smart-contract-updates-from-l1#scoring) -- [Slashing](/specs/smart-contract-updates-from-l1#slashing) \ No newline at end of file +- [Overview of rewards and epochs in L2](/operate/specification/smart-contract-updates-from-l1#overview-of-rewards-and-epochs-in-l2) +- [Scoring](/operate/specification/smart-contract-updates-from-l1#scoring) +- [Slashing](/operate/specification/smart-contract-updates-from-l1#slashing) \ No newline at end of file diff --git a/home/celo-l1.mdx b/home/celo-l1.mdx index 650d7ebdd..05c175c9d 100644 --- a/home/celo-l1.mdx +++ b/home/celo-l1.mdx @@ -38,21 +38,21 @@ The table below summarizes the technical changes involved in transitioning from These L1 mechanisms were decommissioned before or during the L2 migration and no longer exist on Celo: - **BFT consensus, validator proxies, and slashing** — validators no longer produce blocks; a sequencer orders transactions, and the old validator node operations (proxies, consensus key ceremonies, downtime slashing) ended with the L1. -- **On-chain randomness** — the `Random` contract was removed; contracts use the `PREVRANDAO` opcode instead. See [Deactivated Random Contract](/specs/l2-migration#deactivated-random-contract). +- **On-chain randomness** — the `Random` contract was removed; contracts use the `PREVRANDAO` opcode instead. See [Deactivated Random Contract](/operate/specification/l2-migration#deactivated-random-contract). - **Granda Mento** — the mechanism for exchanging large amounts of CELO for stable tokens through approved exchange proposals ([CIP 38](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0038.md)) was decommissioned. - **The on-chain stability algorithm (CP-DOTO) and stability fees** — the constant-product mechanism that minted and burned stable assets against the reserve became [Mento](https://www.mento.org/), which now operates as its own protocol; the demurrage-style stability fee on stable-token balances was disabled and removed from the protocol. - **Komenci and meta-transaction wallets** — the fee-less onboarding flow used by the original Celo Wallet was discontinued. -- **The `celo-blockchain` client** — the L1 client (docker image `us.gcr.io/celo-org/geth`) stopped syncing new blocks at the migration. To serve pre-migration state, run a [Historical RPC Service](/infra-partners/operators/archive-node). +- **The `celo-blockchain` client** — the L1 client (docker image `us.gcr.io/celo-org/geth`) stopped syncing new blocks at the migration. To serve pre-migration state, run a [Historical RPC Service](/operate/operators/archive-node). ## Resources | Resource | Link | |---|---| | Celo whitepapers | [celo.org/papers](https://celo.org/papers) | -| L2 migration changes in the specs | [/specs/l2-migration](/specs/l2-migration) | +| L2 migration changes in the specs | [/operate/specification/l2-migration](/operate/specification/l2-migration) | ## Related - [Our History](/home/history) - the timeline of Celo's evolution from L1 to L2 - [Staking](/home/protocol/staking/index) - locked CELO, validator elections, and voting, which continue on L2 -- [Node operators](/infra-partners/operators/overview) - running Celo L2 nodes today +- [Node operators](/operate/operators/overview) - running Celo L2 nodes today diff --git a/home/manage/self-custody.mdx b/home/manage/self-custody.mdx index 0d380aaed..d1f93674f 100644 --- a/home/manage/self-custody.mdx +++ b/home/manage/self-custody.mdx @@ -88,7 +88,7 @@ You will now need to point the Celo CLI to a node that is synchronized with the - **Local Celo Blockchain node**: You can run a full node on your local machine which will communicate with other nodes and cryptographically verify all data it receives. Since this approach does not require you to trust the network, it is most secure. - To do this, follow the tutorial for [running a full node](/infra-partners/operators/run-node) (and make sure to pass `--usb`). + To do this, follow the tutorial for [running a full node](/operate/operators/run-node) (and make sure to pass `--usb`). Then run: diff --git a/home/protocol/challengers.mdx b/home/protocol/challengers.mdx index 2737351db..9c9b19f45 100644 --- a/home/protocol/challengers.mdx +++ b/home/protocol/challengers.mdx @@ -3,7 +3,7 @@ title: Challengers description: Listing of the Celo Challengers --- -With the [Jello Hardfork](/infra-partners/notices/archive/jello-upgrade), Celo switched to use OP Succinct Lite and introduced a set of independent challengers. Those challengers are responsible for checking the validity of the state roots sent to the L1. +With the [Jello Hardfork](/operate/notices/archive/jello-upgrade), Celo switched to use OP Succinct Lite and introduced a set of independent challengers. Those challengers are responsible for checking the validity of the state roots sent to the L1. ## List of Challengers diff --git a/home/protocol/epoch-rewards/index.mdx b/home/protocol/epoch-rewards/index.mdx index 9ef5e636e..5dcf8cb7b 100644 --- a/home/protocol/epoch-rewards/index.mdx +++ b/home/protocol/epoch-rewards/index.mdx @@ -34,7 +34,7 @@ A total of **400 million CELO** will be released through epoch rewards over time For details on how epoch rewards worked when Celo was a Layer 1 blockchain, see [About Celo L1](/home/celo-l1). -For technical changes since the L1 to L2 migration, refer to the [official specs](/specs/smart-contract-updates-from-l1#epochs-and-rewards). +For technical changes since the L1 to L2 migration, refer to the [official specs](/operate/specification/smart-contract-updates-from-l1#epochs-and-rewards). ## Epoch Duration and Processing diff --git a/home/protocol/index.mdx b/home/protocol/index.mdx index 9c500c100..3082a6243 100644 --- a/home/protocol/index.mdx +++ b/home/protocol/index.mdx @@ -4,24 +4,24 @@ description: How the Celo protocol works today — an Ethereum Layer 2 on the OP sidebarTitle: "Overview" --- -This page is for anyone who wants to understand how Celo works — developers evaluating the chain, operators joining the network, or readers following a protocol-level question. Celo is an **Ethereum Layer 2**: an OP Stack rollup that posts its data to [EigenDA](/specs/eigenda) and settles to Ethereum, run since March 2025, when Celo completed its migration from a standalone Layer 1. What makes it distinct from other L2s is what the protocol itself guarantees: [1-second blocks](/specs/deployments), transaction fees [below a cent](/specs/transaction-fees), gas payable in stablecoins from any ordinary account, and a stablecoin system and identity layer built in at the protocol level. +This page is for anyone who wants to understand how Celo works — developers evaluating the chain, operators joining the network, or readers following a protocol-level question. Celo is an **Ethereum Layer 2**: an OP Stack rollup that posts its data to [EigenDA](/operate/specification/eigenda) and settles to Ethereum, run since March 2025, when Celo completed its migration from a standalone Layer 1. What makes it distinct from other L2s is what the protocol itself guarantees: [1-second blocks](/operate/specification/deployments), transaction fees [below a cent](/operate/specification/transaction-fees), gas payable in stablecoins from any ordinary account, and a stablecoin system and identity layer built in at the protocol level. ## How the network is built Celo runs the [OP Stack](https://docs.optimism.io/), the modular rollup framework, with two deliberate substitutions — described in detail in [Celo's L2 architecture](/build-on-celo/cel2-architecture): -- **Execution.** A sequencer orders transactions into [1-second blocks](/specs/deployments). Execution is EVM-equivalent: contracts, wallets, and tooling that work on Ethereum work on Celo. The one Celo-specific precompile that survives from the L1 era implements [token duality](/specs/token-duality), which lets CELO behave as both the native token and an ERC-20 without wrapping. -- **Data availability.** Instead of posting transaction data to Ethereum as blobs, Celo posts it to [EigenDA](/specs/eigenda); only the data-availability commitments go to Ethereum. This is what keeps fees low and predictable at 1-second block cadence. +- **Execution.** A sequencer orders transactions into [1-second blocks](/operate/specification/deployments). Execution is EVM-equivalent: contracts, wallets, and tooling that work on Ethereum work on Celo. The one Celo-specific precompile that survives from the L1 era implements [token duality](/operate/specification/token-duality), which lets CELO behave as both the native token and an ERC-20 without wrapping. +- **Data availability.** Instead of posting transaction data to Ethereum as blobs, Celo posts it to [EigenDA](/operate/specification/eigenda); only the data-availability commitments go to Ethereum. This is what keeps fees low and predictable at 1-second block cadence. - **Settlement.** State roots are proposed to Ethereum, where a fault-proof system with a challenge window secures withdrawals. Independent [challengers](/home/protocol/challengers) can dispute invalid state roots during that window, and a [Security Council](/home/protocol/security-council) holds the protocol's emergency keys. -The full specification of these mechanisms — transaction types, fee rules, finality, upgrade history — lives in the [Specs section](/specs/index). +The full specification of these mechanisms — transaction types, fee rules, finality, upgrade history — lives in the [Specs section](/operate/specification/index). ## Paying for transactions Celo keeps two fee properties that shape everything built on it: -- **Fees stay below a cent.** The protocol configures the OP Stack's L1 and operator fee components to zero and relies on EigenDA's low data costs, so a typical transaction costs less than $0.01 — the mechanics are specified in [Transaction fees](/specs/transaction-fees). -- **Gas can be paid in stablecoins.** [Fee abstraction](/build-on-celo/fee-abstraction/overview) is implemented at the node level — not through paymasters or relayers — so any externally owned account can pay gas in USDm, USDC, USDT, or another allowlisted currency using a [CIP-64 transaction](/specs/transaction-types). A user or an AI agent can hold nothing but dollars and still transact. +- **Fees stay below a cent.** The protocol configures the OP Stack's L1 and operator fee components to zero and relies on EigenDA's low data costs, so a typical transaction costs less than $0.01 — the mechanics are specified in [Transaction fees](/operate/specification/transaction-fees). +- **Gas can be paid in stablecoins.** [Fee abstraction](/build-on-celo/fee-abstraction/overview) is implemented at the node level — not through paymasters or relayers — so any externally owned account can pay gas in USDm, USDC, USDT, or another allowlisted currency using a [CIP-64 transaction](/operate/specification/transaction-types). A user or an AI agent can hold nothing but dollars and still transact. ## Stablecoins @@ -46,7 +46,7 @@ Put together — sub-cent fees, 1-second blocks, gas in stablecoins, phone-numbe ## Related - [Celo's L2 architecture](/build-on-celo/cel2-architecture) - The OP Stack layout in detail -- [Specs](/specs/index) - The normative protocol specification +- [Specs](/operate/specification/index) - The normative protocol specification - [Fee abstraction](/build-on-celo/fee-abstraction/overview) - Pay gas in stablecoins - [Governance](/home/protocol/governance/overview) - How the protocol changes - [Network overview](/build-on-celo/network-overview) - Chain IDs, RPCs, explorers diff --git a/home/protocol/transactions/transaction-types.mdx b/home/protocol/transactions/transaction-types.mdx index 857c51905..23785def4 100644 --- a/home/protocol/transactions/transaction-types.mdx +++ b/home/protocol/transactions/transaction-types.mdx @@ -219,7 +219,7 @@ This transaction type is 100% compatible with Ethereum and has no Celo-specific [EIP-7702: Set Code for EOAs](https://eips.ethereum.org/EIPS/eip-7702). - It is scheduled for support on Celo during the - [Celo Isthmus](/infra-partners/notices/archive/isthmus-upgrade) hardfork. + [Celo Isthmus](/operate/notices/archive/isthmus-upgrade) hardfork. ### Legacy Transaction (`0`) diff --git a/operate/notices/archive/celo-sepolia-launch.mdx b/operate/notices/archive/celo-sepolia-launch.mdx index 26d226ddc..7b2f5b1c4 100644 --- a/operate/notices/archive/celo-sepolia-launch.mdx +++ b/operate/notices/archive/celo-sepolia-launch.mdx @@ -34,7 +34,7 @@ Celo Sepolia is the new developer testnet for Celo running as an Ethereum Layer ### For Node Providers -Please support both Alfajores and Celo Sepolia in parallel during the early access and transition phases to ensure a smooth migration for developers. See the [node setup guide](/infra-partners/operators/run-node) for technical details and our recommended [Docker Compose Setup](https://github.com/celo-org/celo-l2-node-docker-compose). +Please support both Alfajores and Celo Sepolia in parallel during the early access and transition phases to ensure a smooth migration for developers. See the [node setup guide](/operate/operators/run-node) for technical details and our recommended [Docker Compose Setup](https://github.com/celo-org/celo-l2-node-docker-compose). Release versions: diff --git a/operate/notices/archive/isthmus-upgrade.mdx b/operate/notices/archive/isthmus-upgrade.mdx index 54a8980b9..8bdb17504 100644 --- a/operate/notices/archive/isthmus-upgrade.mdx +++ b/operate/notices/archive/isthmus-upgrade.mdx @@ -15,7 +15,7 @@ This page will be kept updated with key information about the hardfork. -If you're encountering a stuck node after Alfajores hardfork block (49908280), see the [FAQ](/infra-partners/operators/faq). +If you're encountering a stuck node after Alfajores hardfork block (49908280), see the [FAQ](/operate/operators/faq). ## What's included in Isthmus diff --git a/operate/notices/archive/jovian-upgrade.mdx b/operate/notices/archive/jovian-upgrade.mdx index 9bd4e8e11..701199659 100644 --- a/operate/notices/archive/jovian-upgrade.mdx +++ b/operate/notices/archive/jovian-upgrade.mdx @@ -22,7 +22,7 @@ Key changes include: - **Transfer Precompile Address Warming**: The transfer precompile now warms `from` and `to` addresses during execution, aligning with standard EVM behavior and ensuring correct gas accounting for subsequent operations on the same address. - **Minimum Base Fee Transition**: Celo moves from its own gas price floor mechanism to Optimism's configurable Minimum Base Fee standard, maintaining a cost floor while aligning with OP Stack conventions. -For the full technical specification, see the [Jovian upgrade spec](/specs/upgrades/jovian). +For the full technical specification, see the [Jovian upgrade spec](/operate/specification/upgrades/jovian). - **L1 Fusaka Upgrade**: Celo now includes improvements to handle the L1 Fusaka upgrade, leading to better compatibility with the Optimism stack. For more details see [OP Fusaka upgrade notice](https://docs.optimism.io/notices/archive/fusaka-notice). - **EigenDA upgrade**: The EigenDA proxy is upgraded to a recent version which improves the trustless integration and allows switching to the latest EigenDA protocol version. diff --git a/operate/notices/archive/l2-migration.mdx b/operate/notices/archive/l2-migration.mdx index 1870152c0..444a5bbf0 100644 --- a/operate/notices/archive/l2-migration.mdx +++ b/operate/notices/archive/l2-migration.mdx @@ -9,6 +9,6 @@ description: Migration of Celo from a Layer 1 to an Ethereum Layer 2, and what n * The Alfajores testnet has been migrated on block **26384000**, September 26, 2024. -The instructions for migrating a Celo node from Layer 1 to Layer 2 are outlined [in this guide](/infra-partners/operators/migrate-node). This process is necessary to transition your Celo L1 node to the new Celo L2 architecture based on the OP-Stack. +The instructions for migrating a Celo node from Layer 1 to Layer 2 are outlined [in this guide](/operate/operators/migrate-node). This process is necessary to transition your Celo L1 node to the new Celo L2 architecture based on the OP-Stack. -If you wish to run a Celo L2 node from scratch, you can follow the instructions in the [Running a Celo Node](/infra-partners/operators/run-node) guide. +If you wish to run a Celo L2 node from scratch, you can follow the instructions in the [Running a Celo Node](/operate/operators/run-node) guide. diff --git a/operate/notices/op-geth-deprecation.mdx b/operate/notices/op-geth-deprecation.mdx index f56711772..fe9df91f4 100644 --- a/operate/notices/op-geth-deprecation.mdx +++ b/operate/notices/op-geth-deprecation.mdx @@ -26,10 +26,10 @@ Node operators must complete migration to `op-reth` by the switch date for their A Celo-compatible `op-reth` release is available, and the node-operator guides now use it: -- Follow [Run a node with Docker](/infra-partners/operators/run-node) to run `op-reth`. A new node starts from an empty datadir — bootstrap it from a published snapshot (`OP_RETH__SNAPSHOT=true`, required on mainnet) or, on Celo Sepolia, sync from genesis; no L1 data migration is required. +- Follow [Run a node with Docker](/operate/operators/run-node) to run `op-reth`. A new node starts from an empty datadir — bootstrap it from a published snapshot (`OP_RETH__SNAPSHOT=true`, required on mainnet) or, on Celo Sepolia, sync from genesis; no L1 data migration is required. - A migrated `op-geth` datadir cannot be reused — `op-reth` uses a different on-disk format. Start `op-reth` with an empty `DATADIR_PATH`. -- For archive nodes and pre-L2 historical state, see [Running an archive node](/infra-partners/operators/archive-node). -- See the [Configuration reference](/infra-partners/operators/configuration) for the `OP_RETH__*` variables, and the [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) repository for the latest images. +- For archive nodes and pre-L2 historical state, see [Running an archive node](/operate/operators/archive-node). +- See the [Configuration reference](/operate/operators/configuration) for the `OP_RETH__*` variables, and the [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) repository for the latest images. ## RPC Providers and Bridge Operators diff --git a/operate/notices/overview.mdx b/operate/notices/overview.mdx index bfa39233d..b9087ebcf 100644 --- a/operate/notices/overview.mdx +++ b/operate/notices/overview.mdx @@ -5,10 +5,10 @@ description: "Active upgrade notices, deprecations, and network change announcem --- - + Transition from op-geth to op-reth as Celo's supported execution client. - + The op-node Req/Res consensus-layer P2P sync client is deprecated in favor of execution-layer syncing. diff --git a/operate/operators/architecture.mdx b/operate/operators/architecture.mdx index ce3207a99..996780369 100644 --- a/operate/operators/architecture.mdx +++ b/operate/operators/architecture.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Architecture" description: How a Celo L2 node is composed, from the rollup node and execution client to legacy L1 Celo --- -This page reviews node architecture for all nodes running on the Celo network. All L2 Celo nodes are composed of two core software services, the Rollup Node and the Execution Client. Celo also optionally supports a third component, Legacy L1 Celo, that can serve stateful queries for blocks and transactions created before the [L2 migration](/infra-partners/notices/archive/l2-migration). +This page reviews node architecture for all nodes running on the Celo network. All L2 Celo nodes are composed of two core software services, the Rollup Node and the Execution Client. Celo also optionally supports a third component, Legacy L1 Celo, that can serve stateful queries for blocks and transactions created before the [L2 migration](/operate/notices/archive/l2-migration). ## Rollup node @@ -12,9 +12,9 @@ The Rollup Node is responsible for deriving L2 block payloads from L1 data and p ## Execution client -The Execution Client is responsible for executing the block payloads it receives from the Rollup Node over JSON-RPC via the standard [Ethereum Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md#engine-api----common-definitions). The Execution Client exposes the standard JSON-RPC API that Ethereum developers are familiar with, and can be used to query blockchain data and submit transactions to the network. The Execution Client is largely analogous to an [execution client](https://ethereum.org/en/developers/docs/nodes-and-clients/#what-are-nodes-and-clients) in Ethereum. On Celo this is `op-reth`; `op-geth` is supported until your network's [switch date](/infra-partners/notices/op-geth-deprecation). +The Execution Client is responsible for executing the block payloads it receives from the Rollup Node over JSON-RPC via the standard [Ethereum Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md#engine-api----common-definitions). The Execution Client exposes the standard JSON-RPC API that Ethereum developers are familiar with, and can be used to query blockchain data and submit transactions to the network. The Execution Client is largely analogous to an [execution client](https://ethereum.org/en/developers/docs/nodes-and-clients/#what-are-nodes-and-clients) in Ethereum. On Celo this is `op-reth`; `op-geth` is supported until your network's [switch date](/operate/notices/op-geth-deprecation). ## Next steps -- To get your node up and running, [run a node with Docker](/infra-partners/operators/run-node). -- If you are moving existing Celo L1 data to L2, see [how to migrate an L1 node](/infra-partners/operators/migrate-node). +- To get your node up and running, [run a node with Docker](/operate/operators/run-node). +- If you are moving existing Celo L1 data to L2, see [how to migrate an L1 node](/operate/operators/migrate-node). diff --git a/operate/operators/archive-node.mdx b/operate/operators/archive-node.mdx index 7235e284f..f575f42d5 100644 --- a/operate/operators/archive-node.mdx +++ b/operate/operators/archive-node.mdx @@ -7,13 +7,13 @@ description: Run a full Celo archive node that serves historical-state RPC calls **Archive node vs. historical proofs** -This guide covers running a **full archive node**, which serves every historical-state RPC call (such as `eth_getBalance` or `eth_call`) at any block and requires terabytes of storage. Celo also supports a narrower **historical proofs** feature for serving deep `eth_getProof` within a bounded window without keeping full archive state; see [Serving historical proofs](/infra-partners/operators/historical-proofs). +This guide covers running a **full archive node**, which serves every historical-state RPC call (such as `eth_getBalance` or `eth_call`) at any block and requires terabytes of storage. Celo also supports a narrower **historical proofs** feature for serving deep `eth_getProof` within a bounded window without keeping full archive state; see [Serving historical proofs](/operate/operators/historical-proofs). **Execution client: op-reth** -These instructions use `op-reth`, Celo's primary execution client. `op-geth` is supported until your network's switch date — see the **Still running op-geth?** notes at the end of this guide and [End of Support for op-geth](/infra-partners/notices/op-geth-deprecation). +These instructions use `op-reth`, Celo's primary execution client. `op-geth` is supported until your network's switch date — see the **Still running op-geth?** notes at the end of this guide and [End of Support for op-geth](/operate/notices/op-geth-deprecation). ## Overview @@ -135,7 +135,7 @@ Ensure any datadir you supply is not in use by a running node before proceeding. -Until your network's [switch date](/infra-partners/notices/op-geth-deprecation), you can keep running an `op-geth` archive node from an existing checkout of [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose). The flow above is the same, with these differences: +Until your network's [switch date](/operate/notices/op-geth-deprecation), you can keep running an `op-geth` archive node from an existing checkout of [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose). The flow above is the same, with these differences: - **Sync mode instead of a snapshot.** `op-geth` archive nodes should run `full` sync against a migrated pre-hardfork datadir — `snap` sync only stores archive data from the point it completes, leaving a gap after the hardfork: diff --git a/operate/operators/configuration.mdx b/operate/operators/configuration.mdx index ba8391997..310c800ec 100644 --- a/operate/operators/configuration.mdx +++ b/operate/operators/configuration.mdx @@ -9,7 +9,7 @@ This page documents the `.env` variables and the key client flags used by the [c **Execution client: op-reth** -The variables below configure `op-reth`, Celo's primary execution client. The `op-geth` equivalents remain valid until your network's switch date — see the **op-geth variables** accordion below and [End of Support for op-geth](/infra-partners/notices/op-geth-deprecation). +The variables below configure `op-reth`, Celo's primary execution client. The `op-geth` equivalents remain valid until your network's switch date — see the **op-geth variables** accordion below and [End of Support for op-geth](/operate/notices/op-geth-deprecation). ## Node type and sync @@ -19,7 +19,7 @@ The variables below configure `op-reth`, Celo's primary execution client. The `o | `NODE_TYPE` | `full` (default), `archive` | A `full` node stores historical state only for recent blocks. An `archive` node stores historical state for the entire chain (roughly 10x the storage). | | `OP_RETH__SNAPSHOT` | `true`, `false` (default) | When `true`, an empty datadir is bootstrapped from a published snapshot (`snapshots.celo.org`). Required on mainnet, which needs the pre-L2 history; optional on Celo Sepolia, which can sync from genesis. Ignored once the datadir holds data. | -`op-reth` syncs by executing every block. A new node starts from an empty datadir (see [Run a node with Docker](/infra-partners/operators/run-node)); datadirs written by `op-geth` cannot be reused. For archive nodes, see [Running an archive node](/infra-partners/operators/archive-node). +`op-reth` syncs by executing every block. A new node starts from an empty datadir (see [Run a node with Docker](/operate/operators/run-node)); datadirs written by `op-geth` cannot be reused. For archive nodes, see [Running an archive node](/operate/operators/archive-node). ## L1 connection @@ -39,7 +39,7 @@ An L2 archive node serves pre-hardfork state by proxying to a legacy Celo L1 arc | `HISTORICAL_RPC_DATADIR_PATH` | Path to a pre-hardfork archive datadir. If set, a Celo L1 node runs in archive mode and op-reth proxies pre-migration requests to it. | | `OP_RETH__HISTORICAL_RPC` | RPC endpoint of a running legacy archive node. If set, this overrides `HISTORICAL_RPC_DATADIR_PATH` and no local Celo L1 node is started. | -See [Running an archive node](/infra-partners/operators/archive-node) for the full setup. +See [Running an archive node](/operate/operators/archive-node) for the full setup. ## Networking (P2P) @@ -80,15 +80,15 @@ Each `PORT__*` variable overrides a default exposed in `docker-compose.yml`. Def These flags are set for you by the compose start scripts; they are listed here because they are the Celo-specific ones operators most often need to know about. - **`--rollup.sequencer`** (op-reth, set via `OP_RETH__SEQUENCER_URL`) — the sequencer that transactions submitted to your node are forwarded to. Mainnet: `https://cel2-sequencer.celo.org`; Celo Sepolia: `https://sequencer.celo-sepolia.celo-testnet.org`. If this is wrong, transactions submitted to your node are not executed. -- **`--syncmode=execution-layer`** (op-node) — op-node syncs via the execution client rather than the deprecated consensus-layer req/resp path. See [Deprecation of Req/Res CL P2P Sync](/infra-partners/notices/req-resp-cl-sync-deprecation). +- **`--syncmode=execution-layer`** (op-node) — op-node syncs via the execution client rather than the deprecated consensus-layer req/resp path. See [Deprecation of Req/Res CL P2P Sync](/operate/notices/req-resp-cl-sync-deprecation). - **`--l2.enginekind=reth`** (op-node) — tells op-node which execution client it is driving. It is set to `reth` for `op-reth`. -- **`--metrics.enabled`** (op-node) — exposes Prometheus metrics on port `7300`. See [Monitoring & metrics](/infra-partners/operators/monitoring). +- **`--metrics.enabled`** (op-node) — exposes Prometheus metrics on port `7300`. See [Monitoring & metrics](/operate/operators/monitoring). For every other op-reth/op-node flag, see the Optimism [op-reth config](https://docs.optimism.io/node-operators/reference/op-reth-config) and [op-node config](https://docs.optimism.io/node-operators/reference/op-node-config) references. -If you are still running `op-geth` from an older checkout of [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose), use these equivalents in place of their `OP_RETH__` counterparts. They stop working once your network reaches its [switch date](/infra-partners/notices/op-geth-deprecation). +If you are still running `op-geth` from an older checkout of [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose), use these equivalents in place of their `OP_RETH__` counterparts. They stop working once your network reaches its [switch date](/operate/notices/op-geth-deprecation). | Variable | Description | |---|---| @@ -105,4 +105,4 @@ Key op-geth flags: `--rollup.sequencerhttp` (sequencer endpoint), `--history.tra ## Monitoring -Set `MONITORING_ENABLED=true` to start the Grafana, Prometheus, InfluxDB, and healthcheck stack. See [Monitoring & metrics](/infra-partners/operators/monitoring). +Set `MONITORING_ENABLED=true` to start the Grafana, Prometheus, InfluxDB, and healthcheck stack. See [Monitoring & metrics](/operate/operators/monitoring). diff --git a/operate/operators/faq.mdx b/operate/operators/faq.mdx index 34d402ccb..219cae590 100644 --- a/operate/operators/faq.mdx +++ b/operate/operators/faq.mdx @@ -13,17 +13,17 @@ This FAQ is for node operators and developers with questions about Celo since th A couple of issues could be causing this. * If you are running multiple instances of op-node, make sure to check that they each have a unique and persisted private key at `--p2p.priv.path` -* Ensure that your node is accessible to other nodes, check the __Configure P2P for external network access__ section under [Running a full node](/infra-partners/operators/run-node#running-a-full-node) +* Ensure that your node is accessible to other nodes, check the __Configure P2P for external network access__ section under [Running a full node](/operate/operators/run-node#running-a-full-node) -See the guides for [running a node](/infra-partners/operators/run-node) or the guide on [how to migrate an L1 node](/infra-partners/operators/migrate-node). +See the guides for [running a node](/operate/operators/run-node) or the guide on [how to migrate an L1 node](/operate/operators/migrate-node). -Yes. This is part of [running a node](/infra-partners/operators/run-node). +Yes. This is part of [running a node](/operate/operators/run-node). If you're using the [Docker Compose Setup](https://github.com/celo-org/celo-l2-node-docker-compose), it's included. @@ -44,7 +44,7 @@ Yes, same as with Ethereum. -Have a look at the [changes from L1 to L2 in the specs](/specs/l2-migration#changes-for-json-rpc-users). +Have a look at the [changes from L1 to L2 in the specs](/operate/specification/l2-migration#changes-for-json-rpc-users). @@ -63,29 +63,29 @@ There are multiple options. -[Governance](/home/protocol/governance/overview) remains a pillar of the Celo blockchain. The Validator Hotfix process has been adapted, see [Updated Governance Hotfix](/specs/l2-migration#updated-governance-hotfix) for the changes. +[Governance](/home/protocol/governance/overview) remains a pillar of the Celo blockchain. The Validator Hotfix process has been adapted, see [Updated Governance Hotfix](/operate/specification/l2-migration#updated-governance-hotfix) for the changes. -* CELO token duality? Supported, see [Token Duality](/specs/token-duality). -* Fee currencies? Supported, see [Fee Abstraction](/specs/fee-abstraction). -* Epoch rewards? Epochs now work differently, but rewards stay, see [Epochs and Rewards](/specs/smart-contract-updates-from-l1#epochs-and-rewards). +* CELO token duality? Supported, see [Token Duality](/operate/specification/token-duality). +* Fee currencies? Supported, see [Fee Abstraction](/operate/specification/fee-abstraction). +* Epoch rewards? Epochs now work differently, but rewards stay, see [Epochs and Rewards](/operate/specification/smart-contract-updates-from-l1#epochs-and-rewards). -See the [Celo L2 Specification](/specs) for how Celo differs from a stock OP Stack chain, including block time, the native token, fee currencies, and finality. +See the [Celo L2 Specification](/operate/specification) for how Celo differs from a stock OP Stack chain, including block time, the native token, fee currencies, and finality. -See [Transaction fees in the specs](/specs/transaction-fees): the L1 fee is always zero, and L1 costs are covered through the base fee floor. +See [Transaction fees in the specs](/operate/specification/transaction-fees): the L1 fee is always zero, and L1 costs are covered through the base fee floor. -Celo has [1-second blocks](/specs/deployments). +Celo has [1-second blocks](/operate/specification/deployments). @@ -95,7 +95,7 @@ The gas limit per block is 30 million, so the maximum throughput is 30M gas/s. -See [L1 -> L2 Migration Changes](/specs/l2-migration) in the spec for the details, and [About Celo L1](/home/celo-l1) for the mechanisms that were retired. +See [L1 -> L2 Migration Changes](/operate/specification/l2-migration) in the spec for the details, and [About Celo L1](/home/celo-l1) for the mechanisms that were retired. diff --git a/operate/operators/historical-proofs.mdx b/operate/operators/historical-proofs.mdx index c7fa09179..875831454 100644 --- a/operate/operators/historical-proofs.mdx +++ b/operate/operators/historical-proofs.mdx @@ -9,7 +9,7 @@ description: Configure op-reth to serve deep eth_getProof requests without runni Historical proofs is an `op-reth` capability. `op-geth` served deep `eth_getProof` from full archive state; on `op-reth` it is configured separately, as described -here. See [End of Support for op-geth](/infra-partners/notices/op-geth-deprecation) +here. See [End of Support for op-geth](/operate/notices/op-geth-deprecation) for the migration timeline. @@ -81,7 +81,7 @@ The [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docke setup wires historical proofs behind a single opt-in variable. It is **off by default**. -1. Follow [Run a node with Docker](/infra-partners/operators/run-node) to get a +1. Follow [Run a node with Docker](/operate/operators/run-node) to get a node configured and syncing. 2. Enable historical proofs in your `.env`: @@ -204,7 +204,7 @@ range fall back to the standard (slow) path or error. A historical cast proof
--block --rpc-url http://localhost:9993 ``` -If [monitoring](/infra-partners/operators/monitoring) is enabled, the same window +If [monitoring](/operate/operators/monitoring) is enabled, the same window is exported as Prometheus gauges on op-reth's metrics port: - `reth_optimism_trie_proof_window_earliest` @@ -253,6 +253,6 @@ is exported as Prometheus gauges on op-reth's metrics port: - Optimism: [Historical proofs tutorial](https://docs.optimism.io/node-operators/tutorials/reth-historical-proofs) (sizing and flags in detail; note its day counts assume 2-second blocks). -- [Running an archive node](/infra-partners/operators/archive-node): the +- [Running an archive node](/operate/operators/archive-node): the full-archive alternative when you need every historical-state call, not just proofs. diff --git a/operate/operators/maintenance.mdx b/operate/operators/maintenance.mdx index 21eeedef8..fdf166bdb 100644 --- a/operate/operators/maintenance.mdx +++ b/operate/operators/maintenance.mdx @@ -21,7 +21,7 @@ This pulls the latest changes from GitHub and the latest images from the registr **Hardfork upgrades are time-sensitive** -Network hardforks require running a compatible client version *before* the fork block, or your node will stop following the chain. Watch the [Notices](/infra-partners/notices/archive/l2-migration) for each upgrade's required versions and timing. The next major required migration is the move from op-geth to op-reth — see [End of Support for op-geth](/infra-partners/notices/op-geth-deprecation). +Network hardforks require running a compatible client version *before* the fork block, or your node will stop following the chain. Watch the [Notices](/operate/notices/archive/l2-migration) for each upgrade's required versions and timing. The next major required migration is the move from op-geth to op-reth — see [End of Support for op-geth](/operate/notices/op-geth-deprecation). To pin a specific image version instead of tracking the latest, set the matching `IMAGE_TAG__*` variable in your `.env` (for example `IMAGE_TAG__OP_RETH` or `IMAGE_TAG__OP_NODE`). @@ -53,4 +53,4 @@ cp -a ./envs//datadir /path/to/backup ## Re-syncing -If you need to rebuild a node, start from an empty `DATADIR_PATH` — a datadir written by op-geth cannot be reused. Bootstrap from a published snapshot (`OP_RETH__SNAPSHOT=true`, required on mainnet) or, on Celo Sepolia, execute every block from genesis; see [Run a node with Docker](/infra-partners/operators/run-node). Pre-L2 historical state for archive nodes is served separately — see [Running an archive node](/infra-partners/operators/archive-node). +If you need to rebuild a node, start from an empty `DATADIR_PATH` — a datadir written by op-geth cannot be reused. Bootstrap from a published snapshot (`OP_RETH__SNAPSHOT=true`, required on mainnet) or, on Celo Sepolia, execute every block from genesis; see [Run a node with Docker](/operate/operators/run-node). Pre-L2 historical state for archive nodes is served separately — see [Running an archive node](/operate/operators/archive-node). diff --git a/operate/operators/migrate-node.mdx b/operate/operators/migrate-node.mdx index becaf059c..47661dc3b 100644 --- a/operate/operators/migrate-node.mdx +++ b/operate/operators/migrate-node.mdx @@ -7,20 +7,20 @@ description: Legacy guide for migrating a Celo L1 node datadir to L2, kept for o **Legacy path — not needed for op-reth** -`op-reth`, Celo's primary execution client, cannot use a migrated datadir — the migration tool produces geth-format data. Run `op-reth` from an empty datadir instead — bootstrap it from a published snapshot (see [Run a node with Docker](/infra-partners/operators/run-node)) — and serve pre-L2 historical state via the historical RPC service (see [Running an archive node](/infra-partners/operators/archive-node)). The instructions below apply only to the legacy `op-geth` setup, until your network's [switch date](/infra-partners/notices/op-geth-deprecation). +`op-reth`, Celo's primary execution client, cannot use a migrated datadir — the migration tool produces geth-format data. Run `op-reth` from an empty datadir instead — bootstrap it from a published snapshot (see [Run a node with Docker](/operate/operators/run-node)) — and serve pre-L2 historical state via the historical RPC service (see [Running an archive node](/operate/operators/archive-node)). The instructions below apply only to the legacy `op-geth` setup, until your network's [switch date](/operate/notices/op-geth-deprecation). Unless you need to migrate your own Celo L1 data, we recommend using a snapshot instead. -You can find the latest snapshot in the [Network Config & Assets](/infra-partners/operators/network-config) section. +You can find the latest snapshot in the [Network Config & Assets](/operate/operators/network-config) section. This guide helps Celo L1 node operators migrate their nodes to Celo L2. It describes how to use the [migration tool](https://github.com/celo-org/optimism/tree/celo-rebase-12/op-chain-ops/cmd/celo-migrate) to transform pre-migration database snapshots into a format that Celo L2 nodes can use for a `full` sync. **Alternative options:** -- **Fresh L2 node**: Skip to the [node operator guide](/infra-partners/operators/run-node) — a new `op-reth` node starts from an empty datadir and bootstraps from a published snapshot (or syncs from genesis on Celo Sepolia) -- **Pre-migrated data**: Download migrated datadirs from [Network Config & Assets](/infra-partners/operators/network-config) +- **Fresh L2 node**: Skip to the [node operator guide](/operate/operators/run-node) — a new `op-reth` node starts from an empty datadir and bootstraps from a published snapshot (or syncs from genesis on Celo Sepolia) +- **Pre-migrated data**: Download migrated datadirs from [Network Config & Assets](/operate/operators/network-config) **Terminology** @@ -32,7 +32,7 @@ The terms L1 and pre-hardfork are used interchangeably to reference Celo before Migrating a pre-hardfork datadir involves these high-level steps: -1. Upgrade your L1 node to the [latest client release](/infra-partners/operators/network-config#mainnet) so it will stop producing blocks at the hardfork. +1. Upgrade your L1 node to the [latest client release](/operate/operators/network-config#mainnet) so it will stop producing blocks at the hardfork. 2. Restart your node and wait for the hardfork. 3. Shut down your node once the hardfork block number is reached. 4. Run the migration tool to migrate your L1 datadir and produce the hardfork block. @@ -57,7 +57,7 @@ All node operators must upgrade their L1 (`celo-blockchain`) nodes to the requir **Archive Node Limitation** -Both pre-migration and full migration require **full node data only**. If you only have archive nodes, sync a full node before the hardfork. You cannot migrate archive data, even for L2 archive nodes. See [Running an archive node](/infra-partners/operators/archive-node) for details. +Both pre-migration and full migration require **full node data only**. If you only have archive nodes, sync a full node before the hardfork. You cannot migrate archive data, even for L2 archive nodes. See [Running an archive node](/operate/operators/archive-node) for details. You can use either Docker or build from source. @@ -218,13 +218,13 @@ If you prefer not to use Docker, run the migration directly from source: - You can find the required input artifacts in the [Network config & Assets](/infra-partners/operators/network-config) section. + You can find the required input artifacts in the [Network config & Assets](/operate/operators/network-config) section. We recommend using the [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) codebase as an additional reference for running the migration from source. The full migration process will take at least 5 minutes to complete for mainnet, assuming most data has been pre-migrated. If no pre-migration was performed, it could take several hours. -Congrats! Your datadir is now ready to use with a Celo L2 node. See [Running a Celo Node](/infra-partners/operators/run-node) for instructions on how to start your Celo L2 node. +Congrats! Your datadir is now ready to use with a Celo L2 node. See [Running a Celo Node](/operate/operators/run-node) for instructions on how to start your Celo L2 node. ## Troubleshooting @@ -256,7 +256,7 @@ Both the `pre` and `full` migration commands will first run a script to check wh To resolve this: - Try re-running the migration with a different source datadir if available. - - A full pre-hardfork database snapshot is available in the [Network config & Assets](/infra-partners/operators/network-config) section; we still recommend having your own backup datadir available as well. + - A full pre-hardfork database snapshot is available in the [Network config & Assets](/operate/operators/network-config) section; we still recommend having your own backup datadir available as well. - Ensure the datadir is fully synced to just before the hardfork block. To check if a db has gaps, you can simply re-run the migration command which will automatically perform the check each time. diff --git a/operate/operators/monitoring.mdx b/operate/operators/monitoring.mdx index 96acf7fce..708ef0018 100644 --- a/operate/operators/monitoring.mdx +++ b/operate/operators/monitoring.mdx @@ -63,4 +63,4 @@ cast block-number --rpc-url http://localhost:9993 In the logs, a syncing node shows `op-reth` importing and executing blocks, with its head advancing toward the network's latest block. -If your node is not syncing or has no peers, see [Troubleshooting](/infra-partners/operators/troubleshooting). +If your node is not syncing or has no peers, see [Troubleshooting](/operate/operators/troubleshooting). diff --git a/operate/operators/network-config.mdx b/operate/operators/network-config.mdx index 6b0cb077e..bd59a274f 100644 --- a/operate/operators/network-config.mdx +++ b/operate/operators/network-config.mdx @@ -14,7 +14,7 @@ The recommended [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l ## Mainnet -- op-reth snapshots — published at [`snapshots.celo.org`](https://snapshots.celo.org); a mainnet node must bootstrap from one (`OP_RETH__SNAPSHOT=true`) for the pre-L2 history (see [Run a node](/infra-partners/operators/run-node)) +- op-reth snapshots — published at [`snapshots.celo.org`](https://snapshots.celo.org); a mainnet node must bootstrap from one (`OP_RETH__SNAPSHOT=true`) for the pre-L2 history (see [Run a node](/operate/operators/run-node)) - [Rollup deploy config](https://storage.googleapis.com/cel2-rollup-files/celo/config.json) - [L1 contract addresses](https://storage.googleapis.com/cel2-rollup-files/celo/deployment-l1.json) - [L2 allocs](https://storage.googleapis.com/cel2-rollup-files/celo/l2-allocs.json) @@ -65,7 +65,7 @@ The recommended [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l ## Celo Sepolia -- op-reth snapshots — published at [`snapshots.celo.org`](https://snapshots.celo.org); optional, enable with `OP_RETH__SNAPSHOT=true` to skip syncing from genesis (see [Run a node](/infra-partners/operators/run-node)) +- op-reth snapshots — published at [`snapshots.celo.org`](https://snapshots.celo.org); optional, enable with `OP_RETH__SNAPSHOT=true` to skip syncing from genesis (see [Run a node](/operate/operators/run-node)) - [L1 contract addresses](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/deployment-l1.json) - [rollup.json](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/rollup.json) - [Genesis](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/genesis.json) diff --git a/operate/operators/overview.mdx b/operate/operators/overview.mdx index bddcf890a..5722ea80f 100644 --- a/operate/operators/overview.mdx +++ b/operate/operators/overview.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Overview" description: Start here to run and operate a Celo L2 node, with the fastest path to a synced full node --- -This section helps you run and operate a Celo L2 node. If you are starting fresh, the fastest path is to [run a full node with Docker](/infra-partners/operators/run-node) — a new node bootstraps from a published snapshot (or, on Celo Sepolia, syncs from genesis), with no L1 data migration required. +This section helps you run and operate a Celo L2 node. If you are starting fresh, the fastest path is to [run a full node with Docker](/operate/operators/run-node) — a new node bootstraps from a published snapshot (or, on Celo Sepolia, syncs from genesis), with no L1 data migration required. ## What is a Celo L2 node? @@ -14,12 +14,12 @@ A Celo L2 node is made up of two core services, plus an optional third: - **Execution client** — executes those blocks and exposes the standard Ethereum JSON-RPC API. - **Legacy L1 (optional)** — serves stateful queries for blocks and transactions from before the L2 transition. -See [Architecture](/infra-partners/operators/architecture) for how these fit together. +See [Architecture](/operate/operators/architecture) for how these fit together. ## Node types - **Full node** — follows the chain and serves recent state. Starts from an empty datadir — bootstrap it from a published snapshot (or sync from genesis on Celo Sepolia), with no migrated L1 datadir required. This is the right choice for most operators. -- **Archive node** — additionally preserves all historical state, at the cost of terabytes of storage. See [Running an archive node](/infra-partners/operators/archive-node). +- **Archive node** — additionally preserves all historical state, at the cost of terabytes of storage. See [Running an archive node](/operate/operators/archive-node). ## Execution client @@ -29,20 +29,20 @@ See [Architecture](/infra-partners/operators/architecture) for how these fit tog **op-geth is being deprecated** -Celo is switching its execution client from `op-geth` to `op-reth`. All node operators must migrate to `op-reth` by their network's switch date. See [End of Support for op-geth](/infra-partners/notices/op-geth-deprecation) for the switch dates and details, and follow the [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) repository for release updates. +Celo is switching its execution client from `op-geth` to `op-reth`. All node operators must migrate to `op-reth` by their network's switch date. See [End of Support for op-geth](/operate/notices/op-geth-deprecation) for the switch dates and details, and follow the [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) repository for release updates. ## Guides -- [Run a node with Docker](/infra-partners/operators/run-node) — the fastest way to get a full node syncing (also covers building from source). -- [Run an archive node](/infra-partners/operators/archive-node) — preserve access to all historical state. -- [Run a public RPC node](/infra-partners/operators/public-rpc-node) — operate a public JSON-RPC endpoint (and optionally earn rewards). -- [Monitoring & metrics](/infra-partners/operators/monitoring) — enable the Grafana/Prometheus stack and watch sync health. -- [Upgrades & maintenance](/infra-partners/operators/maintenance) — upgrade clients, restart safely, and back up your data. -- [Troubleshooting](/infra-partners/operators/troubleshooting) — fixes for common node issues. -- [Configuration reference](/infra-partners/operators/configuration) — the `.env` variables and key client flags. -- [Network Config & Assets](/infra-partners/operators/network-config) — bootnodes, container images, and downloadable artifacts. -- [Migrate an L1 node](/infra-partners/operators/migrate-node) — for operators moving existing Celo L1 data to L2 (legacy path). +- [Run a node with Docker](/operate/operators/run-node) — the fastest way to get a full node syncing (also covers building from source). +- [Run an archive node](/operate/operators/archive-node) — preserve access to all historical state. +- [Run a public RPC node](/operate/operators/public-rpc-node) — operate a public JSON-RPC endpoint (and optionally earn rewards). +- [Monitoring & metrics](/operate/operators/monitoring) — enable the Grafana/Prometheus stack and watch sync health. +- [Upgrades & maintenance](/operate/operators/maintenance) — upgrade clients, restart safely, and back up your data. +- [Troubleshooting](/operate/operators/troubleshooting) — fixes for common node issues. +- [Configuration reference](/operate/operators/configuration) — the `.env` variables and key client flags. +- [Network Config & Assets](/operate/operators/network-config) — bootnodes, container images, and downloadable artifacts. +- [Migrate an L1 node](/operate/operators/migrate-node) — for operators moving existing Celo L1 data to L2 (legacy path). ## Getting help diff --git a/operate/operators/public-rpc-node.mdx b/operate/operators/public-rpc-node.mdx index 49116745a..395dd2165 100644 --- a/operate/operators/public-rpc-node.mdx +++ b/operate/operators/public-rpc-node.mdx @@ -4,7 +4,7 @@ sidebarTitle: "Run a Public RPC Node" description: Settings specific to operating a Celo node that serves public JSON-RPC traffic --- -A public RPC node serves JSON-RPC requests to external clients. This page covers the settings specific to operating one; to get a node running first, see [Run a node with Docker](/infra-partners/operators/run-node). +A public RPC node serves JSON-RPC requests to external clients. This page covers the settings specific to operating one; to get a node running first, see [Run a node with Docker](/operate/operators/run-node). ## Serve transaction lookups by hash @@ -21,7 +21,7 @@ If it is missing or wrong, transactions submitted to your node are accepted but ## Exposing the endpoint -op-reth serves JSON-RPC over HTTP on port `9993` and WebSocket on `9994` by default (configurable via `PORT__OP_RETH_HTTP` and `PORT__OP_RETH_WS` — see the [Configuration reference](/infra-partners/operators/configuration#ports)). The compose setup enables the `web3,debug,eth,txpool,net` namespaces on these endpoints. +op-reth serves JSON-RPC over HTTP on port `9993` and WebSocket on `9994` by default (configurable via `PORT__OP_RETH_HTTP` and `PORT__OP_RETH_WS` — see the [Configuration reference](/operate/operators/configuration#ports)). The compose setup enables the `web3,debug,eth,txpool,net` namespaces on these endpoints. When exposing this publicly, put a reverse proxy or load balancer with rate limiting in front of it, and be deliberate about which RPC namespaces you expose to untrusted clients. diff --git a/operate/operators/run-node.mdx b/operate/operators/run-node.mdx index 6c82c3348..69a1c3200 100644 --- a/operate/operators/run-node.mdx +++ b/operate/operators/run-node.mdx @@ -11,7 +11,7 @@ This guide is designed to help node operators run a Celo L2 node with Docker. These instructions use `op-reth`, the execution client Celo is adopting as its primary client. A fresh node starts from an empty datadir and bootstraps from a published snapshot (required on mainnet) or, on Celo Sepolia, syncs from genesis — no L1 data migration required. -`op-geth` remains supported until your network's switch date — see the **Still running op-geth?** notes at the end of this guide, and [End of Support for op-geth](/infra-partners/notices/op-geth-deprecation) for the switch dates. +`op-geth` remains supported until your network's switch date — see the **Still running op-geth?** notes at the end of this guide, and [End of Support for op-geth](/operate/notices/op-geth-deprecation) for the switch dates. ## Recommended Hardware @@ -35,7 +35,7 @@ These instructions use `op-reth`, the execution client Celo is adopting as its p Storage size requirements will increase over time, especially for archive nodes. -If running an archive node, please make sure you also have enough storage for the legacy Celo L1 archive datadir. See [Running an archive node](/infra-partners/operators/archive-node). +If running an archive node, please make sure you also have enough storage for the legacy Celo L1 archive datadir. See [Running an archive node](/operate/operators/archive-node). ## Run Node with Docker @@ -44,7 +44,7 @@ To simplify running nodes, Celo has created the [celo-l2-node-docker-compose](ht ### Running a Full Node -Follow these steps to run a full node. If you would like to run an archive node, see [Running an archive node](/infra-partners/operators/archive-node). +Follow these steps to run a full node. If you would like to run an archive node, see [Running an archive node](/operate/operators/archive-node). 1. Pull the latest version of [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) and `cd` into the root of the project. @@ -81,12 +81,12 @@ Follow these steps to run a full node. If you would like to run an archive node, **Datadirs from op-geth cannot be reused** - `op-reth` uses a different on-disk format. A datadir written by `op-geth` — including one produced by the [L1→L2 migration](/infra-partners/operators/migrate-node) — cannot be used with `op-reth`. Start from an empty `DATADIR_PATH`. Pre-L2 historical state is served separately; see [Running an archive node](/infra-partners/operators/archive-node). + `op-reth` uses a different on-disk format. A datadir written by `op-geth` — including one produced by the [L1→L2 migration](/operate/operators/migrate-node) — cannot be used with `op-reth`. Start from an empty `DATADIR_PATH`. Pre-L2 historical state is served separately; see [Running an archive node](/operate/operators/archive-node). #### Configure node type - Your node will run as a `full` node by default, but can also be configured as an `archive` node if you wish to preserve access to all historical state. See [Running an archive node](/infra-partners/operators/archive-node) for more information. + Your node will run as a `full` node by default, but can also be configured as an `archive` node if you wish to preserve access to all historical state. See [Running an archive node](/operate/operators/archive-node) for more information. #### Configure P2P for external network access @@ -125,7 +125,7 @@ Follow these steps to run a full node. If you would like to run an archive node, -Until your network's [switch date](/infra-partners/notices/op-geth-deprecation), you can keep running `op-geth` from an existing checkout of [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) (the latest version runs `op-reth` only). The steps above are the same, with these differences: +Until your network's [switch date](/operate/notices/op-geth-deprecation), you can keep running `op-geth` from an existing checkout of [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) (the latest version runs `op-reth` only). The steps above are the same, with these differences: - **Sync mode instead of a snapshot.** `op-geth` starts with `snap` sync by default, which downloads pre-hardfork block data from peers — no migrated L1 datadir required. To run `full` sync against a migrated L1 datadir instead, set: @@ -143,10 +143,10 @@ After your network's switch date, `op-geth` will no longer follow the chain — ## Build from source -Docker images are the easiest way to run a Celo node, but you can also build from source — for example to run on a specific architecture or to inspect the code. The [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) codebase is the best reference, and the [Network Config & Assets](/infra-partners/operators/network-config) page lists everything you need to participate in the network. +Docker images are the easiest way to run a Celo node, but you can also build from source — for example to run on a specific architecture or to inspect the code. The [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l2-node-docker-compose) codebase is the best reference, and the [Network Config & Assets](/operate/operators/network-config) page lists everything you need to participate in the network. ## Next steps -- [Run an archive node](/infra-partners/operators/archive-node) — preserve access to all historical state. -- [Network Config & Assets](/infra-partners/operators/network-config) — bootnodes, container images, and downloadable artifacts. -- [Troubleshooting](/infra-partners/operators/troubleshooting) — fixes for common node issues, plus how to get help. +- [Run an archive node](/operate/operators/archive-node) — preserve access to all historical state. +- [Network Config & Assets](/operate/operators/network-config) — bootnodes, container images, and downloadable artifacts. +- [Troubleshooting](/operate/operators/troubleshooting) — fixes for common node issues, plus how to get help. diff --git a/operate/operators/troubleshooting.mdx b/operate/operators/troubleshooting.mdx index 4ac0e8267..adec163de 100644 --- a/operate/operators/troubleshooting.mdx +++ b/operate/operators/troubleshooting.mdx @@ -11,7 +11,7 @@ If your node is synced but transactions submitted to it are not executed, make s - Mainnet: `--rollup.sequencer=https://cel2-sequencer.celo.org` - Celo Sepolia: `--rollup.sequencer=https://sequencer.celo-sepolia.celo-testnet.org` -If you are hosting a public RPC node, see [Run a public RPC node](/infra-partners/operators/public-rpc-node) for serving transaction lookups by hash. +If you are hosting a public RPC node, see [Run a public RPC node](/operate/operators/public-rpc-node) for serving transaction lookups by hash. ## Checking Sync Progress @@ -27,17 +27,17 @@ You can also run `./progress.sh` from the [celo-l2-node-docker-compose](https:// cast block-number --rpc-url http://localhost:9993 ``` -See [Monitoring & metrics](/infra-partners/operators/monitoring) for the Grafana dashboard and the metrics that show sync health. +See [Monitoring & metrics](/operate/operators/monitoring) for the Grafana dashboard and the metrics that show sync health. ## Node Is Not Syncing or Has No Peers -If your node stalls or falls behind the sequencer, it usually has too few peers. Check `op_node_default_peer_count` (see [Monitoring & metrics](/infra-partners/operators/monitoring)); if it is low or zero, your node cannot discover or reach other nodes. This is almost always a P2P configuration problem: +If your node stalls or falls behind the sequencer, it usually has too few peers. Check `op_node_default_peer_count` (see [Monitoring & metrics](/operate/operators/monitoring)); if it is low or zero, your node cannot discover or reach other nodes. This is almost always a P2P configuration problem: - Set `OP_NODE__P2P_ADVERTISE_IP` to your node's public IP. - Set `OP_RETH__NAT` to `extip:` rather than relying on auto-detection. - Make sure the P2P ports are reachable (op-reth `30303`, op-node `9222` by default). -See the [Configuration reference](/infra-partners/operators/configuration#networking-p2p) for these variables. Because op-node now syncs via the execution layer, healthy execution-client peer connectivity is required — see [Deprecation of Req/Res CL P2P Sync](/infra-partners/notices/req-resp-cl-sync-deprecation). +See the [Configuration reference](/operate/operators/configuration#networking-p2p) for these variables. Because op-node now syncs via the execution layer, healthy execution-client peer connectivity is required — see [Deprecation of Req/Res CL P2P Sync](/operate/notices/req-resp-cl-sync-deprecation). ## Getting Help diff --git a/operate/specification/deployments.mdx b/operate/specification/deployments.mdx index 0fcbccc78..4e2f4c99b 100644 --- a/operate/specification/deployments.mdx +++ b/operate/specification/deployments.mdx @@ -5,7 +5,7 @@ description: Migration details and deployment parameters for Celo Mainnet and th ## Mainnet -Celo Mainnet was migrated to an L2 on March 26, 2025, around 3:00 AM UTC, at block *31056500*. For this, the L1 chain was stopped at a block height of *31056499* and the existing state was migrated to work with the L2 nodes. The migration process preserved the full L1 history while updating it to work with the Celo L2 stack. More technical details are available in the [migration docs](/specs/l2-migration). +Celo Mainnet was migrated to an L2 on March 26, 2025, around 3:00 AM UTC, at block *31056500*. For this, the L1 chain was stopped at a block height of *31056499* and the existing state was migrated to work with the L2 nodes. The migration process preserved the full L1 history while updating it to work with the Celo L2 stack. More technical details are available in the [migration docs](/operate/specification/l2-migration). The Celo L2 network has the following chain properties: diff --git a/operate/specification/index.mdx b/operate/specification/index.mdx index aea1b316f..78fb1fde3 100644 --- a/operate/specification/index.mdx +++ b/operate/specification/index.mdx @@ -6,7 +6,7 @@ description: How the Celo L2 implementation differs from the OP Stack it is buil This document describes the differences between the Celo L2 implementation and [Optimism's](https://optimism.io) OP Stack, on which it is based. Refer to the [OP Stack specs](https://specs.optimism.io/) for details on the unmodified OP Stack. -The [L1→L2 migration changes page](/specs/l2-migration) details the differences compared to the Celo L1 blockchain. The Celo L2 is a continuation of the L1 by using its state and providing a high level of compatibility with it. +The [L1→L2 migration changes page](/operate/specification/l2-migration) details the differences compared to the Celo L1 blockchain. The Celo L2 is a continuation of the L1 by using its state and providing a high level of compatibility with it. ## Background @@ -14,17 +14,17 @@ Since May 2024, the Celo Community has decided to transition from an L1 blockcha ## New Features -- [Token duality](/specs/token-duality), access native tokens via ERC20 -- [Fee Abstraction](/specs/fee-abstraction), pay gas with ERC20 tokens +- [Token duality](/operate/specification/token-duality), access native tokens via ERC20 +- [Fee Abstraction](/operate/specification/fee-abstraction), pay gas with ERC20 tokens ## Technical Differences -- New [transaction types](/specs/transaction-types) to support Fee Abstraction -- [One new precompile](/specs/token-duality#the-transfer-precompile) to support token duality -- [Changes to finality](/specs/finality) +- New [transaction types](/operate/specification/transaction-types) to support Fee Abstraction +- [One new precompile](/operate/specification/token-duality#the-transfer-precompile) to support token duality +- [Changes to finality](/operate/specification/finality) - The `MaxCodeSize` for newly deployed contracts is increased from 24576 to 65536. ## Deployments -- [Mainnet](/specs/deployments#mainnet) -- [Celo Sepolia testnet](/specs/deployments#celo-sepolia-testnet) +- [Mainnet](/operate/specification/deployments#mainnet) +- [Celo Sepolia testnet](/operate/specification/deployments#celo-sepolia-testnet) diff --git a/operate/specification/l2-migration.mdx b/operate/specification/l2-migration.mdx index a040fa402..40b1a0e52 100644 --- a/operate/specification/l2-migration.mdx +++ b/operate/specification/l2-migration.mdx @@ -8,7 +8,7 @@ The switch from the Celo L1 blockchain to the Celo L2 introduces a variety of ch ## Changes for Contracts Developers -- [Removed precompiles](/specs/smart-contract-updates-from-l1#precompiles-deprecation) (all except the `transfer` precompile) +- [Removed precompiles](/operate/specification/smart-contract-updates-from-l1#precompiles-deprecation) (all except the `transfer` precompile) - During the migration the following hardforks are enabled: - [Berlin](https://github.com/ethereum/execution-specs/blob/mainnet/src/ethereum/forks/berlin/__init__.py) - [London](https://github.com/ethereum/execution-specs/blob/mainnet/src/ethereum/forks/london/__init__.py) @@ -49,7 +49,7 @@ To keep costs of processing epochs low, only the following key functions (used f - `validatorSignerAddressFromCurrentSet()` - `numberValidatorsInCurrentSet()` -Read more on new [epoch management and reward distribution](/specs/smart-contract-updates-from-l1#epochs-and-rewards) or [deprecated precompiles](/specs/smart-contract-updates-from-l1#precompiles-deprecation). +Read more on new [epoch management and reward distribution](/operate/specification/smart-contract-updates-from-l1#epochs-and-rewards) or [deprecated precompiles](/operate/specification/smart-contract-updates-from-l1#precompiles-deprecation). ### FeeCurrencyDirectory @@ -100,7 +100,7 @@ Due to the absence of validators on L2, the process now incorporates a multisig ### Removed Tx Types -New transactions can't be submitted using the following transaction types, see also the [tx types page](/specs/transaction-types): +New transactions can't be submitted using the following transaction types, see also the [tx types page](/operate/specification/transaction-types): - Celo legacy tx - CIP-42 @@ -458,7 +458,7 @@ There's a number of checks to make sure this doesn't end up causing problems. #### `CeloUnreleasedTreasury` set up -The `CeloUnreleasedTreasury` is a new contract available on the migrated Celo L2. See [the spec](/specs/smart-contract-updates-from-l1#celo-minting) for more information. +The `CeloUnreleasedTreasury` is a new contract available on the migrated Celo L2. See [the spec](/operate/specification/smart-contract-updates-from-l1#celo-minting) for more information. During the migration it needs to be setup with the remaining unminted Celo. diff --git a/operate/specification/token-duality.mdx b/operate/specification/token-duality.mdx index 3483987d9..24ee97ab5 100644 --- a/operate/specification/token-duality.mdx +++ b/operate/specification/token-duality.mdx @@ -22,7 +22,7 @@ Similarly, the ERC20 `transfer` and `transferFrom` functions do not change the c ### The `transfer` precompile -The precompile directly manipulates the account balances in the EVM’s statedb. It checks the caller address to verify that it has been called by the CELO token. Since the [Jovian hardfork](/specs/upgrades/jovian), the `from` and `to` addresses get warmed (added to the access list) during precompil execution. Before Jovian, warmness stayed unchanged. +The precompile directly manipulates the account balances in the EVM’s statedb. It checks the caller address to verify that it has been called by the CELO token. Since the [Jovian hardfork](/operate/specification/upgrades/jovian), the `from` and `to` addresses get warmed (added to the access list) during precompil execution. Before Jovian, warmness stayed unchanged. Precompile address: `0xff - 2` == `253` Parameters (abi-encoded): `address from, address to, uint256 value` diff --git a/operate/specification/transaction-fees.mdx b/operate/specification/transaction-fees.mdx index a9a9514ce..a86495c00 100644 --- a/operate/specification/transaction-fees.mdx +++ b/operate/specification/transaction-fees.mdx @@ -7,7 +7,7 @@ description: How transaction fees work on Celo, including the differences from E While you can send transactions on Celo as you do on any Ethereum or OP-Stack chain, there are some key differences that are relevant if you want a deeper understanding: -- **[Fee Abstraction](/specs/fee-abstraction)**, which allows users to pay for transaction fees in ERC20 tokens instead of CELO and is covered in its own chapter +- **[Fee Abstraction](/operate/specification/fee-abstraction)**, which allows users to pay for transaction fees in ERC20 tokens instead of CELO and is covered in its own chapter - **[Zero L1 & Operator Fees](#zero-l1--operator-fees)**, meaning that the OP-Stack L1 & Operator fees are configured to always be zero, so that Celo chains don't incur any fees on top of the normal Ethereum transaction fees - The **[base fee floor](#base-fee-floor)**, which sets a lower limit for a block's base fee - The **[FeeHandler](#feehandler)** contract that decides what to do with the collected base fees @@ -18,7 +18,7 @@ OP-Stack supports charging transaction senders an [L1 data fee](https://docs.opt The L1 fees are configured to zero by setting the `gasPriceOracleBaseFeeScalar` and `gasPriceOracleBlobBaseFeeScalar` to zero, so that the L1 fee formula always returns zero. The `GasPriceOracle` will also correctly return zero as a result, so that you don't have to change your code if you are already relying on the `GasPriceOracle` due to supporting other OP-Stack chains. -The [Isthmus](/specs/upgrades/isthmus) upgrade also introduces an [Operator fee](https://specs.optimism.io/protocol/isthmus/exec-engine.html#operatorfees), which is a configurable cost designed to price chain-specific resources such as Alt-DA storage or ZK proving. Celo disables this charge as well by setting both `operatorFeeScalar` and `operatorFeeConstant` to `0`. +The [Isthmus](/operate/specification/upgrades/isthmus) upgrade also introduces an [Operator fee](https://specs.optimism.io/protocol/isthmus/exec-engine.html#operatorfees), which is a configurable cost designed to price chain-specific resources such as Alt-DA storage or ZK proving. Celo disables this charge as well by setting both `operatorFeeScalar` and `operatorFeeConstant` to `0`. If you are coming from Ethereum, not having L1 data and operator fees is what you are used to, and you will feel right at home on Celo. diff --git a/operate/specification/transaction-types.mdx b/operate/specification/transaction-types.mdx index 3739e29fa..c6f9a21a9 100644 --- a/operate/specification/transaction-types.mdx +++ b/operate/specification/transaction-types.mdx @@ -27,7 +27,7 @@ OP Stack has deposited transactions, which are L2 transactions derived from L1 a ## Celo-Specific Tx Types -The following tx type is an essential part of Celo's Fee Abstraction feature. For more details, read the CIP linked below, and the [Fee Abstraction section](/specs/fee-abstraction). +The following tx type is an essential part of Celo's Fee Abstraction feature. For more details, read the CIP linked below, and the [Fee Abstraction section](/operate/specification/fee-abstraction). - [CIP-64](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0064.md) (recommended), type 123 diff --git a/operate/specification/upgrades/ice-cream.mdx b/operate/specification/upgrades/ice-cream.mdx index 52043a988..9635c76a3 100644 --- a/operate/specification/upgrades/ice-cream.mdx +++ b/operate/specification/upgrades/ice-cream.mdx @@ -17,7 +17,7 @@ Most notably for Celo: ## Specifications -After the Celo Ice Cream update, the Celo sequencer will use EigenDA v2 for distributing transaction data. Therefore, any node following the network must upgrade it's EigenDA proxy to a version compatible with EigenDA v2. For more details see the [Upgrade notice](/infra-partners/notices/archive/eigenda-v2-upgrade). +After the Celo Ice Cream update, the Celo sequencer will use EigenDA v2 for distributing transaction data. Therefore, any node following the network must upgrade it's EigenDA proxy to a version compatible with EigenDA v2. For more details see the [Upgrade notice](/operate/notices/archive/eigenda-v2-upgrade). ## Upgrade Timelines diff --git a/operate/specification/upgrades/jovian.mdx b/operate/specification/upgrades/jovian.mdx index 8c5da19bc..a02b43549 100644 --- a/operate/specification/upgrades/jovian.mdx +++ b/operate/specification/upgrades/jovian.mdx @@ -24,7 +24,7 @@ The Celo Jovian upgrade brings in consensus and execution changes from Optimism' #### Transfer Precompile Address Warming -The [transfer precompile](/specs/token-duality) now warms the `from` and `to` addresses during execution. This aligns with standard EVM behavior where address accesses during value transfers are warmed, ensuring correct gas accounting for subsequent operations on the same address. +The [transfer precompile](/operate/specification/token-duality) now warms the `from` and `to` addresses during execution. This aligns with standard EVM behavior where address accesses during value transfers are warmed, ensuring correct gas accounting for subsequent operations on the same address. Related implementation: - [op-geth #433](https://github.com/celo-org/op-geth/pull/433) diff --git a/snippets/home.jsx b/snippets/home.jsx index 91687ea73..3f999c670 100644 --- a/snippets/home.jsx +++ b/snippets/home.jsx @@ -324,7 +324,7 @@ export const CeloDeveloperResources = ({ { label: "Integrate", desc: "Connect Celo to your application", - href: "/infra-partners/integration/index", + href: "/operate/operators/overview", icon: "img/homepage/icons/ContractKit_White.svg", }, ], diff --git a/tooling/libraries-sdks/cli/index.mdx b/tooling/libraries-sdks/cli/index.mdx index 7330f5ddd..c54567a2f 100644 --- a/tooling/libraries-sdks/cli/index.mdx +++ b/tooling/libraries-sdks/cli/index.mdx @@ -65,7 +65,7 @@ To see all available flags for a command, add the flag `--globalHelp` to the com Commands need to connect to a Celo node to execute most functionality. You have several options for node connectivity: -- [Running your own full node](/infra-partners/operators/run-node) +- [Running your own full node](/operate/operators/run-node) - [Third-party node providers](/tooling/nodes/overview) - [Forno](/tooling/nodes/forno) (the easiest way) diff --git a/tooling/libraries-sdks/contractkit/setup.mdx b/tooling/libraries-sdks/contractkit/setup.mdx index 19ed700fd..1ccafd438 100644 --- a/tooling/libraries-sdks/contractkit/setup.mdx +++ b/tooling/libraries-sdks/contractkit/setup.mdx @@ -62,7 +62,7 @@ Go to the [page about Forno](/tooling/nodes/forno) for details about different c ## Initialize the Kit with your own node -If you are hosting your own node (you can follow [this guide](/infra-partners/operators/run-node) to run one) you can connect our ContractKit to it. +If you are hosting your own node (you can follow [this guide](/operate/operators/run-node) to run one) you can connect our ContractKit to it. ```js import Web3 from "web3"; diff --git a/tooling/nodes/overview.mdx b/tooling/nodes/overview.mdx index c279fe530..9ea292a80 100644 --- a/tooling/nodes/overview.mdx +++ b/tooling/nodes/overview.mdx @@ -12,7 +12,7 @@ Connect to nodes and services in the Celo Ecosystem. ## Run a Node -Running your own Celo node gives you direct access to the blockchain without relying on third-party services. This provides enhanced privacy, reliability, and control over your interactions with the Celo network. Follow [this guide](/infra-partners/operators/run-node) to set up and run your own RPC endpoint, which includes detailed instructions for configuration, deployment, and maintenance of your Celo L2 node infrastructure. +Running your own Celo node gives you direct access to the blockchain without relying on third-party services. This provides enhanced privacy, reliability, and control over your interactions with the Celo network. Follow [this guide](/operate/operators/run-node) to set up and run your own RPC endpoint, which includes detailed instructions for configuration, deployment, and maintenance of your Celo L2 node infrastructure. ## Use a Community RPC Node diff --git a/tooling/oracles/run.mdx b/tooling/oracles/run.mdx index 83ebf0415..4f93cf4bd 100644 --- a/tooling/oracles/run.mdx +++ b/tooling/oracles/run.mdx @@ -15,7 +15,7 @@ A [reference implementation](https://github.com/celo-org/celo-oracle) of such a ## Requirements - One VM dedicated for each oracle is recommended, but it is acceptable that they run multiple instances in the case they are for different stables. -- A dedicated full node running in its own VM. Minimal hardware requirements and instructions on how to run a full node can be found [here](/infra-partners/operators/run-node). +- A dedicated full node running in its own VM. Minimal hardware requirements and instructions on how to run a full node can be found [here](/operate/operators/run-node). - The private key of an address on Celo, which can be stored on a private key file, on a Hardware Security Module (HMS) or hosted in the full nodes itself. More information about each can be found below. It is not strictly required but it is recommended to have the [Celo CLI](/cli#what-is-the-celo-cli) available at least in your local environment, and ideally in each VM. It could be especially useful to respond to on-call. diff --git a/tooling/overview/migrate/from-ethereum.mdx b/tooling/overview/migrate/from-ethereum.mdx index faf96c0dc..f4550365e 100644 --- a/tooling/overview/migrate/from-ethereum.mdx +++ b/tooling/overview/migrate/from-ethereum.mdx @@ -103,7 +103,7 @@ Celo includes all of the precompiled contracts in Ethereum, but also adds additi ### Core Contract Calls -The blockchain client makes some core contract calls at the end of a block, outside of transactions. Many are done on epoch blocks ([epoch rewards](/home/protocol/epoch-rewards/index), [validator elections](/home/protocol/staking/validator-elections), etc.), but not all. For example, the [gas price minimum](/specs/transaction-fees) update can happen on any block. +The blockchain client makes some core contract calls at the end of a block, outside of transactions. Many are done on epoch blocks ([epoch rewards](/home/protocol/epoch-rewards/index), [validator elections](/home/protocol/staking/validator-elections), etc.), but not all. For example, the [gas price minimum](/operate/specification/transaction-fees) update can happen on any block. Logs created by these contract changes are included in a single additional receipt in that block, which references the block hash as its transaction hash, even though there is no transaction with this hash. If no logs were created by such calls in that block, no receipt is added. ### Node management APIs diff --git a/tooling/testnets/celo-sepolia/index.mdx b/tooling/testnets/celo-sepolia/index.mdx index b00015c43..06870f017 100644 --- a/tooling/testnets/celo-sepolia/index.mdx +++ b/tooling/testnets/celo-sepolia/index.mdx @@ -25,7 +25,7 @@ The full network information is available [in the network overview](/build-on-ce **New Celo Sepolia Testnet Now Live!** Try Celo's new developer testnet on Ethereum Sepolia. -[Learn more →](/infra-partners/notices/archive/celo-sepolia-launch) +[Learn more →](/operate/notices/archive/celo-sepolia-launch) @@ -51,4 +51,4 @@ For developers currently using Alfajores, consider the following when migrating ## Network Configuration -For detailed network configuration including RPC endpoints, contract addresses, and P2P peer information, see the [Network Config & Assets](/infra-partners/operators/network-config#celo-sepolia) page. \ No newline at end of file +For detailed network configuration including RPC endpoints, contract addresses, and P2P peer information, see the [Network Config & Assets](/operate/operators/network-config#celo-sepolia) page. \ No newline at end of file From e9c9ab3758b32b8639b04a44f48850ba00493dab Mon Sep 17 00:00:00 2001 From: Paul Lange Date: Thu, 27 Aug 2026 17:49:43 +0200 Subject: [PATCH 3/3] docs: review fixes - rename stale Specs link text, point home Integrate card at nodes overview --- home/protocol/index.mdx | 4 ++-- snippets/home.jsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/home/protocol/index.mdx b/home/protocol/index.mdx index 3082a6243..e5e0c1c6d 100644 --- a/home/protocol/index.mdx +++ b/home/protocol/index.mdx @@ -14,7 +14,7 @@ Celo runs the [OP Stack](https://docs.optimism.io/), the modular rollup framewor - **Data availability.** Instead of posting transaction data to Ethereum as blobs, Celo posts it to [EigenDA](/operate/specification/eigenda); only the data-availability commitments go to Ethereum. This is what keeps fees low and predictable at 1-second block cadence. - **Settlement.** State roots are proposed to Ethereum, where a fault-proof system with a challenge window secures withdrawals. Independent [challengers](/home/protocol/challengers) can dispute invalid state roots during that window, and a [Security Council](/home/protocol/security-council) holds the protocol's emergency keys. -The full specification of these mechanisms — transaction types, fee rules, finality, upgrade history — lives in the [Specs section](/operate/specification/index). +The full specification of these mechanisms — transaction types, fee rules, finality, upgrade history — lives in the [Specification section](/operate/specification/index). ## Paying for transactions @@ -46,7 +46,7 @@ Put together — sub-cent fees, 1-second blocks, gas in stablecoins, phone-numbe ## Related - [Celo's L2 architecture](/build-on-celo/cel2-architecture) - The OP Stack layout in detail -- [Specs](/operate/specification/index) - The normative protocol specification +- [Specification](/operate/specification/index) - The normative protocol specification - [Fee abstraction](/build-on-celo/fee-abstraction/overview) - Pay gas in stablecoins - [Governance](/home/protocol/governance/overview) - How the protocol changes - [Network overview](/build-on-celo/network-overview) - Chain IDs, RPCs, explorers diff --git a/snippets/home.jsx b/snippets/home.jsx index 3f999c670..5d3a3877d 100644 --- a/snippets/home.jsx +++ b/snippets/home.jsx @@ -324,7 +324,7 @@ export const CeloDeveloperResources = ({ { label: "Integrate", desc: "Connect Celo to your application", - href: "/operate/operators/overview", + href: "/tooling/nodes/overview", icon: "img/homepage/icons/ContractKit_White.svg", }, ],