massa icon indicating copy to clipboard operation
massa copied to clipboard

[Meta] Versioning follow up

Open sydhds opened this issue 1 year ago • 2 comments

A list of idea / proposals to add to the current WIP versioning work:

  • [x] Allow multiple versions to be deployed at the same time:
    • as BIP-0009 propose
  • [x] Support new component added after main net:
    • for now, we do not describe V0 components but what if we want to add new components (e.g. Denunciation after main net)?
    • Does this mean that we have to version MipComponent?
    • Need MipComponent deser compat with old version
      • Detect after bootstrap if not compatible - PR: https://github.com/massalabs/massa/pull/3918
  • [x] Optim MipStore with some caching to avoid querying it if it has not changed
    • Optim: avoid db writes for empty batches
      • https://github.com/massalabs/massa/pull/4169
    • Optim: Lightweight Advance when serializing MipStore
      • https://github.com/massalabs/massa/issues/4183 - https://github.com/massalabs/massa/pull/4213
  • [x] MipStoreRaw.update_with could return better error (easier to debug) - PR: https://github.com/massalabs/massa/pull/3906
  • [x] Versioning + network restart
    • PR 1: https://github.com/massalabs/massa/pull/3947
    • PR 2: https://github.com/massalabs/massa/pull/3978
    • PR 3: https://github.com/massalabs/massa/pull/3981
    • PR 4: https://github.com/massalabs/massa/pull/3992
  • [x] Versioning + massa client
    • Use grpc endpoint to ask for current version - and ask for version to announce/current at slot (in block header)
    • PR 1: https://github.com/massalabs/massa/pull/3957
    • PR 2: https://github.com/massalabs/massa/pull/3960
    • PR 3: https://github.com/massalabs/massa/pull/4011
  • [x] Versioning + keypair generation at node startup
    • Keypair generation is done after bootstrap so versioning and thus keypair factory can be used
  • [x] Versioning grpc API stabilisation
    • https://github.com/massalabs/massa/issues/4216
    • https://github.com/massalabs/massa/pull/4238
  • [ ] ~~Move addresses versioning byte so it comes before the identifier byte (requires serious changes in its serialization architecture)~~
  • [x] Delete from_bytes_without_version
    • https://github.com/massalabs/massa/pull/4226
  • [ ] ~~Remove the need for a Defined timestamp in MipState creation~~
  • [x] Improve doc
    • https://github.com/massalabs/massa/pull/4008
  • [x] Check for activation delay to be >= 1 cycle in MIP info?
    • https://github.com/massalabs/massa/pull/4214
  • [x] Test versioning + network restart
  • [ ] Misc Issues
    • https://github.com/massalabs/massa/issues/4184
    • https://github.com/massalabs/massa/issues/4196
      • https://github.com/massalabs/massa/pull/4226
    • https://github.com/massalabs/massa/issues/4182
    • https://github.com/massalabs/massa/issues/4089
    • https://github.com/massalabs/massa/issues/4212

== After mainet ==

  • [ ] Add more state for each MIP (Massa Improvement proposal) like Deprecated / Disabled
    • Could allow to disable some version (like insecure versions)
    • Not done in this follow up
  • [ ] Can we authenticate MipInfo or have a way for user to verify sig / auth them (so you know the source of the MipInfo)
    • Done by code signing
  • [ ] Add configurable threshold (per MipInfo) - for now it's hardcoded
    • ok but low prio

sydhds avatar Mar 02 '23 14:03 sydhds

@sydhds can you tick what has been and merged so that we know what needs to be done this month plz

AurelienFT avatar Jun 05 '23 09:06 AurelienFT

@sydhds can you tick what has been and merged so that we know what needs to be done this month plz

done :)

sydhds avatar Jun 06 '23 07:06 sydhds