Skip to content

feat(prot): don't produce empty blocks [AC-1189]

Ethan Reesor requested to merge AC-1189-no-empty-blocks into develop

Closes AC-1189. Do not produce blocks when the network is quiescent. Specifically, when a subnet is finalizing block N (during begin block N+1), do not send an anchor if block N contained nothing besides a directory anchor. This breaks the loop of BVN anchor -> DN anchor -> BVN anchor -> etc.

I have verified that this prevents growth of the database. Tendermint still produces blocks, but they are empty and result in no changes to the database.

Review Checklist

If any item is not complete, the merge request is not ready to be reviewed and must be marked Draft:.

  • The merge request title is in the format <change type>(<change scope>): <short description> [<task id>]
    • For example, feat(cli): add QR code generation [AC-123]
    • For details, see CONTRIBUTING.md
  • The description includes Closes <jira task ID> (or rarely Updates <jira task ID>)
  • The change is fully validated by tests that are run during CI
    • In most cases this means a test in "validate.sh"
    • In some cases, a Go test may be acceptable
    • Validation is not applicable to things like documentation updates
    • Purely UI/UX changes can be manually validated, such as changes to human-readable output
    • For all other changes, automated validation tests are an absolute requirement unless a maintainer specifically explains why they are not in a comment on this merge request
  • The change is marked with one of the validation labels

Merge Checklist

  • CI is passing
  • Merge conflicts are resolved
  • All discussions are resolved

Related to AC-1189

Edited by Dennis B

Merge request reports