espresso-sequencer icon indicating copy to clipboard operation
espresso-sequencer copied to clipboard

dynamic versioning

Open imabdulbasit opened this issue 6 months ago • 0 comments

This PR:

  • Adds both base and upgrade versions to the genesis.toml file and deserializes them from string format into the Version struct.
  • Initializes the base and upgrade versions in binaries from the genesis.toml file.
  • separates the API version from the protocol versions. The SequencerApiVersion is currently hardcoded as V0.1 for all APIs.
  • Renames the main function to run in binaries that require a protocol version, run() accepts a generic parameter V that implements the Versions trait. This allows matching and initializing versions from the genesis.toml file using the appropriate type. This can be replaced with a macro
  • adds message compat test for each version

Files to review: all files mostly but primary focus on genesis.toml config, SequencerVersions type and main functions in all binaries.

test: Run the demo native locally to ensure everything functions as expected.

imabdulbasit avatar Aug 20 '24 07:08 imabdulbasit