diff --git a/cmd/downloader/downloader/downloader.go b/cmd/downloader/downloader/downloader.go index 64c9e8958c3d76bf73d1b4ee991edd98ee6d8034..7a3b7af56d35f641934c62b0c2b628ca7844725d 100644 --- a/cmd/downloader/downloader/downloader.go +++ b/cmd/downloader/downloader/downloader.go @@ -14,6 +14,7 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/log/v3" + mdbx2 "github.com/torquem-ch/mdbx-go/mdbx" ) const ASSERT = false @@ -24,7 +25,14 @@ type Protocols struct { } func New(cfg *torrent.ClientConfig, snapshotDir *dir.Rw) (*Protocols, error) { - db := mdbx.MustOpen(filepath.Join(snapshotDir.Path, "db")) + db, err := mdbx.NewMDBX(log.New()). + Flags(func(f uint) uint { return f | mdbx2.WriteMap | mdbx2.SafeNoSync }). + SyncPeriod(15 * time.Second). + Path(filepath.Join(snapshotDir.Path, "db")). + Open() + if err != nil { + return nil, err + } peerID, err := readPeerID(db) if err != nil { diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go index 1fa566bc4b4ae57839270c6e1da466c9958fe74a..960cc39140f414d5e5748be8c06d9c3022a160ce 100644 --- a/cmd/integration/commands/stages.go +++ b/cmd/integration/commands/stages.go @@ -491,7 +491,7 @@ func stageHeaders(db kv.RwDB, ctx context.Context) error { func stageBodies(db kv.RwDB, ctx context.Context) error { _, _, chainConfig, _, sync, _, _ := newSync(ctx, db, nil) - return db.Update(ctx, func(tx kv.RwTx) error { + if err := db.Update(ctx, func(tx kv.RwTx) error { s := stage(sync, tx, nil, stages.Bodies) if unwind > 0 { @@ -499,7 +499,7 @@ func stageBodies(db kv.RwDB, ctx context.Context) error { return fmt.Errorf("cannot unwind past 0") } - u := sync.NewUnwindState(stages.Senders, s.BlockNumber-unwind, s.BlockNumber) + u := sync.NewUnwindState(stages.Bodies, s.BlockNumber-unwind, s.BlockNumber) if err := stagedsync.UnwindBodiesStage(u, tx, stagedsync.StageBodiesCfg(db, nil, nil, nil, nil, 0, *chainConfig, 0, allSnapshots(chainConfig), getBlockReader(chainConfig)), ctx); err != nil { return err } @@ -513,7 +513,10 @@ func stageBodies(db kv.RwDB, ctx context.Context) error { } log.Info("This command only works with --unwind option") return nil - }) + }); err != nil { + return err + } + return nil } func stageSenders(db kv.RwDB, ctx context.Context) error {