Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPIC: Eden (v0.50) #16473

Closed
31 of 52 tasks
alexanderbez opened this issue Jun 8, 2023 · 0 comments
Closed
31 of 52 tasks

EPIC: Eden (v0.50) #16473

alexanderbez opened this issue Jun 8, 2023 · 0 comments
Assignees
Labels
T:Epic Epics

Comments

@alexanderbez
Copy link
Contributor

alexanderbez commented Jun 8, 2023

Summary

This issue is meant to outline all the necessary checks and QA items for the next Cosmos SDK release -- Eden (v.50).

Major Changes

  • ABCI++ 2.0 integration
    • VE + FinalizeBlock
    • Pointer arguments & return values (along with errors)
    • Removal of BeginBlock and EndBlock as first-class methods
  • SIGN_MODE_TEXTUAL
  • Expedited/Cancel proposals
  • Precommit and PrepareCheckState AppModule callbacks

QA Breakdown

Audit checklist

  • please copy to a markdown to follow while you walk through the code
  • 2 people should be assigned to each section
  • API audit
    • spec audit: check if the spec is complete.
    • Are Msg and Query methods and types well-named and organized?
    • Is everything well documented (inline godoc as well as /spec/ folder in module directory)
    • check the proto definition - make sure everything is in accordance to ADR-30 (at least 1 person, TODO assignee)
      • Check new fields and endpoints have the Since: cosmos-sdk 0.47 comment
  • Completeness audit, fully implemented with tests
    • Genesis import and export of all state
    • Query services
    • CLI methods
    • All necessary migration scripts are present (if this is an upgrade of existing module)
  • State machine audit
    • Read through MsgServer code and verify correctness upon visual inspection
    • Ensure all state machine code which could be confusing is properly commented
    • Make sure state machine logic matches Msg method documentation
    • Ensure that all state machine edge cases are covered with tests and that test coverage is sufficient (at least 90% coverage on module code)
    • Assess potential threats for each method including spam attacks and ensure that threats have been addressed sufficiently. This should be done by writing up threat assessment for each method. Specifically we should be paying attention to:
      • algorithmic complexity and places this could be exploited (ex. nested for loops)
      • charging gas complex computation (ex. for loops)
      • storage is safe (we don't pollute the state).
    • Assess potential risks of any new third party dependencies and decide whether a dependency audit is needed
    • Check correctness of simulation implementation if any
  • Audit Changelog against commit log, ensuring all breaking changes, bug fixes, and improvements are properly documented.

If any changes are needed, please make them against main and backport them to release/v0.50.x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T:Epic Epics
Projects
None yet
Development

No branches or pull requests

3 participants