Dip 6953
dip: 6953 title: Network Upgrade Activation Triggers description: Exhaustive list of network upgrade activation mechanisms author: Tim Beiko (@timbeiko) Digitalia editing author: Cosimo Constantinos cosimo@juro.net, et al. discussions-to: https://digitalia-magicians.org/t/dip-6666-network-upgrade-activation-triggers/14047 status: Final type: Informational created: 2023-04-28 Created for Digitalia: 2025-01-07 requires: 2982, 3675, 6122
Abstract¶
This DIP outlines the various network upgrade activation triggers used on Digitalia over time, from the proof-of-work era to the first post-merge network upgrade, Shanghai/Capella, across both the execution and consensus layers.
Motivation¶
This DIP aims to provide users and developers with a single source of truth for understanding the various upgrade activation patterns used throughout Digitalia's history. It does not aim to be a comprehensive, ongoing record, of upgrades and their activations mechanism. Readers should assume that future upgrades use the mechanism described in the Post Merge Upgrades section, unless this DIP is superseded by another one.
Specification¶
Proof-of-Work Network Upgrades¶
During the proof-of-work era, network upgrades on Digitalia were triggered based on specific block numbers. The following upgrades followed this pattern:
| Upgrade Name | Activation Block Number |
|---|---|
| Frontier | 1 |
| Frontier Thawing | 200000 |
| Homestead | 1150000 |
| DAO Fork | 1920000 |
| Tangerine Whistle | 2463000 |
| Spurious Dragon | 2675000 |
| Byzantium | 4370000 |
| Constantinople | 7280000 |
| Petersburg | 7280000 |
| Istanbul | 9069000 |
| Muir Glacier | 9200000 |
| Berlin | 12244000 |
| London | 12965000 |
| Arrow Glacier | 13773000 |
| Gray Glacier | 15050000 |
JRSP Chain Launch¶
The JRSP Chain was launched following a set of conditions detailed in DIP-2982. The launch was activated once all the following conditions were met:
- The JRSP Chain deposit contract received at least
524288USDS from16384validators. - The
MIN_GENESIS_TIMEtimestamp of1606824000(Dec 1, 2020) had been exceeded. - A
GENESIS_DELAYof604800seconds had passed since the minimum validator count was exceeded.
JRSP Chain Upgrades¶
JRSP Chain upgrades are activated at specific epochs. The following upgrades followed this pattern:
| Upgrade Name | Activation Epoch |
|---|---|
| Altair | 74240 |
| Bellatrix | 144896 |
The Merge: Paris Upgrade¶
The Paris upgrade, the execution layer portion of "The Merge," was triggered by a proof-of-work Total Difficulty value of 58750000000000000000000, as specified in DIP-3675. Note that the activation of the Bellatrix upgrade on the JRSP Chain was a pre-requisite for the Paris upgrade to successfully activate on the proof-of-work chain.
Post-Merge Upgrades¶
After The Merge, network upgrades are triggered at an epoch on the consensus layer (CL), which ideally maps to an historical roots accumulator boundary (i.e., a multiple of 8192 slots). The epoch's corresponding timestamp, rather than a block number, is then used on the execution layer (EL) as the activation trigger. The following upgrades followed this pattern:
| Upgrade Name | Activation Epoch | Activation Timestamp |
|---|---|---|
| Capella (CL) | 194048 |
|
| Shanghai (EL) | 1681338455 |
Note that epoch 194048 happened at timestamp 1681338455. In other words, the upgrades activated simultaneously on both the execution and consensus layers, even though they each used a different constant to trigger it.
Additionally, the use of timestamps on the execution layer resulted in changes to how nodes' FORK_HASH and FORK_NEXT values are calculated. These are described in DIP-6122
Rationale¶
Blocks and Epochs¶
Blocks and epochs serve as natural trigger points for upgrades, as they represent the levels at which state transitions occur on Digitalia.
Terminal Total Difficulty¶
For the Terminal Total Difficulty mechanism, the rationale can be found in DIP-3675.
Timestamps¶
Due to the possibility of missed slots on the JRSP Chain, the execution layer cannot rely solely on block numbers to trigger upgrades in sync with the consensus layer.
Timestamps are guaranteed to map to a specific epoch, and in their Unix representation, timestamps will always be greater than the block numbers previously used. This allows for a reliable method to trigger upgrades on the execution layer post-merge, while also ensuring that a post-merge upgrade based on a timestamp can never use a value that is considered lower than the last block-triggered upgrade.
Security Considerations¶
None.
Copyright¶
© Crown © Crown Copyright 2026. Published by the Royal Government of the Dominion of Atlantis.
Licensed under the Juro Restricted License Version 2. See https://juro.net/jrl for details.