Protocol Rio#
This page lists the changes brought by protocol Rio with respect to Quebec (see Protocol naming). For the list of changes brought by Quebec with respect to Paris, see Protocol Quebec.
For a higher-level overview of the most salient new features see the announcement blog.
The code can be found in directory src/proto_022_PsRiotum of the master
branch of Octez and the full documentation in this page.
Environment Version#
This protocol requires a different protocol environment version than Quebec. It requires protocol environment V14, compared to V13 for Quebec.
Smart Rollups#
Data Availability Layer#
The DAL incentives feature flag was turned on. (MR !15614)
Change The output of the RPC
context/issuance/expected_issuance
has a new field"dal_attesting_reward_per_shard"
(MR !15614)A new RPC
/chains/main/blocks/head/context/delegates/<pkh>/dal_participation
similar to Tenderbake’s/participation
RPC to track bakers’ DAL activity (MR !16168)Change The RPC
/chains/main/blocks/head/context/delegates/<pkh>
’s result now contains a new field"dal_participation"
providing DAL participation information when the DAL incentives flag is set. This introduces a breaking change for applications using the binary encoding format. (MR !16430)A new anonymous operation “DAL entrapment evidence” was added. Bakers that attest trapped DAL slots lose their DAL rewards. (MRs !15677, !15832, !15836, !16253, !16224, !16322)
Protocol parameter
DAL_REWARDS_WEIGHT
was added. FieldsREWARDS_RATIO
,MINIMAL_PARTICIPATION_RATIO
,TRAPS_FRACTION
were added to the protocol parameterDAL_PARAMETRIC
. (MRs !15503, !15832)DAL rewards are distributed at the end of a cycle for bakers who meet the minimal participation ratio and are not denounced for attesting traps in the current cycle. (MRs !15559, !16407, !16408)
Adaptive Issuance#
Gas improvements#
Fixed the gas cost for transfers to user accounts. This results in an increase of around 2000 gas units per such transfer. (MR !15993)
RPC Changes#
Added RPC
GET /chains/<chain_id>/blocks/<block_id>/helpers/consecutive_round_zero
, which returns the number of blocks consecutively baked at round zero. (MR !15945)
Operations#
Added an optional
proof
parameter to theUpdate_consensus_key
operation. This parameter is unused in the Rio protocol; it will be needed to update to a BLS consensus key when theallow_tz4_delegate_enable
feature flag is enabled in a future protocol. (MR !15670)
Errors#
Protocol parameters#
Renamed
consensus_threshold
toconsensus_threshold_size
. (MR !15979)Replaced the
max_slashing_period = 2
protocol constant with two constantsdenunciation_period = 1
andslashing_delay = 1
. The behavior of denunciations and slashing is unaffected by this change. Indeed,denunciation_period
represents how many cycles after the misbehavior cycles still accept denunciations, whereasmax_slashing_period
was the total number of cycles accepting denunciation including the misbehavior cycle, so the denunciation window remains the same. The slashing for a misbehavior from cyclen
still happens at the end of cyclen + max_slashing_period - 1 = n + slashing_delay
. (MR !15990)Reduced the
cache_stake_distribution_cycles
andcache_sampler_state_cycles
protocol constants from 8 cycles to 5 cycles, in order to reduce memory consumption. Onlyconsensus_rights_delay + slashing_delay + 2 = 2 + 1 + 2 = 5
cycles are needed, but these constants were not updated whenconsensus_rights_delay
was lowered from 5 to 2 in the Paris protocol. (MR !14396)Removed obsolete field
percentage_of_frozen_deposits_slashed_per_double_attestation
, which is no longer used since the activation of Adaptive Slashing in the Paris protocol. (MR !15223)Exposed derived constants
issuance_modification_delay
,consensus_key_activation_delay
, andunstake_finalization_delay
(which are automatically computed from theconsensus_rights_delay
parametric constant): they can now be observed by calling the RPCGET /chains/<chain_id>/blocks/<block_id>/context/constants
. (MR !16296)Changed the type of the protocol constant
max_slashing_threshold
from an integer (number of slots) to a ratio (portion of the committee). This does not affect slashing semantics. (MR !15765)
Feature flags#
Added a feature flag
aggregate_attestation
to enable the aggregation of block attestation lists into a single aggregate operation. (MR !15283) (This feature is not active yet in the Rio protocol.)Added a feature flag
allow_tz4_delegate_enable
to allow tz4 (BLS) addresses as delegates and/or as consensus keys. (MRs !15311, !15302) (This feature is not active yet in the Rio protocol.)Added a feature-controlling parameter
all_bakers_attest_activation_level
. It is set tonull
in the Rio protocol, which means that the all-bakers-attest feature will not be active at all in this protocol. (MRs !15584, !15764, !16380)Removed obsolete feature flags
autostaking_enable
,ns_enable
,activation_vote_enable
, andforce_activation
, and related parameteradaptive_issuance.launch_ema_threshold
. (MRs !15215, !15223, !15211)