Protocol T024#
This page lists the changes brought by protocol T024 with respect to Seoul (see Protocol naming). For the list of changes brought by Seoul with respect to Rio, see Protocol Seoul.
For a higher-level overview of the most salient new features see the announcement blog.
The code can be found in directory src/proto_024_PsU87LFi of the master
branch of Octez and the full documentation in this page.
Environment Version#
Protocol t024 uses the same environment version V15 as protocol Seoul.
Smart Rollups#
Data Availability Layer#
Adaptive Issuance#
Michelson#
Added a new instruction
INDEX_ADDRESS
. It provides a unique identifier of typenat
for values of typeaddress
, stored in the context. (MRs !18866, !18943)Added a new instruction
GET_ADDRESS_INDEX
. It returns the unique identifier of typenat option
for values of typeaddress
, if the address has already been indexed throughINDEX_ADDRESS
; it returnsNone
otherwise. (MR !18866)
Gas improvements#
RPC Changes#
Breaking change Updated RPC
GET /chains/<chain_id>/blocks/<block_id>/helpers/validators
to group delegates by level. The returned list contains one element for each queried level (by default, only the current level), and contains four fields: thelevel
itself, theconsensus_threshold
required for the current level, theconsensus_committee
of the current level, anddelegates
which is the list of validators for that level. Each element of this last list contains the fields present in the previous version of this RPC:delegate
, “slots” which have been renamed torounds
,consensus_key
, andcompanion_key
(optional). Also include new fields for delegates,attesting_power
, with their attesting power for the level, andattestation_slot
, their slot for the given level. (MRs !18931, !18959, !18984)Breaking change Updated RPC
GET /chains/<chain_id>/blocks/<block_id>/context/issuance/expected_issuance
. Output fieldbaking_reward_bonus_per_slot
has been replaced withbaking_reward_bonus_per_block
, andattesting_reward_per_slot
withattesting_reward_per_block
. Their respective values are consequently 7000 times as high as before (since there are 7000 slots per block). (MR !18959)Added a new RPC
GET /chains/<chain_id>/blocks/<block_id>/helpers/stake_info
. It returns the baking power distribution for all the active delegates at the current cycle. (MR !18019)Added a new RPC
GET /chains/<chain_id>/blocks/<block_id>/helpers/tz4_staker_number_ratio?cycle=<cycle>
. It returns the portion of active delegates that sign with a BLS key. Thecycle
argument, if omitted, defaults to the current cycle. (MR !19093)Added a new RPC
GET /chains/<chain_id>/blocks/<block_id>/context/destination/<destination>/index
. It returns the index of the given destination (e.g. tz1, Smart Rollup addresses, etc.), ornull
if the destination has not been indexed by the opcodeINDEX_ADDRESS
yet. (MR !18944)
Blocks and block receipts#
Breaking change Removed obsolete field
adaptive_issuance_vote
from the block header, and fieldsadaptive_issuance_vote_ema
andadaptive_issuance_activation_cycle
from the block metadata. Note that the adaptive issuance activation cycle (which is 748 on mainnet) can still be queried via the RPCGET /chains/<chain>/blocks/<block>/context/adaptive_issuance_launch_cycle
. (MR !19215)
Operation receipts#
Added a new field
address_registry_diff
to the operation metadata. It contains the addresses that have been newly indexed through the opcodeINDEX_ADDRESS
. (MR !18870)
Errors#
Protocol parameters#
6s Block Time (MRs !19045, !19473)#
Breaking change Block time has been reduced from 8 seconds to 6 seconds on mainnet (on ghostnet, it remains unchanged at 4 seconds). That is, a block can be produced with a delay of 6 seconds with respect to the previous block, if the latter is at round 0.
This reduced block time comes with the updates of multiple related protocol parameters:
Parameter (unit) |
Old (seoul) value |
New value |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Smart rollup protocol parameters have also been updated accordingly, in order to preserve the same durations as in the previous protocol. For example, the challenge window is still two weeks.
Parameter (unit) |
Old (seoul) value |
New value |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Note that the smart_rollup_max_active_outbox_levels
has not been
updated, because the current storage implementation of the executed
outbox message in the Layer 1 does not allow for a safe update. As a
consequence, the maximal allowed period of withdrawal has been reduced
from ~14 days to ~10 days.
Feature flags#
Replaced the feature-controlling parameter
all_bakers_attest_activation_level
withall_bakers_attest_activation_threshold
. This causes all-bakers-attest to activate as soon as the ratio of bakers that use a tz4 consensus keys exceeds the specified threshold, set to 50% in protocol t024. (MR !19093)
Bug Fixes#
Breaking change Updated cache functions to include the context when needed. Previously backtracked gas costs for some cache calls are now properly accounted for, increasing by at most 2 units of gas per function call. (MR !19134)