Skip to content

Commit 8865d8e

Browse files
SharedDomains: step3 towards eliminating txNum field (#19380)
- remove `SetBlockNum` method and field - remove `SetTxNum` calls from many tests
1 parent e7f916c commit 8865d8e

File tree

21 files changed

+38
-116
lines changed

21 files changed

+38
-116
lines changed

cmd/evm/internal/t8ntool/transition.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,9 @@ func Main(ctx *cli.Context) error {
319319

320320
blockNum, txNum := uint64(0), uint64(0)
321321
sd.SetTxNum(txNum)
322-
sd.SetBlockNum(blockNum)
323322
reader, writer := MakePreState((&evmtypes.BlockContext{}).Rules(chainConfig), tx, sd, prestate.Pre, blockNum, txNum)
324323
blockNum, txNum = uint64(1), uint64(2)
325324
sd.SetTxNum(txNum)
326-
sd.SetBlockNum(blockNum)
327325

328326
// Merge engine can be used for pre-merge blocks as well, as it
329327
// redirects to the ethash engine based on the block number

db/integrity/commitment.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,14 +244,14 @@ func checkCommitmentRootViaSd(ctx context.Context, tx kv.TemporalTx, f state.Vis
244244

245245
func checkCommitmentRootViaRecompute(ctx context.Context, tx kv.TemporalTx, sd *execctx.SharedDomains, info commitmentRootInfo, f state.VisibleFile, logger log.Logger) error {
246246
touchLoggingVisitor := func(k []byte) {
247-
logger.Debug("account touch for root block", "key", common.Address(k), "blockNum", sd.BlockNum(), "file", filepath.Base(f.Fullpath()))
247+
logger.Debug("account touch for root block", "key", common.Address(k), "blockNum", info.blockNum, "file", filepath.Base(f.Fullpath()))
248248
}
249249
touches, err := touchHistoricalKeys(sd, tx, kv.AccountsDomain, info.blockMinTxNum, info.txNum+1, touchLoggingVisitor)
250250
if err != nil {
251251
return err
252252
}
253253
logger.Info("recomputing commitment root after", "touches", touches, "file", filepath.Base(f.Fullpath()))
254-
recomputedBytes, err := sd.ComputeCommitment(ctx, tx, false /* saveStateAfter */, sd.BlockNum(), sd.TxNum(), "integrity", nil /* commitProgress */)
254+
recomputedBytes, err := sd.ComputeCommitment(ctx, tx, false /* saveStateAfter */, info.blockNum, info.txNum, "integrity", nil /* commitProgress */)
255255
if err != nil {
256256
return err
257257
}

db/integrity/commitment_state_verify_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ func TestCheckStateVerify(t *testing.T) {
6868
rnd := rand.New(rand.NewSource(42))
6969

7070
for txNum := uint64(1); txNum <= txs; txNum++ {
71-
domains.SetTxNum(txNum)
72-
7371
addr := make([]byte, length.Addr)
7472
loc := make([]byte, length.Hash)
7573
rnd.Read(addr)
@@ -150,8 +148,6 @@ func TestCheckStateVerify_NoopWrite(t *testing.T) {
150148
var noopStorageVal []byte
151149

152150
for txNum := uint64(1); txNum <= 200; txNum++ {
153-
domains.SetTxNum(txNum)
154-
155151
addr := make([]byte, length.Addr)
156152
loc := make([]byte, length.Hash)
157153
rnd.Read(addr)
@@ -187,8 +183,6 @@ func TestCheckStateVerify_NoopWrite(t *testing.T) {
187183
// --- Step range 2: txNum 201..400 (steps 2-3) ---
188184
// Write unique entries PLUS re-write the saved entry with the same value (no-op).
189185
for txNum := uint64(201); txNum <= 400; txNum++ {
190-
domains.SetTxNum(txNum)
191-
192186
addr := make([]byte, length.Addr)
193187
loc := make([]byte, length.Hash)
194188
rnd.Read(addr)
@@ -273,8 +267,6 @@ func TestVerifyBranchHashesFromDB(t *testing.T) {
273267
rnd := rand.New(rand.NewSource(42))
274268

275269
for txNum := uint64(1); txNum <= 5; txNum++ {
276-
domains.SetTxNum(txNum)
277-
278270
addr := make([]byte, length.Addr)
279271
loc := make([]byte, length.Hash)
280272
rnd.Read(addr)

db/rawdb/rawtemporaldb/accessors_receipt_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,26 +27,18 @@ func TestAppendReceipt(t *testing.T) {
2727
require.NoError(err)
2828
defer doms.Close()
2929

30-
doms.SetTxNum(0) // block1
3130
err = rawtemporaldb.AppendReceipt(doms.AsPutDel(ttx), 1, 10, 0, 0) // 1 log
3231
require.NoError(err)
3332

34-
doms.SetTxNum(1) // block1
3533
err = rawtemporaldb.AppendReceipt(doms.AsPutDel(ttx), 1, 11, 0, 1) // 0 log
3634
require.NoError(err)
3735

38-
doms.SetTxNum(2) // block1
39-
40-
doms.SetTxNum(3) // block2
4136
err = rawtemporaldb.AppendReceipt(doms.AsPutDel(ttx), 4, 12, 0, 3) // 3 logs
4237
require.NoError(err)
4338

44-
doms.SetTxNum(4) // block2
4539
err = rawtemporaldb.AppendReceipt(doms.AsPutDel(ttx), 4, 14, 0, 4) // 0 log
4640
require.NoError(err)
4741

48-
doms.SetTxNum(5) // block2
49-
5042
err = doms.Flush(context.Background(), tx)
5143
require.NoError(err)
5244

db/state/execctx/domain_shared.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"fmt"
2424
"math"
2525
"runtime"
26-
"sync/atomic"
2726
"time"
2827

2928
"github.com/erigontech/erigon/common"
@@ -92,7 +91,6 @@ type SharedDomains struct {
9291

9392
txNum uint64
9493
currentStep kv.Step
95-
blockNum atomic.Uint64
9694
trace bool //nolint
9795
commitmentCapture bool
9896
mem kv.TemporalMemBatch
@@ -172,7 +170,6 @@ func (sd *SharedDomains) Merge(sdTxNum uint64, other *SharedDomains, otherTxNum
172170

173171
sd.txNum = otherTxNum
174172
sd.currentStep = kv.Step(otherTxNum / sd.stepSize)
175-
sd.blockNum.Store(other.blockNum.Load())
176173
return nil
177174
}
178175

@@ -324,12 +321,6 @@ func (sd *SharedDomains) SetTxNum(txNum uint64) {
324321

325322
func (sd *SharedDomains) TxNum() uint64 { return sd.txNum }
326323

327-
func (sd *SharedDomains) BlockNum() uint64 { return sd.blockNum.Load() }
328-
329-
func (sd *SharedDomains) SetBlockNum(blockNum uint64) {
330-
sd.blockNum.Store(blockNum)
331-
}
332-
333324
func (sd *SharedDomains) SetTrace(b, capture bool) []string {
334325
sd.trace = b
335326
sd.commitmentCapture = capture
@@ -349,7 +340,6 @@ func (sd *SharedDomains) Close() {
349340
return
350341
}
351342

352-
sd.SetBlockNum(0)
353343
sd.SetTxNum(0)
354344
sd.ResetPendingUpdates()
355345

@@ -634,7 +624,6 @@ func (sd *SharedDomains) SeekCommitment(ctx context.Context, tx kv.TemporalTx) (
634624
if err != nil {
635625
return 0, 0, err
636626
}
637-
sd.SetBlockNum(blockNum)
638627
sd.SetTxNum(txNum)
639628
return txNum, blockNum, nil
640629
}

db/state/execctx/domain_shared_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,8 @@ func TestSharedDomain_StorageIter(t *testing.T) {
270270
require.NoError(t, err)
271271
defer domains.Close()
272272

273-
txNum := domains.TxNum()
273+
txNum, _, err := domains.SeekCommitment(ctx, rwTx)
274+
require.NoError(t, err)
274275
for accs := 0; accs < noaccounts; accs++ {
275276
k0[0] = byte(accs)
276277
pv, step, err := domains.GetLatest(kv.AccountsDomain, rwTx, k0)
@@ -562,7 +563,6 @@ func TestSharedDomain_HasPrefix_StorageDomain(t *testing.T) {
562563
require.Equal(t, uint64(0), roTtx1.Debug().TxNumsInFiles(kv.StorageDomain))
563564

564565
// finally, verify SharedDomains.HasPrefix returns true
565-
sd.SetTxNum(2) // needed for HasPrefix (in-mem has to be ahead of tx num)
566566
firstKey, firstVal, ok, err = sd.HasPrefix(kv.StorageDomain, acc1.Bytes(), roTtx1)
567567
require.NoError(t, err)
568568
require.True(t, ok)
@@ -669,7 +669,6 @@ func TestSharedDomain_HasPrefix_StorageDomain(t *testing.T) {
669669
roTtx3, err := db.BeginTemporalRo(ctx)
670670
require.NoError(t, err)
671671
t.Cleanup(roTtx3.Rollback)
672-
sd.SetTxNum(4) // needed for HasPrefix (in-mem has to be ahead of tx num)
673672
firstKey, firstVal, ok, err = sd.HasPrefix(kv.StorageDomain, acc1.Bytes(), roTtx3)
674673
require.NoError(t, err)
675674
require.False(t, ok)
@@ -700,7 +699,6 @@ func TestSharedDomain_HasPrefix_StorageDomain(t *testing.T) {
700699
roTtx4, err := db.BeginTemporalRo(ctx)
701700
require.NoError(t, err)
702701
t.Cleanup(roTtx4.Rollback)
703-
sd.SetTxNum(5) // needed for HasPrefix (in-mem has to be ahead of tx num)
704702
firstKey, firstVal, ok, err = sd.HasPrefix(kv.StorageDomain, acc1.Bytes(), roTtx4)
705703
require.NoError(t, err)
706704
require.True(t, ok)

db/state/squeeze.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -485,8 +485,8 @@ func RebuildCommitmentFiles(ctx context.Context, rwDb kv.TemporalRwDB, txNumsRea
485485
return nil, err
486486
}
487487

488-
domains.SetBlockNum(blockNum)
489488
domains.SetTxNum(lastTxnumInShard - 1)
489+
currentTxNum := lastTxnumInShard - 1
490490
domains.GetCommitmentCtx().SetLimitedHistoryStateReader(rwTx, lastTxnumInShard) // this helps to read state from correct file during commitment
491491

492492
rebuiltCommit, err = rebuildCommitmentShard(ctx, domains, rwTx, nextKey, &rebuiltCommitment{
@@ -496,8 +496,8 @@ func RebuildCommitmentFiles(ctx context.Context, rwDb kv.TemporalRwDB, txNumsRea
496496
TxnTo: rangeToTxNum,
497497
Keys: totalKeys,
498498

499-
BlockNumber: domains.BlockNum(),
500-
TxnNumber: domains.TxNum(),
499+
BlockNumber: blockNum,
500+
TxnNumber: currentTxNum,
501501
LogPrefix: fmt.Sprintf("[commitment_rebuild] range %s shard %d-%d", r.String("", a.StepSize()), shardFrom, shardTo),
502502
})
503503
if err != nil {

db/state/squeeze_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ func testDbAggregatorWithNoFiles(tb testing.TB, txCount int, cfg *testAggConfig)
132132
var txNum, blockNum uint64
133133
for i := 0; i < len(vals); i++ {
134134
txNum = uint64(i)
135-
domains.SetTxNum(txNum)
136135

137136
for j := 0; j < len(keys); j++ {
138137
acc := accounts.Account{
@@ -366,7 +365,6 @@ func aggregatorV3_RestartOnDatadir(t *testing.T, rc runCfg) {
366365
var txNum, blockNum uint64
367366
for i := uint64(1); i <= txs; i++ {
368367
txNum = i
369-
domains.SetTxNum(txNum)
370368
binary.BigEndian.PutUint64(aux[:], txNum)
371369

372370
n, err := rnd.Read(addr)

db/test/aggregator_ext_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func TestAggregatorV3_RestartOnFiles(t *testing.T) {
109109
if (txNum+1)%stepSize == 0 {
110110
trieState, err := hph.EncodeCurrentState(nil)
111111
require.NoError(t, err)
112-
cs := commitmentdb.NewCommitmentState(domains.TxNum(), 0, trieState)
112+
cs := commitmentdb.NewCommitmentState(txNum, 0, trieState)
113113
encodedState, err := cs.Encode()
114114
require.NoError(t, err)
115115
err = domains.DomainPut(kv.CommitmentDomain, tx, commitmentdb.KeyCommitmentState, encodedState, txNum, nil, 0)

db/test/domains_restart_test.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ func Test_AggregatorV3_RestartOnDatadir_WithoutDB(t *testing.T) {
8585
require.NoError(t, err)
8686
defer domains.Close()
8787
blockNum, txNum := uint64(0), uint64(0)
88-
domains.SetTxNum(txNum)
8988

9089
rnd := rand.New(rand.NewSource(time.Now().Unix()))
9190

@@ -111,8 +110,6 @@ func Test_AggregatorV3_RestartOnDatadir_WithoutDB(t *testing.T) {
111110
txNum = i
112111
blockNum = txNum / blockSize
113112
writer.SetTxNum(txNum)
114-
domains.SetTxNum(txNum)
115-
domains.SetBlockNum(txNum / blockSize)
116113
binary.BigEndian.PutUint64(aux[:], txNum)
117114

118115
var locVal common.Hash
@@ -233,7 +230,8 @@ func Test_AggregatorV3_RestartOnDatadir_WithoutDB(t *testing.T) {
233230
defer domains.Close()
234231
writer = state2.NewWriter(domains.AsPutDel(tx), nil, txNum)
235232

236-
txToStart := domains.TxNum()
233+
txToStart, _, err := domains.SeekCommitment(ctx, tx)
234+
require.NoError(t, err)
237235

238236
rh, err = domains.ComputeCommitment(ctx, tx, false, blockNum, txNum, "", nil)
239237
require.NoError(t, err)
@@ -243,8 +241,6 @@ func Test_AggregatorV3_RestartOnDatadir_WithoutDB(t *testing.T) {
243241
for tt := txToStart; tt <= txs; tt++ {
244242
txNum = tt
245243
blockNum = txNum / blockSize
246-
domains.SetTxNum(txNum)
247-
domains.SetBlockNum(blockNum)
248244
binary.BigEndian.PutUint64(aux[:], txNum)
249245

250246
//fmt.Printf("tx+ %d addr %x\n", txNum, addrs[i])
@@ -308,13 +304,11 @@ func Test_AggregatorV3_RestartOnDatadir_WithoutAnything(t *testing.T) {
308304
defer domains.Close()
309305
rnd := rand.New(rand.NewSource(time.Now().Unix()))
310306

311-
domains.SetTxNum(txNum)
312307
writer := state2.NewWriter(domains.AsPutDel(tx), nil, txNum)
313308

314309
for i := testStartedFromTxNum; i <= txs; i++ {
315310
txNum = i
316311
blockNum = txNum / blockSize
317-
domains.SetTxNum(txNum)
318312
binary.BigEndian.PutUint64(aux[:], txNum)
319313

320314
var locVal common.Hash
@@ -400,7 +394,8 @@ func Test_AggregatorV3_RestartOnDatadir_WithoutAnything(t *testing.T) {
400394

401395
writer := state2.NewWriter(domains.AsPutDel(tx), nil, txNum)
402396

403-
txToStart := domains.TxNum()
397+
txToStart, _, err := domains.SeekCommitment(ctx, tx)
398+
require.NoError(t, err)
404399
require.EqualValues(t, 0, txToStart)
405400
txToStart = testStartedFromTxNum
406401

@@ -417,8 +412,6 @@ func Test_AggregatorV3_RestartOnDatadir_WithoutAnything(t *testing.T) {
417412
for tt := txToStart; tt <= txs; tt++ {
418413
txNum = tt
419414
blockNum = txNum / blockSize
420-
domains.SetTxNum(txNum)
421-
domains.SetBlockNum(blockNum)
422415
binary.BigEndian.PutUint64(aux[:], txNum)
423416

424417
err = writer.UpdateAccountData(addrs[i], &accounts.Account{}, accs[i])

0 commit comments

Comments
 (0)