cmd, core, eth: background transaction indexing (#20302)
* cmd, core, eth: init tx lookup in background * core/rawdb: tiny log fixes to make it clearer what's happening * core, eth: fix rebase errors * core/rawdb: make reindexing less generic, but more optimal * rlp: implement rlp list iterator * core/rawdb: new implementation of tx indexing/unindex using generic tx iterator and hashing rlp-data * core/rawdb, cmd/utils: fix review concerns * cmd/utils: fix merge issue * core/rawdb: add some log formatting polishes Co-authored-by: rjl493456442 <garyrong0905@gmail.com> Co-authored-by: Péter Szilágyi <peterke@gmail.com>
This commit is contained in:
committed by
GitHub
parent
6f54ae24cd
commit
4535230059
@ -63,9 +63,31 @@ func WriteTxLookupEntries(db ethdb.KeyValueWriter, block *types.Block) {
|
||||
}
|
||||
}
|
||||
|
||||
// WriteTxLookupEntriesByHash is identical to WriteTxLookupEntries, but does not
|
||||
// require a full types.Block as input.
|
||||
func WriteTxLookupEntriesByHash(db ethdb.KeyValueWriter, number uint64, hashes []common.Hash) {
|
||||
numberBytes := new(big.Int).SetUint64(number).Bytes()
|
||||
for _, hash := range hashes {
|
||||
if err := db.Put(txLookupKey(hash), numberBytes); err != nil {
|
||||
log.Crit("Failed to store transaction lookup entry", "err", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteTxLookupEntry removes all transaction data associated with a hash.
|
||||
func DeleteTxLookupEntry(db ethdb.KeyValueWriter, hash common.Hash) {
|
||||
db.Delete(txLookupKey(hash))
|
||||
if err := db.Delete(txLookupKey(hash)); err != nil {
|
||||
log.Crit("Failed to delete transaction lookup entry", "err", err)
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteTxLookupEntries removes all transaction lookups for a given block.
|
||||
func DeleteTxLookupEntriesByHash(db ethdb.KeyValueWriter, hashes []common.Hash) {
|
||||
for _, hash := range hashes {
|
||||
if err := db.Delete(txLookupKey(hash)); err != nil {
|
||||
log.Crit("Failed to delete transaction lookup entry", "err", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ReadTransaction retrieves a specific transaction from the database, along with
|
||||
|
Reference in New Issue
Block a user