Fix txIndexer

This commit is contained in:
Jerry 2024-09-18 15:42:29 -07:00
parent a902cd12a4
commit 352fb8adfa
No known key found for this signature in database
GPG key ID: 5B33FA23CB103211
4 changed files with 9 additions and 7 deletions

View file

@ -539,13 +539,12 @@ func NewBlockChain(db ethdb.Database, cacheConfig *CacheConfig, genesis *Genesis
rawdb.WriteChainConfig(db, genesisHash, chainConfig)
}
if txLookupLimit == nil {
if txLookupLimit != nil {
txLookupLimit = new(uint64)
*txLookupLimit = txLookupCacheLimit
bc.txIndexer = newTxIndexer(*txLookupLimit, bc)
}
bc.txIndexer = newTxIndexer(*txLookupLimit, bc)
return bc, nil
}
@ -1569,7 +1568,7 @@ func (bc *BlockChain) InsertReceiptChain(blockChain types.Blocks, receiptChain [
// generated.
batch := bc.db.NewBatch()
for i, block := range blockChain {
if bc.txIndexer.limit == 0 || ancientLimit <= bc.txIndexer.limit || block.NumberU64() >= ancientLimit-bc.txIndexer.limit {
if bc.txIndexer == nil || bc.txIndexer.limit == 0 || ancientLimit <= bc.txIndexer.limit || block.NumberU64() >= ancientLimit-bc.txIndexer.limit {
rawdb.WriteTxLookupEntriesByBlock(batch, block)
} else if rawdb.ReadTxIndexTail(bc.db) != nil {
rawdb.WriteTxLookupEntriesByBlock(batch, block)

View file

@ -439,12 +439,18 @@ func (bc *BlockChain) GetVMConfig() *vm.Config {
// SetTxLookupLimit is responsible for updating the txlookup limit to the
// original one stored in db if the new mismatches with the old one.
func (bc *BlockChain) SetTxLookupLimit(limit uint64) {
if bc.txIndexer == nil {
return
}
bc.txIndexer.limit = limit
}
// TxLookupLimit retrieves the txlookup limit used by blockchain to prune
// stale transaction indices.
func (bc *BlockChain) TxLookupLimit() uint64 {
if bc.txIndexer == nil {
return 0
}
return bc.txIndexer.limit
}

View file

@ -1790,7 +1790,6 @@ func testLongReorgedSnapSyncingDeepRepair(t *testing.T, snapshots bool) {
}
func testRepair(t *testing.T, tt *rewindTest, snapshots bool) {
t.Parallel()
for _, scheme := range []string{rawdb.HashScheme, rawdb.PathScheme} {
testRepairWithScheme(t, tt, snapshots, scheme)
}

View file

@ -531,7 +531,6 @@ func TestLowCommitCrashWithNewSnapshot(t *testing.T) {
// Expected head block : C2
// Expected snapshot disk : C4
t.Parallel()
for _, scheme := range []string{rawdb.HashScheme, rawdb.PathScheme} {
test := &crashSnapshotTest{
snapshotTestBasic{
@ -575,7 +574,6 @@ func TestHighCommitCrashWithNewSnapshot(t *testing.T) {
// Expected head block : G
// Expected snapshot disk : C4
t.Parallel()
for _, scheme := range []string{rawdb.HashScheme, rawdb.PathScheme} {
expHead := uint64(0)
if scheme == rawdb.PathScheme {