Mikhail fixed this in Huntercoin by adding
Code: Select all
CTxDB txdb;
if (!block.ConnectBlock(txdb, pindexGenesisBlock))
return error("LoadBlockIndex() : genesis block not accepted");
Do we want to fix this, or keep the genesis block transaction out of the transaction index? Fixing it would surely be cleaner and could be done relatively simply (by the lines above). I would also include some logic into the patch to add the transaction to an existing blkindex.dat file, so that not everyone needs to redownload the blockchain.
The only risk associated is that of a hardfork if these coins should ever be spent, which seems very unlikely (unless ECDSA is broken). Also, the patch should make sure no problem occurs even then - and if we don't fix it, the risk remains that some future update does fix the odd behaviour accidentally and thus creates a hardfork without us planning it.