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)?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.