Here you guys go
http://www.multiupload.nl/RPHLDYLTA9open with sqliteman on unix
If you want to compile your own abe webserver, here are my hacks:
conf file:
datadir = [{
"dirname": "/home/me/.novacoin",
"chain": "NovaCoin",
"code3": "NVC",
"address_version": "\u0000" }]
datastore.pyafter line 67
{"chain":"NovaCoin",
"code3":"NVC", "address_version":"\x37", "magic":"\xe4\xe8\xe9\xe5"},
later in the code, bypass doing hashes to make sure the merkle root is consistent (hack for litecoin/scrypt)
class InvalidBlock(Exception):
pass
class MerkleRootMismatch(InvalidBlock):
def __init__(ex, block_hash, tx_hashes):
ex.block_hash = block_hash
ex.tx_hashes = tx_hashes
def __str__(ex):
pass
#return 'Block header Merkle root does not match its transactions. ' \
# 'block hash=%s' % (ex.block_hash.encode('hex'),)
# Verify Merkle root.
if b['hashMerkleRoot'] != util.merkle(tx_hash_array):
pass
#raise MerkleRootMismatch(b['hash'], tx_hash_array)
deserialize.pyCheck for nTime for all transactions, a feature that most other chains do not possess
def parse_Transaction(vds):
d = {}
start = vds.read_cursor
d['version'] = vds.read_int32()
d['nTime'] = vds.read_uint32()
n_vin = vds.read_compact_size()
d['txIn'] = []
for i in xrange(n_vin):
d['txIn'].append(parse_TxIn(vds))
n_vout = vds.read_compact_size()
d['txOut'] = []
for i in xrange(n_vout):
d['txOut'].append(parse_TxOut(vds))
d['lockTime'] = vds.read_uint32()
d['tx'] = vds.input[start:vds.read_cursor]
return d
def deserialize_Transaction(d, transaction_index=None, owner_keys=None):
result = "%d tx in, %d out\n"%(len(d['txIn']), len(d['txOut']))
for txIn in d['txIn']:
result += deserialize_TxIn(txIn, transaction_index) + "\n"
for txOut in d['txOut']:
result += deserialize_TxOut(txOut, owner_keys) + "\n"
return result
These are kind of dirty hacks, but it runs for me