Hi Everybody,
i tried to fit the Abe for Worldleadcurrency which is a merge mining clone of Freicoin. Freicoin has the additional int32_t variable nRefHeight (to calculate demurrage) inside transaction. So i added
d['nRefheight'] = vps.read_int64()
(dont know if this is the correct way, but i found no better solution right now)
which changed the error:
block_tx 25 25
Skipped 4 bytes at block end
Exception at 72056511857166274
Failed to catch up {'blkfile_offset': 0, 'blkfile_number': 100000, 'chain_id': 18, 'loader': None, 'conf': None, 'dirname': u'/root/.worldleadcurrency', 'id': 39L}
Traceback (most recent call last):
File "Abe/DataStore.py", line 2536, in catch_up
store.catch_up_dir(dircfg)
File "Abe/DataStore.py", line 2837, in catch_up_dir
store.import_blkdat(dircfg, ds, blkfile['name'])
File "Abe/DataStore.py", line 2959, in import_blkdat
b = chain.ds_parse_block(ds)
File "Abe/Chain/__init__.py", line 82, in ds_parse_block
d['transactions'].append(chain.ds_parse_transaction(ds))
File "Abe/Chain/__init__.py", line 75, in ds_parse_transaction
return deserialize.parse_Transaction(ds)
File "Abe/deserialize.py", line 91, in parse_Transaction
d['txIn'].append(parse_TxIn(vds))
File "Abe/deserialize.py", line 46, in parse_TxIn
d['sequence'] = vds.read_uint32()
File "Abe/BCDataStream.py", line 71, in read_uint32
def read_uint32 (self): return self._read_num(' File "Abe/BCDataStream.py", line 110, in _read_num
(i,) = struct.unpack_from(format, self.input, self.read_cursor)
error: unpack_from requires a buffer of at least 4 bytes
to
block_tx 26 26
Skipped 1283 bytes at block end
Exception at 580166053
Failed to catch up {'blkfile_offset': 0, 'blkfile_number': 100000, 'chain_id': 18, 'loader': None, 'conf': None, 'dirname': u'/root/.worldleadcurrency', 'id': 40L}
Traceback (most recent call last):
File "Abe/DataStore.py", line 2536, in catch_up
store.catch_up_dir(dircfg)
File "Abe/DataStore.py", line 2837, in catch_up_dir
store.import_blkdat(dircfg, ds, blkfile['name'])
File "Abe/DataStore.py", line 2959, in import_blkdat
b = chain.ds_parse_block(ds)
File "Abe/Chain/__init__.py", line 82, in ds_parse_block
d['transactions'].append(chain.ds_parse_transaction(ds))
File "Abe/Chain/__init__.py", line 75, in ds_parse_transaction
return deserialize.parse_Transaction(ds)
File "Abe/deserialize.py", line 91, in parse_Transaction
d['txIn'].append(parse_TxIn(vds))
File "Abe/deserialize.py", line 46, in parse_TxIn
d['sequence'] = vds.read_uint32()
File "Abe/BCDataStream.py", line 71, in read_uint32
def read_uint32 (self): return self._read_num(' File "Abe/BCDataStream.py", line 110, in _read_num
(i,) = struct.unpack_from(format, self.input, self.read_cursor)
error: unpack_from requires a buffer of at least 4 bytes
Do i just have to adjust the reading of nRefHeight or is there something else to consider?
Thanks in advance Rik