I'm working on an SPV implementation and as such I am parsing block headers. After some hairpulling I decided to double-check what the correct version value should be for some of the block headers I was parsing and it turns out the numbers there has very little to do with versioning these days.
Talking with imaginary username, it seems that miners are using the version field for their own purposes since there is no enforcement on valid version numbers.
This is something that would be good to document, in a similar way to the documentation of the version number history.
Ideally with a warning triangle or similar to show that one needs to pay extra attention here.
I'm working on an SPV implementation and as such I am parsing block headers. After some hairpulling I decided to double-check what the correct
version
value should be for some of the block headers I was parsing and it turns out the numbers there has very little to do with versioning these days.Talking with imaginary username, it seems that miners are using the version field for their own purposes since there is no enforcement on valid version numbers.
This is something that would be good to document, in a similar way to the documentation of the version number history.
Ideally with a warning triangle or similar to show that one needs to pay extra attention here.