You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> 💡 For CDK fork ID9 chains **NOT attached to the AggLayer** (Isolated), can ignore section 4.
1
+
> 💡 For CDK fork ID9 chains **NOT attached to the AggLayer** (Isolated), they can ignore section 4.
2
2
3
3
> 💡 For CDK fork ID9 chains **attached to the AggLayer**, follow steps in sections 1 to 5. This is a coordinated effort between Polygon and the Implementation Provider.
4
4
@@ -50,7 +50,7 @@ The table below lists the CDK Fork ID 9 components and the new CDK FEP Fork ID 1
| CDK data availability |[v0.0.7](https://hub.docker.com/layers/0xpolygon/cdk-data-availability/0.0.7/images/sha256-17590789a831259d7a07d8a042ea87e381c5708dec3a7daef6f3f782f50b2c00?context=explore)| CDK data availability |[cdk-data-availability](https://github.com/0xPolygon/cdk-data-availability) use latest tag |
| Bridge service |[v0.4.2-cdk.1](https://hub.docker.com/layers/hermeznetwork/zkevm-bridge-service/v0.4.2-cdk.1/images/sha256-f22ad8c9ad058c7a97a3d38f53cac5b1053858916523b96211d33ae40a9b45f8?context=explore)| Bridge service |[zkevm-bridge-service](https://github.com/0xPolygonHermez/zkevm-bridge-service)|
@@ -62,8 +62,12 @@ The Implementation Provider must prepare in advance for the upgrade to ensure a
62
62
2. Map to the latest prover files which can be found here: [https://storage.googleapis.com/zkevm/zkproverc/v8.0.0-rc.9-fork.12.tgz](https://storage.googleapis.com/zkevm/zkproverc/v8.0.0-rc.9-fork.12.tgz)
63
63
3. Scale up the number of provers in advance. It is recommended that you at least double the number of provers up and running for the scheduled upgrade maintenance window.
64
64
- Ensure all (majority) of the network batches are verified before starting the upgrade process, otherwise there will be additional downtime as we wait for the network to be ready.
65
-
4. Run the CDK-Node aggregator component in sync-only mode in advance to populate its database.
66
-
5. Required Erigon pre-syncing:
65
+
4. Setting up your CDK Erigon node.
66
+
- Please see the [cdk-erigon readme](https://github.com/0xPolygonHermez/cdk-erigon/blob/v1.0.3/README.md) for information on Prereqs, configuration files and running cdk-erigon.
67
+
5. Required CDK-Node pre syncing.
68
+
- Run CDK-Node aggregator component in sync only mode in advance to populate its database.
69
+
- Run CDK-Node l1infotreesync component in advance to populate the sequence sender database.
70
+
7. Required Erigon pre-syncing:
67
71
- Generate data stream files from the current `cdk-validium-node` database.
@@ -155,7 +159,8 @@ go run ./zk/debug_tools/datastream-host \
155
159
156
160
3. Stop all services (node, prover/executor, bridge).
157
161
158
-
> 💡 For an **isolated chain not attached to the Agglayer**, the chain admin can perform operational step 4on their chain’s rollup manager contract. Polygon is not involved.
162
+
> 💡 Please note: For an isolated chain not attached to the Agglayer the chain admin can perform operational step 4on their chain’s rollupmanagercontract.
163
+
Polygon are not involved. Please check the [upgrade procedure for isolated networks](#contract-upgrade-procedure-for-isolated-networks).
159
164
160
165
**Please Note:** Wait for Polygon to send the L1 transaction (tx) and confirm it.
161
166
@@ -164,23 +169,31 @@ go run ./zk/debug_tools/datastream-host \
164
169
- Wait for the Tx to be finalized.
165
170
166
171
### Steps to Deploy CDK FEP Fork 12 Components
167
-
168
-
1. [With the network stopped, repeat Erigon sync to get it fully synced to the current state.](#5-operational-steps)
172
+
1. It is recommended to back up your DAC node by taking a snapshot of the DAC database.
173
+
-**Locate Your PostgreSQL Instance**:
174
+
- Identify the PostgreSQL host, port, database name (`dac_db`), and the username (`master_user`) configured for your DAC node. These values can typically be found in your environment's configuration or `.env` files.
175
+
- **Run the `pg_dump` Command**:
176
+
- Use the `pg_dump` command to create a backup of your DAC database. Replace the placeholders with your specific values:
- After running the command, ensure that the `dac.db.sql` file has been created and contains the database snapshot.
180
+
181
+
2. [With the network stopped, repeat Erigon sync to get it fully synced to the current state.](#5-operational-steps)
169
182
- This instance is ready to act as Sequencer and/or RPC. Clone the whole Erigon config/datadir as many times as instances are needed. Pick one to be the new Sequencer (by setting the environment variable **`CDK_ERIGON_SEQUENCER=1`**), and configure all other instances (permissionless RPCs) to point to the Sequencer:
4. Verify in the sequencer’s logs that new blocks are being generated with fork ID 12.
179
-
5. Start the Pool Manager (if used/needed).
180
-
6. Start CDK-Erigon RPCs (if used/needed).
181
-
7. Start the Bridge.
182
-
8. Start the CDK aggregator and Sequence Sender components.
183
-
9. Start the stateless Prover.
189
+
3. Start the stateless Executor.
190
+
4. Start the CDK-Erigon Sequencer.
191
+
5. Verify in the sequencer’s logs that new blocks are being generated with fork ID 12.
192
+
6. Start the Pool Manager (if used/needed).
193
+
7. Start CDK-Erigon RPCs (if used/needed).
194
+
8. Start the Bridge.
195
+
9. Start the CDK aggregator and Sequence Sender components.
196
+
10. Start the stateless Prover.
184
197
185
198
### Polygon Steps for CDK Chains Attached to the Agglayer
186
199
@@ -191,6 +204,8 @@ Polygon's DevOps team will be accountable for upgrading the Agglayer permissionl
191
204
1. Test batch lifecycle.
192
205
2. Test the bridge.
193
206
207
+
208
+
194
209
# Example Maintenance Communication to Network Partners
195
210
196
211
There is a planned maintenance window upgrade of the xxxx network on the following dates. This is to upgrade the xxx network from Fork ID9 to Fork ID12.
@@ -222,3 +237,83 @@ Update FROM node version [0.6.7+cdk.1](https://hub.docker.com/layers/0xpolygon/c
222
237
1. Prover/Executor
223
238
2. Synchronizer
224
239
3. RPC
240
+
241
+
242
+
243
+
244
+
# Contract Upgrade procedure for isolated networks
- [tool add new rollup type](https://github.com/0xPolygonHermez/zkevm-contracts/tree/main/tools/addRollupType)
251
+
252
+
> For fork.12 upgrades, it is need to upgrade PolygonZkEVMGlobalExitRootV2 and the PolygonRollupManager. Please refer to [the Upgrade Banana SC section](https://www.notion.so/CDK-chain-upgrade-procedure-from-Fork-ID9-to-Fork-ID12-11980500116a802ab22cec6f7eea6080?pvs=21) in order to do the SCs upgrade
253
+
>
254
+
255
+
## Verifier
256
+
257
+
- Go to the correct branch(or tag) in [zkevm-contracts](https://github.com/0xPolygonHermez/zkevm-contracts)
258
+
- [main](https://github.com/0xPolygonHermez/zkevm-contracts) for fork.10 & fork.11
259
+
- [develop](https://github.com/0xPolygonHermez/zkevm-contracts/tree/develop) for fork.12 (AKA Banana)
260
+
-Check out previous verifiers deployed in [contracts-info repository](https://github.com/0xPolygonHermez/contracts-info/tree/master/verifiers)
261
+
- If verifiers are not deployed:
262
+
- use the [following tool](https://github.com/0xPolygonHermez/zkevm-contracts/tree/main/tools/deployVerifier) to deploy them
263
+
264
+
## Add rollup type
265
+
266
+
-check-out which address has the ability to add new rollup types
267
+
- role is `_ADD_ROLLUP_TYPE_ROLE`
268
+
- [this tool](https://github.com/0xPolygonHermez/rollup-manager-cli) could be used to check which addresses has this role
269
+
- Two types of addresses could do the SC call: EOA or timelock (multisig)
270
+
- Next tooling takes that into account
271
+
- Timelock usually have an associated delay. In order to check it, you can check it directly on etherscan as it is a SC variable.
- use [this tool](https://github.com/0xPolygonHermez/zkevm-contracts/tree/main/tools/updateRollup) to call the SC function
292
+
293
+
# Upgrade Smart Contracts to Banana
294
+
295
+
- [script to upgrade from old version (fork.11) to Banana SC](https://github.com/0xPolygonHermez/zkevm-contracts/tree/v8.0.0-fork.12/upgrade/upgradeBanana)
296
+
- it upgrades the [PolygonZkEVMGlobalExitRootV2](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v8.0.0-fork.12/upgrade/upgradeBanana/upgradeBanana.ts#L104)
- remember to copy this file into thew folder mentioned above and then run the [upgradeBanana](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v8.0.0-fork.12/upgrade/upgradeBanana/upgradeBanana.ts) script
307
+
308
+
## Output script
309
+
310
+
- [Similar to this one](https://github.com/0xPolygonHermez/contracts-info/blob/master/mainnet/upgrade-banana/upgrade_output.json)
311
+
- Take the `scheduleData`, send a tx to `timelockAddress` with the proper EOA that has `proxyAdmin` rights
312
+
- wait `timelockDelay`
313
+
- Take the `executeData`, send a tx to `timelockAddress` with the proper EOA that has `proxyAdmin` rights
0 commit comments