Skip to content

alpha: introduce attestation encoding and version 2 of operation encoding

Context

This MR solves #5357 (closed) (alternative proposition of !8254 (closed)) and partially solves #5358 (closed).

This MR add encodings for attestation, preattestation, double_attestation_evidence and double_preattestation_evidence in JSON operations. Encodings that support old endorsement kinds are tagged as legacy but still set as default until attestation kinds becomes the default one.

This new encoding that supports attestation kinds can be used by octez-codec with the new versioned operation_v2 encoding.

Manually testing the MR

This MR adds tests for new operation_v2 and operation_v2.unsigned encoding. It also adds some cases such as preendorsement for operation encoding. To run these tests:

dune exec tezt/tests/main.exe -- encoding protocol operation_with_attestation -i

This MR could also be manually tested with:

  • Change the operation_data_encodingused in main.ml by removing _with_legacy_attestation_name
  • Compile
  • Launch a sandboxed node and client
  • Activate Alpha
  • Start a baker
  • Run octez-client rpc get /chains/main/mempool/pending_operations you will observe that endorsements appears with attestation kind in operation contents.

Checklist

  • n/a Document the interface of any function added or modified (see the coding guidelines)
  • n/a Document any change to the user interface, including configuration parameters (see node configuration)
  • Provide automatic testing (see the testing guide).
  • For new features and bug fixes, add an item in the appropriate changelog (docs/protocols/alpha.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by Albin Coquereau

Merge request reports

Loading