I'm working on a pretty old blockchain here which was based on codebase 0.9 and never updated since. Now getting that stuff to a proper codebase, I'm facing following situation on initial block download:
- Downloading headers is working fine, all block headers accepted
- then, during the actual block download, always at the same height, we are throwing an exception at streams.h line 352: throw std::ios_base::failure("CDataStream::read(): end of data");
The block in question got 12 additional bytes appended to a standard transaction. Actually I thought from 0.9 this should not have been possible anymore since OP_RETURN was introduced. But afaik similar things happened in earlier bitcoin versions.
(general) Q: How did Core "fix" this issue as data is supposed to persist in the blockchain? e.g. How are newer clients treating it?
Q: Is there an example of a similar transaction on the Bitcoin blockchain (prior 0.9, I was only able to find the OP_RETURN examples)?