Protocol Quebec#
This page lists the changes brought by protocol Quebec with respect to Paris (see Protocol naming). For the list of changes brought by Paris with respect to Oxford, see Protocol Paris.
For a higher-level overview of the most salient new features see the Quebec announcement.
The code can be found in directory src/proto_021_PsQuebec of the master
branch of Octez.
Environment Version#
This protocol requires a different protocol environment version than Paris. It requires protocol environment V13, compared to V12 for Paris.
Removed the 4th version of the WASM PVM, added the 5th version of the WASM PVM. (MR !12999)
Smart Rollups#
Michelson values of type
contract _
are now allowed in messages exchanged between smart contracts and smart rollups. In particular, it is now possible for smart rollups to use typed callbacks in outbox messages. (MR !11130)Bumped WASM PVM to V5. (MR !12999)
Reworked constants migration to preserve the various period duration instead of indiscriminately imposing them (e.g., imposing 2 weeks for the challenge window or 15 minutes for the commitment period). (MR !13821)
Fixed the traversal logic of the commitments tree, by considering previous commitment periods when computing what should be the level of a commitment successor. (MR !13841)
Data Availability Layer#
No changes.
Adaptive Issuance#
Added the Adaptive Maximum system, that imposes a new bound on the issuance as a function of the staked ratio. (MRs !13519, !14635)
Changed the semantics of the min-delegated-in-current-cycle used to compute baking rights. It now only considers the minimum in between blocks. (MR !13945)
Changed the protocol constant value of
edge_of_staking_over_delegating
from 2 to 3. (MR !14555)Bumped the GLOBAL_LIMIT_OF_STAKING_OVER_BAKING protocol constant from 5 to 9. (MR !14905)
Gas improvements#
Updated a few gas parameters to be more accurate. (MR !13171)
Breaking Changes#
Reworked RPC
GET /chains/<chain_id>/blocks/<block_id>/context/delegates/<baker_pkh>
, which returns a lot of information about a given baker. Its fields now match all non-deprecateddelegates/<baker_pkh>/...
RPCs one-for-one. This change is breaking for both JSON and binary encodings. (MR !14209)
RPC Changes#
In the following paths,
../
is short for/chains/<chain_id>/blocks/<block_id>/context/delegates/<baker_pkh>/
. See Baking Power for more details on the renamed and new RPCs.Renamed RPC
GET ../current_frozen_deposits
toGET ../total_staked
. The old path is now deprecated. (MR !14176)Added RPC
GET ../total_delegated
, which returns the amount that counts as delegated to the baker for the purpose of computing its baking rights. This includes tez owned by all delegators including the baker itself, but excludes staked tez. (MR !14176)Deprecated RPC
GET ../staking_balance
. To get its value, you can call RPCsGET ../total_staked
andGET ../total_delegated
, and add their outputs together. (MR !14176)Renamed RPC
GET ../total_delegated_stake
toGET ../external_staked
. The old path is now deprecated. (MR !14187)Added RPC
GET ../external_delegated
, which returns the amount of non-staked tez owned by all delegators except for the baker itself. (MR !14187)Deprecated RPC
GET ../delegated_balance
. To get its value, you can call RPCsGET ../external_staked
andGET ../external_delegated
, and add their outputs together. (MR !14187)Deprecated RPC
GET ../frozen_deposits
. To get its value, you can call RPCsGET ../total_staked
on the last block of 3 cycles ago. (MR !14192)Deprecated RPC
GET ../frozen_deposits_limit
. The RPC has no effects since the activation of Adaptive Issuance and Staking during the Paris protocol. (MR !14192)Renamed RPC
GET ../current_baking_power
toGET ../baking_power
. The old path is now deprecated. (MR !14192)Renamed RPC
GET ../delegated_contracts
toGET ../delegators
. The old path is now deprecated. (MR !14192)Renamed RPC
GET ../full_balance
toGET ../own_full_balance
. The old path is now deprecated. (MR !14154)Added RPCs
GET ../own_staked
andGET ../own_delegated
. They are similar tototal_staked
andtotal_delegated
, except that they only consider tez owned by the baker itself. (MR !14244)Renamed RPC
GET ../unstaked_frozen_deposits
toGET ../total_unstaked_per_cycle
. The old path is now deprecated. (MR !14244)
In the following paths,
../
is short for/chains/<chain_id>/blocks/<block_id>/context/contracts/<contract_id>/
.Reworked RPC
GET /chains/<chain_id>/blocks/<block_id>/context/delegates/<baker_pkh>
; see Breaking Changes.
Errors#
The
validate.operation.inconsistent_sources
andvalidate.operation.inconsistent_counters
errors have been expanded with information on the problematic sources and counters. The error messages have been updated accordingly, but the error IDs remain unchanged. (MR !13138)
8s Blocks Time (MR !12716)#
Blocks time have been reduced from 10 seconds to 8 seconds. That is, a block can be produced with a delay of 8 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 blocks time. In particular, the following quantities are kept the same:
the minimal time period of a cycle (namely, 2 days, 20 hours, and 16 minutes),
the length of the nonce revelation period (namely, around 2 hours and 8 minutes)
the number of nonce commitments per cycle (namely, 128),
the maximum rewards per minute (namely 80 tez), and therefore roughly the same issuance,
the minimal “time to live” of an operation (namely, 1 hour),
the block gas limit per minute (namely, 10400000 gas),
the ratio between the liquidity baking subsidy and the maximum rewards per block (namely, 1/16).
Parameter (unit) |
Old (Paris) value |
New value |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Internal#
balance_update_encoding_with_legacy_attestation_name
has been removed. (MR !13461)Encoding that supports
endorsement
kind in apply_result JSON has been removed. (MR !13974)Encoding that supports
endorsement
kind in operation JSON has been removed. (MR !13976)Moved the RPC files
contract_services.ml*
anddelegate_services.ml*
fromlib_protocol
tolib_plugin
. (MR !14094)