citp / BlockSci

A high-performance tool for blockchain science and exploration
https://citp.github.io/BlockSci/
GNU General Public License v3.0
1.34k stars 259 forks source link

ci: parse full chain and check consistency #370

Closed maltemoeser closed 4 years ago

maltemoeser commented 4 years ago

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.

mplattner commented 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.

maltemoeser commented 4 years ago

Implemented in #384, though it doesn't cover all the databases yet

maltemoeser commented 4 years ago

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.