From 1c091e02765021e75c4e754448c746e5661a3d1a Mon Sep 17 00:00:00 2001 From: Diane Gallois-Wong Date: Mon, 29 Sep 2025 17:14:31 +0200 Subject: [PATCH 1/6] Changelog/alpha: improve protocol parameters section --- docs/protocols/alpha.rst | 43 +++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 9320e3a4ad9b..a76606a1471c 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -106,13 +106,15 @@ Protocol parameters ------------------- 6s Block Time (MRs :gl:`!19045`, :gl:`!19473`) ----------------------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Block time have been reduced from 8 seconds to 6 seconds. That is, a -block can be produced with a delay of 6 seconds with respect to the -previous block, if both blocks have round 0. This change comes with -updating many related protocol parameters in order to match the -reduced block time. +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: .. list-table:: Changes to protocol parameters :widths: 50 25 25 @@ -143,9 +145,9 @@ reduced block time. - ``1386666`` - ``1040000`` -Smart rollup protocol parameters have been updated with regard to the -reduction of block time ensuring the same duration as today. For -example, the challenge window is two weeks. +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. .. list-table:: Changes to smart rollup protocol parameters :widths: 50 25 25 @@ -167,11 +169,22 @@ example, the challenge window is two weeks. - ``75600`` - ``100800`` -The ``smart_rollup_max_active_outbox_levels`` has not been updated, -and the max allowed period of withdrawal has been reduced in -consequence to ~10 days because the current storage implementation of -the executed outbox message in the Layer 1 does not allow to update it -safely. +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`` with + ``all_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 alpha. (MR :gl:`!19093`) Bug Fixes @@ -197,5 +210,3 @@ Internal - Remove obsolete internal field related to Adaptive Issuance activation. (MR :gl:`!15789`) -- Added internal field related to All Bakers Attest All Blocks - activation. (MR :gl:`!19093`) -- GitLab From dee0708919060eb1bac7261f15af85e389a8c7fa Mon Sep 17 00:00:00 2001 From: Diane Gallois-Wong Date: Tue, 30 Sep 2025 17:53:41 +0200 Subject: [PATCH 2/6] Changelog/alpha: add some minor MRs --- docs/protocols/alpha.rst | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index a76606a1471c..b85b9ceb63af 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -30,8 +30,8 @@ Michelson --------- - A new instruction named ``INDEX_ADDRESS`` has been added, it - provides a unique identifier of type ``nat`` for values - of type ``address``, stored in the context. (MR :gl:`!18866`) + provides a unique identifier of type ``nat`` for values of type + ``address``, stored in the context. (MRs :gl:`!18866`, :gl:`!18943`) - A new instruction named ``GET_ADDRESS_INDEX`` has been added, and returns the unique identifier of type ``nat option`` for values of type ``address``, if @@ -202,11 +202,15 @@ Internal -------- - When activating this protocol directly from Genesis (so only in - tests and on some test networks), baking rights of bootstrap - accounts for the first few cycles are now computed with Adaptive - Issuance enabled, meaning that delegated tez are already weighted - less than staked tez. (MR :gl:`!16945`) + tests and on some test networks): -- Remove obsolete internal field related to Adaptive Issuance - activation. (MR :gl:`!15789`) + + Baking rights of bootstrap accounts for the first few cycles are + now computed with Adaptive Issuance enabled, meaning that + delegated tez are already weighted less than staked tez. (MR + :gl:`!16945`) + + Fixed registration of bootstrap accounts with an initial consensus + key. (MR :gl:`!19314`) + +- Removed dead code related to Adaptive Issuance activation, EMA, and + per-block vote. (MRs :gl:`!15789`, :gl:`!19215`) -- GitLab From bc5f6c1b3d0cc15f9080cbe1c4130e304511ced9 Mon Sep 17 00:00:00 2001 From: Diane Gallois-Wong Date: Mon, 13 Oct 2025 14:01:18 +0200 Subject: [PATCH 3/6] Changelog/alpha: environment is unchanged --- docs/protocols/alpha.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index b85b9ceb63af..5317cf808e98 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -14,6 +14,8 @@ branch of Octez and the full documentation in :doc:`this page <../alpha/index>`. Environment Version ------------------- +Protocol alpha uses the same environment version V15 as protocol +Seoul. Smart Rollups -- GitLab From e72bd7a29779e236486286c347b22ba18b033396 Mon Sep 17 00:00:00 2001 From: Diane Gallois-Wong Date: Tue, 30 Sep 2025 18:11:28 +0200 Subject: [PATCH 4/6] Changelog/alpha: homogenization --- docs/protocols/alpha.rst | 91 ++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 40 deletions(-) diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 5317cf808e98..43899d93b049 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -21,7 +21,6 @@ Seoul. Smart Rollups ------------- - Data Availability Layer ----------------------- @@ -31,14 +30,15 @@ Adaptive Issuance Michelson --------- -- A new instruction named ``INDEX_ADDRESS`` has been added, it - provides a unique identifier of type ``nat`` for values of type - ``address``, stored in the context. (MRs :gl:`!18866`, :gl:`!18943`) +- Added a new instruction ``INDEX_ADDRESS``. It provides a unique + identifier of type ``nat`` for values of type ``address``, stored in + the context. (MRs :gl:`!18866`, :gl:`!18943`) + +- Added a new instruction ``GET_ADDRESS_INDEX``. It returns the unique + identifier of type ``nat option`` for values of type ``address``, if + the address has already been indexed through ``INDEX_ADDRESS``; it + returns ``None`` otherwise. (MR :gl:`!18866`) -- A new instruction named ``GET_ADDRESS_INDEX`` has been added, and returns the - unique identifier of type ``nat option`` for values of type ``address``, if - the address has already been indexed through ``INDEX_ADDRESS``. Returns - ``None`` otherwise. (MR :gl:`!18866`) Gas improvements ---------------- @@ -46,49 +46,59 @@ Gas improvements Breaking Changes ---------------- -- Updated ``GET - /chains//blocks//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: the ``level`` itself, the ``consensus_threshold`` required for the current - level, the ``consensus_committee`` of the current level, and ``delegates`` 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 to ``rounds``, ``consensus_key``, and ``companion_key`` (optional). - Also include new fields for delegates, ``attesting_power``, with their attesting power - for the level, and ``attestation_slot``, their slot for the given level. - (MR :gl:`!18931`, :gl:`!18959`, :gl:`!18984`) - -- Updated ``GET /chains//blocks//context/issuance/expected_issuance``, - changing ``baking_reward_bonus_per_slot`` with ``baking_reward_bonus_per_block``, and - ``attesting_reward_per_slot`` with ``attesting_reward_per_block``. (MR :gl:`!18959`) +- Updated RPC ``GET + /chains//blocks//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: the ``level`` itself, the ``consensus_threshold`` + required for the current level, the ``consensus_committee`` of the + current level, and ``delegates`` 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 to ``rounds``, ``consensus_key``, and + ``companion_key`` (optional). Also include new fields for + delegates, ``attesting_power``, with their attesting power for the + level, and ``attestation_slot``, their slot for the given level. + (MRs :gl:`!18931`, :gl:`!18959`, :gl:`!18984`) + +- Updated RPC ``GET + /chains//blocks//context/issuance/expected_issuance``. + Output field ``baking_reward_bonus_per_slot`` has been replaced with + ``baking_reward_bonus_per_block``, and ``attesting_reward_per_slot`` + with ``attesting_reward_per_block``. Their respective values are + consequently 7000 times as high as before (since there are 7000 + slots per block). (MR :gl:`!18959`) RPC Changes ----------- -- Added ``GET /chains//blocks//helpers/stake_info``, - which returns the staking power distribution for all the active delegates +- Added a new RPC ``GET + /chains//blocks//helpers/stake_info``. It + returns the baking power distribution for all the active delegates at the current cycle. (MR :gl:`!18019`) -- Added ``GET - /chains//blocks//context/destination//index`` - which returns the index of the given destination (e.g. tz1, Smart Rollup - addresses, etc.) or ``null`` if the destination has not been indexed by - the opcode ``INDEX_ADDRESS`` yet. (MR :gl:`!18944`) -- Added ``GET - /chains//blocks//helpers/tz4_staker_number_ratio?cycle=`` - which returns the portion of active delegates that sign with a BLS key. + +- Added a new RPC ``GET + /chains//blocks//helpers/tz4_staker_number_ratio?cycle=``. + It returns the portion of active delegates that sign with a BLS key. The ``cycle`` argument, if omitted, defaults to the current cycle. (MR :gl:`!19093`) +- Added a new RPC ``GET + /chains//blocks//context/destination//index``. + It returns the index of the given destination (e.g. tz1, Smart + Rollup addresses, etc.), or ``null`` if the destination has not been + indexed by the opcode ``INDEX_ADDRESS`` yet. (MR :gl:`!18944`) + Blocks and block receipts ------------------------- - Removed obsolete field ``adaptive_issuance_vote`` from the block header, and fields ``adaptive_issuance_vote_ema`` and - ``adaptive_issuance_activation_cycle`` from the block metadata. The - adaptive issuance activation cycle (which is 748 on mainnet) can - still be queried via the RPC ``GET + ``adaptive_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 RPC ``GET /chains//blocks//context/adaptive_issuance_launch_cycle``. (MR :gl:`!19215`) @@ -96,14 +106,14 @@ Blocks and block receipts Operation receipts ------------------ -- Added ``address_registry_diff`` field in ``metadata`` for newly indexed - addresses from the opcode ``INDEX_ADDRESS`` in the operation. (MR - :gl:`!18870`) +- Added a new field ``address_registry_diff`` to the operation + metadata. It contains the addresses that have been newly indexed + through the opcode ``INDEX_ADDRESS``. (MR :gl:`!18870`) + Errors ------ - Protocol parameters ------------------- @@ -197,6 +207,7 @@ Bug Fixes now properly accounted for, increasing by at most 2 units of gas per function call. (MR :gl:`!19134`) + Minor Changes ------------- -- GitLab From aa4eef2fc578434519815ef2a7af6fd88591bceb Mon Sep 17 00:00:00 2001 From: Diane Gallois-Wong Date: Mon, 13 Oct 2025 13:50:46 +0200 Subject: [PATCH 5/6] Changelog/alpha: remove Breaking Changes section but highlight each breaking change in its own section --- docs/protocols/alpha.rst | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 43899d93b049..7d1e2b2fa8c1 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -43,10 +43,10 @@ Michelson Gas improvements ---------------- -Breaking Changes ----------------- +RPC Changes +----------- -- Updated RPC ``GET +- **Breaking change** Updated RPC ``GET /chains//blocks//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 @@ -61,7 +61,7 @@ Breaking Changes level, and ``attestation_slot``, their slot for the given level. (MRs :gl:`!18931`, :gl:`!18959`, :gl:`!18984`) -- Updated RPC ``GET +- **Breaking change** Updated RPC ``GET /chains//blocks//context/issuance/expected_issuance``. Output field ``baking_reward_bonus_per_slot`` has been replaced with ``baking_reward_bonus_per_block``, and ``attesting_reward_per_slot`` @@ -69,10 +69,6 @@ Breaking Changes consequently 7000 times as high as before (since there are 7000 slots per block). (MR :gl:`!18959`) - -RPC Changes ------------ - - Added a new RPC ``GET /chains//blocks//helpers/stake_info``. It returns the baking power distribution for all the active delegates @@ -94,8 +90,9 @@ RPC Changes Blocks and block receipts ------------------------- -- Removed obsolete field ``adaptive_issuance_vote`` from the block - header, and fields ``adaptive_issuance_vote_ema`` and +- **Breaking change** Removed obsolete field + ``adaptive_issuance_vote`` from the block header, and fields + ``adaptive_issuance_vote_ema`` and ``adaptive_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 RPC ``GET @@ -120,10 +117,10 @@ Protocol parameters 6s Block Time (MRs :gl:`!19045`, :gl:`!19473`) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -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. +**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: @@ -202,10 +199,10 @@ Feature flags Bug Fixes --------- -- 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 :gl:`!19134`) +- **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 :gl:`!19134`) Minor Changes -- GitLab From 6ff58324335e33fbe78c07800d29d3434e441410 Mon Sep 17 00:00:00 2001 From: Diane Gallois-Wong Date: Mon, 13 Oct 2025 16:34:11 +0200 Subject: [PATCH 6/6] Doc/breaking_changes: add proto alpha breaking changes --- docs/introduction/breaking_changes.rst | 76 ++++++++++++++++++++++++++ docs/protocols/alpha.rst | 2 + 2 files changed, 78 insertions(+) diff --git a/docs/introduction/breaking_changes.rst b/docs/introduction/breaking_changes.rst index d9f1e4e11d99..c60ef4705501 100644 --- a/docs/introduction/breaking_changes.rst +++ b/docs/introduction/breaking_changes.rst @@ -14,6 +14,82 @@ that may be breaking. In the particular case of RPC changes, you may consult complementary information on :ref:`RPC versioning `, covering how new versions are introduced, the deprecation policy, and a concrete calendar of RPCs planned to be removed. + + +Protocol alpha +-------------- + +:doc:`Full Protocol alpha Changelog<../protocols/alpha>` + + +6s Block Time +~~~~~~~~~~~~~ + +Block time has been reduced from 8 seconds to 6 seconds on +mainnet. 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. + +Multiple protocol and smart rollup parameters have been updated in +consequence, to ensure that their duration in terms of +minutes/hours/weeks remains the same as in protocol Seoul. A full list +of affected parameters with their old and new values can be found +:ref:`here<6s_block_time_parameters_alpha>`. + +Unlike other parameters, the value +``smart_rollup_max_active_outbox_levels`` in term of blocks has not +been updated for technical reasons. This means that the actual +duration of the maximal allowed period of withdrawal has decreased +from ~14 days to ~10 days. + + +Breaking changes to RPCs +~~~~~~~~~~~~~~~~~~~~~~~~ + +- Updated RPC ``GET + /chains//blocks//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: the ``level`` itself, the ``consensus_threshold`` + required for the current level, the ``consensus_committee`` of the + current level, and ``delegates`` 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 to ``rounds``, ``consensus_key``, and + ``companion_key`` (optional). Also include new fields for + delegates, ``attesting_power``, with their attesting power for the + level, and ``attestation_slot``, their slot for the given level. + +- Updated RPC ``GET + /chains//blocks//context/issuance/expected_issuance``. + Output field ``baking_reward_bonus_per_slot`` has been replaced with + ``baking_reward_bonus_per_block``, and ``attesting_reward_per_slot`` + with ``attesting_reward_per_block``. Their respective values are + consequently 7000 times as high as before (since there are 7000 + slots per block). + + +Removed obsolete fields from the block header and block receipts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The obsolete field ``adaptive_issuance_vote`` has been removed from +the block header, and fields ``adaptive_issuance_vote_ema`` and +``adaptive_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 RPC ``GET +/chains//blocks//context/adaptive_issuance_launch_cycle``. + + +Very slight increase in gas cost when calling smart contracts +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Protocol alpha fixes a minor bug that caused some gas costs to be +omitted in cache functions. As a result, gas costs for smart contract +calls has increased by at most 2 units of gas each time the cache is +accessed. + + + .. _operation_encodings_s: Operation encoding changes in Seoul diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 7d1e2b2fa8c1..b9859e09e9ad 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -114,6 +114,8 @@ Errors Protocol parameters ------------------- +.. _6s_block_time_parameters_alpha: + 6s Block Time (MRs :gl:`!19045`, :gl:`!19473`) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- GitLab