diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go index d4a5455b7..b0b805715 100644 --- a/cmd/integration/commands/stages.go +++ b/cmd/integration/commands/stages.go @@ -1168,7 +1168,6 @@ func getBlockReader(db kv.RoDB) (blockReader services.FullBlockReader) { } func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig) (consensus.Engine, *vm.Config, *stagedsync.Sync, *stagedsync.Sync, stagedsync.MiningState) { - logger := log.New() dirs, historyV3, pm := datadir.New(datadirCli), kvcfg.HistoryV3.FromDB(db), fromdb.PruneMode(db) vmConfig := &vm.Config{} @@ -1202,7 +1201,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig) allSn, agg := allSnapshots(db) cfg.Snapshot = allSn.Cfg() - engine := initConsensusEngine(chainConfig, logger, allSn, cfg.Dirs.DataDir, db) + engine := initConsensusEngine(chainConfig, cfg.Dirs.DataDir, db) br := getBlockReader(db) sentryControlServer, err := sentry.NewMultiClient( @@ -1283,25 +1282,27 @@ func overrideStorageMode(db kv.RwDB) error { }) } -func initConsensusEngine(chainConfig *params.ChainConfig, logger log.Logger, snapshots *snapshotsync.RoSnapshots, datadir string, db kv.RwDB) (engine consensus.Engine) { +func initConsensusEngine(chainConfig *params.ChainConfig, datadir string, db kv.RwDB) (engine consensus.Engine) { + logger := log.New() + snapshots, _ := allSnapshots(db) config := ethconfig.Defaults switch { case chainConfig.Clique != nil: c := params.CliqueSnapshot c.DBPath = filepath.Join(datadir, "clique", "db") - engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, c, config.Miner.Notify, config.Miner.Noverify, "", true, datadir, snapshots, true /* readonly */, db) + engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, c, config.Miner.Notify, config.Miner.Noverify, "", true, datadir, snapshots, db.ReadOnly(), db) case chainConfig.Aura != nil: consensusConfig := ¶ms.AuRaConfig{DBPath: filepath.Join(datadir, "aura")} - engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, consensusConfig, config.Miner.Notify, config.Miner.Noverify, "", true, datadir, snapshots, true /* readonly */, db) + engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, consensusConfig, config.Miner.Notify, config.Miner.Noverify, "", true, datadir, snapshots, db.ReadOnly(), db) case chainConfig.Parlia != nil: // Apply special hacks for BSC params params.ApplyBinanceSmartChainParams() consensusConfig := ¶ms.ParliaConfig{DBPath: filepath.Join(datadir, "parlia")} - engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, consensusConfig, config.Miner.Notify, config.Miner.Noverify, "", true, datadir, snapshots, true /* readonly */, db) + engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, consensusConfig, config.Miner.Notify, config.Miner.Noverify, "", true, datadir, snapshots, db.ReadOnly(), db) case chainConfig.Bor != nil: consensusConfig := &config.Bor - engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, consensusConfig, config.Miner.Notify, config.Miner.Noverify, HeimdallURL, false, datadir, snapshots, true /* readonly */, db) + engine = ethconsensusconfig.CreateConsensusEngine(chainConfig, logger, consensusConfig, config.Miner.Notify, config.Miner.Noverify, HeimdallURL, false, datadir, snapshots, db.ReadOnly(), db) default: //ethash engine = ethash.NewFaker() } diff --git a/ethdb/olddb/mutation.go b/ethdb/olddb/mutation.go index f395bbd13..ee39868da 100644 --- a/ethdb/olddb/mutation.go +++ b/ethdb/olddb/mutation.go @@ -68,6 +68,7 @@ func (mi *MutationItem) Less(than btree.Item) bool { return bytes.Compare(mi.key, i.key) < 0 } +func (m *mutation) ReadOnly() bool { return false } func (m *mutation) RwKV() kv.RwDB { if casted, ok := m.db.(ethdb.HasRwKV); ok { return casted.RwKV() diff --git a/go.mod b/go.mod index ddb3f0365..c49ad821d 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/ledgerwatch/erigon go 1.18 require ( - github.com/ledgerwatch/erigon-lib v0.0.0-20221227055016-a8f528486df4 + github.com/ledgerwatch/erigon-lib v0.0.0-20221228054641-3139d0b2d744 github.com/ledgerwatch/erigon-snapshot v1.1.1-0.20221223003841-487873d31492 github.com/ledgerwatch/log/v3 v3.6.0 github.com/ledgerwatch/secp256k1 v1.0.0 @@ -49,6 +49,7 @@ require ( github.com/json-iterator/go v1.1.12 github.com/julienschmidt/httprouter v1.3.0 github.com/kevinburke/go-bindata v3.21.0+incompatible + github.com/klauspost/compress v1.15.10 github.com/libp2p/go-libp2p v0.23.2 github.com/libp2p/go-libp2p-core v0.20.1 github.com/libp2p/go-libp2p-pubsub v0.8.1 @@ -151,7 +152,6 @@ require ( github.com/ipfs/go-log/v2 v2.5.1 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect - github.com/klauspost/compress v1.15.10 // indirect github.com/klauspost/cpuid/v2 v2.1.1 // indirect github.com/koron/go-ssdp v0.0.3 // indirect github.com/kr/pretty v0.3.1 // indirect diff --git a/go.sum b/go.sum index 18d0fc9ca..61037efd4 100644 --- a/go.sum +++ b/go.sum @@ -563,8 +563,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170224010052-a616ab194758 h1:0D5M2HQSGD3PYPwICLl+/9oulQauOuETfgFvhBDffs0= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= -github.com/ledgerwatch/erigon-lib v0.0.0-20221227055016-a8f528486df4 h1:KYSdNN4l0LVx+l7ch9R9tHOSsCkxBR+ogk8xxc3tjg0= -github.com/ledgerwatch/erigon-lib v0.0.0-20221227055016-a8f528486df4/go.mod h1:tH/g/HJjsZzplt6I6HtJPiYUD51cWGl1FXY6FcJsE8I= +github.com/ledgerwatch/erigon-lib v0.0.0-20221228054641-3139d0b2d744 h1:JJYFaMT4/5iHSNo9dCrMkxoVlysdeJ6+k5YIk2oJ6uQ= +github.com/ledgerwatch/erigon-lib v0.0.0-20221228054641-3139d0b2d744/go.mod h1:tH/g/HJjsZzplt6I6HtJPiYUD51cWGl1FXY6FcJsE8I= github.com/ledgerwatch/erigon-snapshot v1.1.1-0.20221223003841-487873d31492 h1:SSYvbAzdreVrXdy8z8A92ug36c7zsGQLzXFrSiw92Zc= github.com/ledgerwatch/erigon-snapshot v1.1.1-0.20221223003841-487873d31492/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= github.com/ledgerwatch/log/v3 v3.6.0 h1:JBUSK1epPyutUrz7KYDTcJtQLEHnehECRpKbM1ugy5M=