Page MenuHomePhabricator

Create plan for refactoring validation in terms of rules
Open, Needs TriagePublic

Description

Currently, the validation engine is ad-hoc code. I'm proposing that we impose a structure on that code specifically to look like this:

validateBlock(block):
   Check Validation Block
   Jump to rules for a specific block version/height/time:
   For rule in rules:
      if not rule(block):
            return false
    return true

With possibly some post-validation step that ensures all the rules that are required ran.

This opens up to better hardfork coding practices, and validation of hardforks in the future.

Event Timeline

schancel created this task.Jan 23 2018, 21:51