Closed maltemoeser closed 4 years ago
There is some non-determinism left in the form of struct paddings. However, that can also be initialized to zero. See 825278868a24260276d0e92f364ee9f7297fb35e as a starting point.
Implemented in #384, though it doesn't cover all the databases yet
Integrating this into CI doesn't really work due to the significant resource requirements of parsing the full chain. We can do this manually as we see fit, and also require comparison checks whenever significant changes in the library or parser are implemented.
The bug resolved in #367 produced non-deterministic parser output. Consider setting up a test environment that every few weeks parses the whole Bitcoin blockchain and checks the output for consistency with a previous parse.