Skip to content

Commit 38178cf

Browse files
authored
brought out create butckes in backend.go (#22)
1 parent 5e226bc commit 38178cf

File tree

6 files changed

+48
-35
lines changed

6 files changed

+48
-35
lines changed

eth/backend.go

+19
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ import (
9999
"github.com/ledgerwatch/erigon/p2p/enode"
100100
"github.com/ledgerwatch/erigon/params"
101101
"github.com/ledgerwatch/erigon/rpc"
102+
"github.com/ledgerwatch/erigon/smt/pkg/db"
102103
"github.com/ledgerwatch/erigon/sync_stages"
103104
"github.com/ledgerwatch/erigon/turbo/engineapi"
104105
"github.com/ledgerwatch/erigon/turbo/services"
@@ -108,6 +109,7 @@ import (
108109
stages2 "github.com/ledgerwatch/erigon/turbo/stages"
109110
"github.com/ledgerwatch/erigon/turbo/stages/headerdownload"
110111
"github.com/ledgerwatch/erigon/zk/datastream/client"
112+
"github.com/ledgerwatch/erigon/zk/hermez_db"
111113
"github.com/ledgerwatch/erigon/zk/syncer"
112114
"github.com/ledgerwatch/erigon/zkevm/etherman"
113115
)
@@ -674,6 +676,23 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) {
674676

675677
backend.ethBackendRPC, backend.miningRPC, backend.stateChangesClient = ethBackendRPC, miningRPC, stateDiffClient
676678

679+
tx, err := backend.chainDB.BeginRw(ctx)
680+
if err != nil {
681+
return nil, err
682+
}
683+
// create buckets
684+
if err := hermez_db.CreateHermezBuckets(tx); err != nil {
685+
return nil, err
686+
}
687+
688+
if err := db.CreateEriDbBuckets(tx); err != nil {
689+
return nil, err
690+
}
691+
692+
if err := tx.Commit(); err != nil {
693+
return nil, err
694+
}
695+
677696
if backend.config.Zk != nil {
678697
cfg := backend.config.Zk
679698

smt/pkg/db/mdbx.go

+11-6
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import (
44
"math/big"
55

66
"fmt"
7+
"strings"
8+
79
"github.com/ledgerwatch/erigon-lib/kv"
810
"github.com/ledgerwatch/erigon/ethdb"
911
"github.com/ledgerwatch/erigon/ethdb/olddb"
1012
"github.com/ledgerwatch/erigon/smt/pkg/utils"
1113
"github.com/ledgerwatch/log/v3"
12-
"strings"
1314
)
1415

1516
type SmtDbTx interface {
@@ -32,26 +33,30 @@ type EriDb struct {
3233
tx SmtDbTx
3334
}
3435

35-
func NewEriDb(tx kv.RwTx) (*EriDb, error) {
36+
func CreateEriDbBuckets(tx kv.RwTx) error {
3637
err := tx.CreateBucket(TableSmt)
3738
if err != nil {
38-
return &EriDb{}, err
39+
return err
3940
}
4041

4142
err = tx.CreateBucket(TableLastRoot)
4243
if err != nil {
43-
return &EriDb{}, err
44+
return err
4445
}
4546

4647
err = tx.CreateBucket(TableAccountValues)
4748
if err != nil {
48-
return &EriDb{}, err
49+
return err
4950
}
5051

52+
return nil
53+
}
54+
55+
func NewEriDb(tx kv.RwTx) *EriDb {
5156
return &EriDb{
5257
kvTx: tx,
5358
tx: tx,
54-
}, nil
59+
}
5560
}
5661

5762
func (m *EriDb) OpenBatch(quitCh <-chan struct{}) {

smt/pkg/db/mdbx_test.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@ package db
22

33
import (
44
"context"
5+
"math/big"
6+
"testing"
7+
58
"github.com/ledgerwatch/erigon-lib/kv/mdbx"
69
"github.com/ledgerwatch/erigon/smt/pkg/utils"
710
"github.com/stretchr/testify/assert"
8-
"math/big"
9-
"testing"
1011
)
1112

1213
func TestEriDb(t *testing.T) {
1314
dbi, _ := mdbx.NewTemporaryMdbx()
1415
tx, _ := dbi.BeginRw(context.Background())
15-
db, _ := NewEriDb(tx)
16+
db := NewEriDb(tx)
1617

1718
// The key and value we're going to test
1819
key := utils.NodeKey{1, 2, 3, 4}
@@ -32,7 +33,7 @@ func TestEriDb(t *testing.T) {
3233
func TestEriDbBatch(t *testing.T) {
3334
dbi, _ := mdbx.NewTemporaryMdbx()
3435
tx, _ := dbi.BeginRw(context.Background())
35-
db, _ := NewEriDb(tx)
36+
db := NewEriDb(tx)
3637

3738
// The key and value we're going to test
3839
key := utils.NodeKey{1, 2, 3, 4}

smt/pkg/smt/entity_storage_mdbx_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ func runGenesisTestMdbx(tb testing.TB, filename string) {
208208
if err != nil {
209209
tb.Fatal("Failed to open db: ", err)
210210
}
211-
sdb, _ := db2.NewEriDb(tx)
211+
sdb := db2.NewEriDb(tx)
212212

213213
smt := NewSMT(sdb)
214214

@@ -306,6 +306,6 @@ func getTempMdbx() (*db2.EriDb, kv.RwDB, error) {
306306
if err != nil {
307307
return nil, nil, err
308308
}
309-
sdb, _ := db2.NewEriDb(tx)
309+
sdb := db2.NewEriDb(tx)
310310
return sdb, dbi, nil
311311
}

zk/hermez_db/db.go

+9-15
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55

66
"github.com/ledgerwatch/erigon-lib/common"
77
"github.com/ledgerwatch/erigon-lib/kv"
8-
"github.com/ledgerwatch/log/v3"
98

109
dstypes "github.com/ledgerwatch/erigon/zk/datastream/types"
1110
"github.com/ledgerwatch/erigon/zk/types"
@@ -39,44 +38,39 @@ func NewHermezDb(tx kv.RwTx) (*HermezDb, error) {
3938
db := &HermezDb{tx: tx}
4039
db.HermezDbReader = NewHermezDbReader(tx)
4140

42-
err := db.CreateBuckets()
43-
if err != nil {
44-
log.Warn("failed to create buckets", "err", err)
45-
}
46-
4741
return db, nil
4842
}
4943

50-
func (db *HermezDb) CreateBuckets() error {
51-
err := db.tx.CreateBucket(L1VERIFICATIONS)
44+
func CreateHermezBuckets(tx kv.RwTx) error {
45+
err := tx.CreateBucket(L1VERIFICATIONS)
5246
if err != nil {
5347
return err
5448
}
55-
err = db.tx.CreateBucket(L1SEQUENCES)
49+
err = tx.CreateBucket(L1SEQUENCES)
5650
if err != nil {
5751
return err
5852
}
59-
err = db.tx.CreateBucket(FORKIDS)
53+
err = tx.CreateBucket(FORKIDS)
6054
if err != nil {
6155
return err
6256
}
63-
err = db.tx.CreateBucket(BLOCKBATCHES)
57+
err = tx.CreateBucket(BLOCKBATCHES)
6458
if err != nil {
6559
return err
6660
}
67-
err = db.tx.CreateBucket(GLOBAL_EXIT_ROOTS)
61+
err = tx.CreateBucket(GLOBAL_EXIT_ROOTS)
6862
if err != nil {
6963
return err
7064
}
71-
err = db.tx.CreateBucket(GLOBAL_EXIT_ROOTS_BATCHES)
65+
err = tx.CreateBucket(GLOBAL_EXIT_ROOTS_BATCHES)
7266
if err != nil {
7367
return err
7468
}
75-
err = db.tx.CreateBucket(TX_PRICE_PERCENTAGE)
69+
err = tx.CreateBucket(TX_PRICE_PERCENTAGE)
7670
if err != nil {
7771
return err
7872
}
79-
err = db.tx.CreateBucket(STATE_ROOTS)
73+
err = tx.CreateBucket(STATE_ROOTS)
8074
if err != nil {
8175
return err
8276
}

zk/stages/stage_interhashes.go

+2-8
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,7 @@ func SpawnZkIntermediateHashesStage(s *sync_stages.StageState, u sync_stages.Unw
116116

117117
shouldRegenerate := to > s.BlockNumber && to-s.BlockNumber > cfg.zk.RebuildTreeAfter
118118

119-
eridb, err := db2.NewEriDb(tx)
120-
if err != nil {
121-
return trie.EmptyRoot, err
122-
}
119+
eridb := db2.NewEriDb(tx)
123120
smt := smt.NewSMT(eridb)
124121

125122
if s.BlockNumber == 0 || shouldRegenerate {
@@ -453,10 +450,7 @@ func unwindZkSMT(logPrefix string, from, to uint64, db kv.RwTx, cfg ZkInterHashe
453450
log.Info(fmt.Sprintf("[%s] Unwind trie hashes started", logPrefix))
454451
defer log.Info(fmt.Sprintf("[%s] Unwind ended", logPrefix))
455452

456-
eridb, err := db2.NewEriDb(db)
457-
if err != nil {
458-
return trie.EmptyRoot, err
459-
}
453+
eridb := db2.NewEriDb(db)
460454
dbSmt := smt.NewSMT(eridb)
461455

462456
log.Info(fmt.Sprintf("[%s]", logPrefix), "last root", libcommon.BigToHash(dbSmt.LastRoot()))

0 commit comments

Comments
 (0)