Changelog
We provide several changelogs:
- Releases: a list of all notable releases. Some releases only apply to one network.
- Testnet Changelog: only changes made to
testnet
- Testnet-2 Changelog: only changes made to
testnet-2
How changes happen in Monad
Revisions are behavioral changes to the protocol (as contrasted with efficiency improvements to the client, which don't impact correctness). Revisions are referred to in other blockchains as hard forks.
Monad tracks revisions with a counter. The client code typically activates revisions at a future timestamp so that validators can come to agreement about whether to accept the revision and upgrade ahead of time. When the future timestamp is hit, a supermajority of the validators have already upgraded, and they update their behavior in sync, allowing the chain to continue without any pauses.
There are multiple networks (owing to the existence of several test networks). Each network has a different schedule for when each Revision is adopted. These schedules are tracked in ChainConfigs.
The node software is under active development, resulting in occasional releases. Releases are rolled out to different networks at different schedules, and not all releases apply to all networks.
Revisions
Monad revisions are major behavioral changes to the protocol, as defined in revision.h
Revision | Notes |
---|---|
MONAD_FIVE | Opcode pricing and refunds implemented |
MONAD_FOUR | Staking, Reserve Balance, EIP-7702, and dynamic base fee implemented |
MONAD_THREE | MonadBFT implemented |
MONAD_TWO | Max contract size (24.5kb -> 128 kb) |
MONAD_ONE | Block time (1s -> 500ms), block gas limit (300M -> 150M), transactions charged by gas limit |
ChainConfigs
Each ChainConfig describes one network, including its history of upgrading to different Revisions.
The ChainConfigs are defined in
monad-chain-config/src/lib.rs
.
ChainConfig | Notes |
---|---|
mainnet | Chain id 143 |
testnet | Chain id 10143; see changelog |
testnet-2 | Chain id 30143; see changelog |
devnet | Chain id 20143 |