The block format is defined in C++ in a call to the IMPLEMENT_SERIALIZE macro in classes CBlockHeader, CTransaction, CTxIn, and CTxOut. The relevant sections of Bitcoin source code are:
https://github.com/bitcoin/bitcoin/blob/v0.9.0/src/core.h#L363-369
https://github.com/bitcoin/bitcoin/blob/v0.9.0/src/core.h#L201-205
https://github.com/bitcoin/bitcoin/blob/v0.9.0/src/core.h#L87-89
https://github.com/bitcoin/bitcoin/blob/v0.9.0/src/core.h#L134-135
That is what we translate into Python here:
https://github.com/bitcoin-abe/bitcoin-abe/blob/v0.7.2/Abe/deserialize.py#L163-168
https://github.com/bitcoin-abe/bitcoin-abe/blob/v0.7.2/Abe/deserialize.py#L82-91
https://github.com/bitcoin-abe/bitcoin-abe/blob/v0.7.2/Abe/deserialize.py#L42-45
https://github.com/bitcoin-abe/bitcoin-abe/blob/v0.7.2/Abe/deserialize.py#L65-66
If you can figure out the correspondence between those two sets of code snippets, you can read any chain that uses Bitcoin's serialization facility.
Hi John, double checked all that and the DarkCoin/HiroCoin code has had no alterations on any of those classes on IMPLEMENT_SERIALIZE macro.
Any other ideas on what could be the issue?