Skip to content

Shell: coexisting old and new mempools

Context

Duplicate the mempool implementation in lib_shell:

  • The legacy_... files implement a legacy mempool which is compatible with Kathmandu and is therefore needed for Mainnet.
  • The non-legacy files will later be modified into a new mempool that relies on protocol features which only exist since Lima. Note that in this MR, the new mempool is still identical to the legacy mempool, but this will change in upcoming MRs.

In prevalidator.ml we choose which version of the mempool to initialize depending on the protocol version.

The test files in lib_shell/test are also duplicated, so that both versions of the mempool keep being tested. The Tezt tests usually run on all three protocols: Kathmandu, Lima, and alpha, which means that both versions of the mempool are tested. For this reason, we also update some tests which were restricted to alpha so that they are now run on all three protocols.

The legacy and regular versions of every duplicated file contain a FIXME linking to #4113 (closed).

Manually testing the MR

Checklist

  • 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).
  • [N/A] 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 Diane Gallois-Wong

Merge request reports