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

x/feegrant Module Readiness Checklist #8983

Closed
20 of 24 tasks
clevinson opened this issue Mar 24, 2021 · 1 comment
Closed
20 of 24 tasks

x/feegrant Module Readiness Checklist #8983

clevinson opened this issue Mar 24, 2021 · 1 comment

Comments

@clevinson
Copy link
Contributor

clevinson commented Mar 24, 2021

x/fee_grant Module Readiness Checklist

This checklist is to be used for tracking the final internal audit of new Cosmos SDK modules prior to inclusion in a published release.

Prior to beta tag

Release Candidate Checklist

The following checklist should be gone through once the module has been fully implemented. This audit should be performed preferably on a alpha or beta release tag that includes the module.

The module should not be included in any Release Candidate tag until it has passed this checklist.

  • State machine audit (at least 2 people) (@blushi @aleem1314 @technicallyty) x/feegrant State machine audit #9029
    • Read through MsgServer code and verify correctness upon visual inspection @blushi @aleem1314
    • Ensure all state machine code which could be confusing is properly commented @blushi @aleem1314
    • Make sure state machine logic matches Msg method documentation @blushi @aleem1314
    • Ensure that all state machine edge cases are covered with tests and that test coverage is sufficient (at least 90% coverage on module code) @technicallyty @blushi
    • 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 @technicallyty @aleem1314
  • Check correctness of simulation implementation if any (@aleem1314)

Published Release Checklist

After the above checks have been audited and the module is included in a tagged Release Candidate, the following additional checklist should be undertaken for live testing, and potentially a 3rd party audit (if deemed necessary):

  • Testnet / devnet testing (2-3 people) (@blushi @aleem1314 @technicallyty )
    • All Msg methods have been tested especially in light of any potential threats identified
    • Genesis import and export has been tested
  • Nice to have (and needed in some cases if threats could be high): Official 3rd party audit
@clevinson clevinson added this to the v0.43 milestone Mar 24, 2021
@aaronc aaronc changed the title x/fee_grant Module Readiness Checklist x/feegrant Module Readiness Checklist Mar 24, 2021
@clevinson clevinson changed the title x/feegrant Module Readiness Checklist x/fee_grant Module Readiness Checklist Mar 24, 2021
@aaronc aaronc added the Type: QA Quality Assurance label Mar 24, 2021
@blushi blushi mentioned this issue Mar 30, 2021
3 tasks
@blushi blushi changed the title x/fee_grant Module Readiness Checklist x/feegrant Module Readiness Checklist Mar 30, 2021
@clevinson
Copy link
Contributor Author

One note from our Spring Review call today, we've decided that in particular the API Audit and Completeness Audit should be done first, and once completed, a beta release can be tagged.

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

No branches or pull requests

5 participants