Open skoroneos opened 7 years ago
Segwit is not yet supported... I could give you the code to decode properly segwit transactions, but it would not save the witness part of it if you have set Abe to save scriptSig. It migth work OK otherwise... I'd have to double check it saves the right tx id too.
The plan was to add witness (whenever scriptSig is saved too) and real tx hash to the database, however I haven't had the time to complete coding and testing, and even then it would take me weeks to alter my own database on standard spindle disks.
Regards,
@dermoth could you post the segwit somewhere, please?
It's in my fork, segwit branch
It's still work in progress, I haven't had much time to finish it, and at this point there is no chances I can catch up on my current hardware, let alone test upgrade scenarios.
Since it's a soft-fork you can always import from a non-segwit node... you will be missing the segwit data but it'll work... OTOH going back to segwit after means both bitcoind and abe will have to rollback blocks and re-apply them with segwit (or better yet, backup before segwit and restore backup before upgrade)
Have the latest version pulled after a system update and then had this error Any idea what might be wrong ?
block 482011 already in chain 1 commit Exception at 8653327013179591703 Failed to catch up {'blkfile_offset': 87472868, 'blkfile_number': 100976, 'chain_id': None, 'loader': None, 'dirname': '/root/.bitcoin', 'id': Decimal('1')} Traceback (most recent call last): File "Abe/DataStore.py", line 2562, in catch_up store.catch_up_dir(dircfg) File "Abe/DataStore.py", line 2842, in catch_up_dir store.import_blkdat(dircfg, ds, blkfile['name']) File "Abe/DataStore.py", line 2964, 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 90, 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('<I') 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