Skip to content

Graypaper 0.8.0 Changes - #264

Merged
arjanz merged 22 commits into
mainfrom
gp-0.8.0
Oct 16, 2026
Merged

arjanz merged 22 commits into
mainfrom
gp-0.8.0

Conversation

@emielsebastiaan

@emielsebastiaan emielsebastiaan commented Jun 3, 2026 •

Copy link
Copy Markdown
Contributor

Gray Paper Changes: 0.8.0

https://github.com/gavofyork/graypaper/releases/tag/v0.8.0

General

  • Add back processed transfer count to service statistics (Graypaper: 502)
  • Support smaller validator sets (Graypaper: 514)
  • Restrict bless to manager service (Graypaper: 519)
  • Update authorizer identification (Graypaper: 522)
  • Keep full guarantees in availability assignments state (rho) (Graypaper: 494)
  • Propose change of extrinsic hash definition to allow checking for individual extrinsic preimages. (Graypaper: 524)
  • Expose lookup anchor posterior root and anchor slot in refinement context (Graypaper: 526)

Gas-related

Smaller changes

  • Safrole refinement (Graypaper: 496)
  • Constrain preimage length parameter to bloblength (< 2^32) in preimage-related host calls (Graypaper: 520)
  • Limit the number of parallel inner VMs in refine (Graypaper: 521)
  • Remove unused arguments from refine hostcalls (Graypaper: 528)
  • Replace undefined ticket-entries constant with equation ref (Graypaper: 527)
  • Introduce hard-limits on the size of dispute extrinsics, and remove culprits requirement (Graypaper: 525)

Fixes, Typos, Clarifications, Nits &c

GP 0.8 Deviations

  • grow_heap out-of-gas handling follows Graypaper: 533: when the remaining gas cannot cover the call cost the gas counter is drained to zero and the call exits out-of-gas.
  • grow_heap address-space limit rounds the stack reservation up to the 64 KiB zone size, as per GP Graypaper: 538.
  • The bless host call does not refuse a non-manager caller Graypaper: 519). The accumulate vectors bless_from_non_manager follow this deviation: the designator hands its role over via bless, where GP 0.8.0 answers HUH and keeps the designator. The upcoming Graypaper: 558 allows non-manager privilege holders to hand over their role via bless; both changes will be applied together.
  • The PVM gas cost model counts the destination register of cmov_iz, cmov_nz, cmov_iz_imm and cmov_nz_imm as a source register, as per Graypaper: 559. The accumulate vectors and the fuzzy and fuzzy_light block import traces follow this rule.
  • Program blobs are limited to 2^25 octets of code and 2^24 jump table entries, as per Graypaper: 559.

Quality Assurance

  • Passes Updated JDT Unit Tests
  • Passes Updated W3F Test Vectors
  • Passes available W3F Traces

Update GP_VERSION and APP_VERSION for GP-0.8 range
@emielsebastiaan emielsebastiaan changed the title Update GP_VERSION and APP_VERSION for GP-0.8 range Graypaper 0.8.0 Changes Jun 3, 2026
@emielsebastiaan emielsebastiaan added the enhancement New feature or request label Jun 3, 2026
@emielsebastiaan emielsebastiaan added this to the Milestone 1: Importer milestone Jun 3, 2026
matthijsb and others added 16 commits September 22, 2026 10:31
# Conflicts:
#	pyjamaz/settings.py
* Added BoundedVec codec type
* Codec changes for dynamic validator set size
* Updated RingContext calculation
* Fixed incomplete checked_validators data
* helper functions for  valid_validator_count and ticket_entries
* assurances belong to the prior set
* applied dynamic validator set
* add accumulate_transfer_count stats
* Dynamic validator set changes
* The proven judgment must contradict the established verdict
* Deprecated check_valid_culprits_count
* New DisputesErrorCode entries
Merged and integrated the new gas cost model into gp0.8.0
Updated & tested against the latest testvectors from https://github.com/davxy/jam-conformance/tree/v0.8.0
* Added slot to RecentBlock

Assurances STF:

* Modifications Assurance dataclass
* Apply dynamic validator sets
* Refactored header_lookup
* Added new GuaranteeErrorCode items
* Implemented missing 10.15
* Corrected 11.35 (recent_history -> header_lookup)
* Implemented 11.36
* test_reports.py now passing
* Adjusted guarantor_permute
* dynamic ticket_entries
* refactored apply pending service changes
* Apply #533 grow_heap pricing and exhaust remaining gas on OOG.
* Allow non-manager bless calls through explicit compatibility.
* Count conditional-move destinations as gas-model dependencies.
* Keep heap and bless compatibility scoped to GP 0.8.0.
* grow_heap out-of-gas handling follows GP [#533]
* grow_heap address-space limit rounds the stack reservation up to the 64 KiB zone size, as per GP [#538]
@arjanz
arjanz marked this pull request as ready for review October 12, 2026 19:01
* Added erasure_shards in create_from_work_package and work_result_computation
* Use validator pool post state in _timeslot_worker and get_author_index
* dynamic ticket entries in create_ticket_body and add_ticket

@emielsebastiaan emielsebastiaan left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor general comments

Comment thread pyjamaz/models/codec.py Outdated
Comment thread pyjamaz/pvm/interpreters/cpython/opcodes/none.py Outdated
@arjanz
arjanz merged commit 036f985 into main Oct 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants