Protocol Rio#
This page lists the changes brought by protocol Rio with respect to Quebec (see Protocol changes). 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.
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_issuancehas a new field"dal_attesting_reward_per_shard"(MR !15614)A new RPC
/chains/main/blocks/head/context/delegates/<pkh>/dal_participationsimilar to Tenderbake’s/participationRPC 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_WEIGHTwas added. FieldsREWARDS_RATIO,MINIMAL_PARTICIPATION_RATIO,TRAPS_FRACTIONwere 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
proofparameter to theUpdate_consensus_keyoperation. This parameter is unused in the Rio protocol; it will be needed to update to a BLS consensus key when theallow_tz4_delegate_enablefeature flag is enabled in a future protocol. (MR !15670)
Errors#
Protocol parameters#
Renamed
consensus_thresholdtoconsensus_threshold_size. (MR !15979)Replaced the
max_slashing_period = 2protocol constant with two constantsdenunciation_period = 1andslashing_delay = 1. The behavior of denunciations and slashing is unaffected by this change. Indeed,denunciation_periodrepresents how many cycles after the misbehavior cycles still accept denunciations, whereasmax_slashing_periodwas the total number of cycles accepting denunciation including the misbehavior cycle, so the denunciation window remains the same. The slashing for a misbehavior from cyclenstill happens at the end of cyclen + max_slashing_period - 1 = n + slashing_delay. (MR !15990)Reduced the
cache_stake_distribution_cyclesandcache_sampler_state_cyclesprotocol constants from 8 cycles to 5 cycles, in order to reduce memory consumption. Onlyconsensus_rights_delay + slashing_delay + 2 = 2 + 1 + 2 = 5cycles are needed, but these constants were not updated whenconsensus_rights_delaywas 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_delayparametric 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_thresholdfrom 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_attestationto 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_enableto 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 tonullin 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)