I did not take look in depth yet but it doesn’t seem to be property based testing for black-box stuff (functional), right?
This is correct.
I guess I haven’t heard of property based testing being used via networking layers, usually I’ve heard it used (and what we do in bitcoin-s) is accessing data structures directly for a couple of reasons
- Do we want to property based test the entire networking stack? That seems very inefficient and will probably lead to very flaky tests
- Higher maintenance burden (although since we already have test suites in c++ and python maybe this doesn’t apply as much to bitcoin core).
As a general note, I find the python test framework lacking in completeness compared to c++ implementation. For instance, when working on my 64 bit arithmetic PR it seems we just assume correctness of values given to the Python test framework. I’m suspicious that this occurs more often that we would like.
Of course you can take this to mean we need to do this work to find these bugs, but I think this will result in a secondary consensus implementation in Python :-). Reasonable minds can differ of course, but that is my two sats of input.