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

Add fuzzer only invariants #2884

Closed
MonsieurNicolas opened this issue Jan 21, 2021 · 2 comments
Closed

Add fuzzer only invariants #2884

MonsieurNicolas opened this issue Jan 21, 2021 · 2 comments
Assignees
Projects

Comments

@MonsieurNicolas
Copy link
Contributor

MonsieurNicolas commented Jan 21, 2021

When fuzzing the transaction code, we detect:

  • crashes
  • aborts from the c++ runtime (extra checks)
  • protocol invariant failures
  • "internal errors" detected by the transaction subsystem

When fuzzing, we can add invariants (in a general sense, not necessarily "protocol invariants" that must obey certain rules) that take advantage of the fact that the ledger size is very small, so we can perform checks on the entire ledger and perform all those checks in memory.

Over time, we may find that subsets of those new invariants can be integrated into regular protocol invariants.

This will increase the number of "bad things" detected while fuzzing.

@MonsieurNicolas
Copy link
Contributor Author

List of things we should be looking into:

  • order book state (like crossed order book)
  • integrity checks spanning ledger entries - I don't remember if sponsorship and ledger subentries can be fully validated with our existing invariants

@MonsieurNicolas MonsieurNicolas added this to To do in v15.4.0 via automation Feb 15, 2021
@MonsieurNicolas MonsieurNicolas removed this from To do in v15.3.0 Feb 15, 2021
@MonsieurNicolas MonsieurNicolas moved this from To do to In progress in v15.4.0 Mar 17, 2021
@MonsieurNicolas MonsieurNicolas added this to To do in v17.0.0 via automation Mar 27, 2021
@MonsieurNicolas MonsieurNicolas removed this from In progress in v15.4.0 Mar 27, 2021
@MonsieurNicolas MonsieurNicolas moved this from To do to Done in v17.0.0 Mar 31, 2021
@jonjove
Copy link
Contributor

jonjove commented Mar 31, 2021

Resolved by #2944, #2959. Checks for sponsorship and subentries already existed.

@jonjove jonjove closed this as completed Mar 31, 2021
@MonsieurNicolas MonsieurNicolas added this to To do in v15.5.0 via automation Apr 6, 2021
@MonsieurNicolas MonsieurNicolas removed this from Done in v17.0.0 Apr 6, 2021
@MonsieurNicolas MonsieurNicolas moved this from To do to Done in v15.5.0 Apr 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

3 participants