Skip to content

Commit

Permalink
e3: read files list from db (erigontech#6833)
Browse files Browse the repository at this point in the history
  • Loading branch information
AskAlexSharov authored Feb 13, 2023
1 parent 41f37fc commit 999899d
Show file tree
Hide file tree
Showing 31 changed files with 323 additions and 250 deletions.
2 changes: 1 addition & 1 deletion cmd/abigen/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ var (
)

func init() {
app = cli2.NewApp(params.GitCommit, "", "ethereum checkpoint helper tool")
app = cli2.NewApp(params.GitCommit, "ethereum checkpoint helper tool")
app.Flags = []cli.Flag{
&abiFlag,
&binFlag,
Expand Down
12 changes: 7 additions & 5 deletions cmd/downloader/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import (
"context"
"errors"
"fmt"
"net"
"os"
Expand Down Expand Up @@ -109,13 +110,14 @@ var rootCmd = &cobra.Command{
PersistentPostRun: func(cmd *cobra.Command, args []string) {
debug.Exit()
},
RunE: func(cmd *cobra.Command, args []string) error {
Run: func(cmd *cobra.Command, args []string) {
_ = logging2.GetLoggerCmd("downloader", cmd)
if err := Downloader(cmd.Context()); err != nil {
log.Error("Downloader", "err", err)
return nil
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}
return nil
},
}

Expand All @@ -140,7 +142,7 @@ func Downloader(ctx context.Context) error {
return fmt.Errorf("invalid nat option %s: %w", natSetting, err)
}

version := "erigon: " + params.VersionWithCommit(params.GitCommit, "")
version := "erigon: " + params.VersionWithCommit(params.GitCommit)
cfg, err := downloadercfg2.New(dirs.Snap, version, torrentLogLevel, downloadRate, uploadRate, torrentPort, torrentConnsPerFile, torrentDownloadSlots)
if err != nil {
return err
Expand Down
17 changes: 16 additions & 1 deletion cmd/erigon-el/backend/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -898,9 +898,24 @@ func (s *Ethereum) setUpBlockReader(ctx context.Context, dirs datadir.Dirs, snCo
if err != nil {
return nil, nil, nil, err
}
if err = agg.ReopenFolder(); err != nil {
if err = agg.OpenFolder(); err != nil {
return nil, nil, nil, err
}
agg.OnFreeze(func(frozenFileNames []string) {
events := s.notifications.Events
events.OnNewSnapshot()
if s.downloaderClient != nil {
req := &proto_downloader.DownloadRequest{Items: make([]*proto_downloader.DownloadItem, 0, len(frozenFileNames))}
for _, fName := range frozenFileNames {
req.Items = append(req.Items, &proto_downloader.DownloadItem{
Path: filepath.Join("history", fName),
})
}
if _, err := s.downloaderClient.Download(ctx, req); err != nil {
log.Warn("[snapshots] notify downloader", "err", err)
}
}
})

return blockReader, allSnapshots, agg, nil
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/erigon-el/backend/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ func NewNodeConfig() *nodecfg.Config {
nodeConfig := nodecfg.DefaultConfig
// see simiar changes in `cmd/geth/config.go#defaultNodeConfig`
if commit := params.GitCommit; commit != "" {
nodeConfig.Version = params.VersionWithCommit(commit, "")
nodeConfig.Version = params.VersionWithCommit(commit)
} else {
nodeConfig.Version = params.Version
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/evm/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import (
)

var (
app = cli2.NewApp(params.GitCommit, "", "the evm command line interface")
app = cli2.NewApp(params.GitCommit, "the evm command line interface")

DebugFlag = cli.BoolFlag{
Name: "debug",
Expand Down
50 changes: 28 additions & 22 deletions cmd/integration/commands/refetence_db.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"bytes"
"context"
"encoding/hex"
"errors"
"fmt"
"os"
"runtime"
Expand Down Expand Up @@ -45,78 +46,83 @@ var stateBuckets = []string{

var cmdWarmup = &cobra.Command{
Use: "warmup",
RunE: func(cmd *cobra.Command, args []string) error {
Run: func(cmd *cobra.Command, args []string) {
ctx, _ := common2.RootContext()
err := doWarmup(ctx, chaindata, bucket)
if err != nil {
log.Error(err.Error())
return err
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}
return nil
},
}

var cmdCompareBucket = &cobra.Command{
Use: "compare_bucket",
Short: "compare bucket to the same bucket in '--chaindata.reference'",
RunE: func(cmd *cobra.Command, args []string) error {
Run: func(cmd *cobra.Command, args []string) {
ctx, _ := common2.RootContext()
if referenceChaindata == "" {
referenceChaindata = chaindata + "-copy"
}
err := compareBucketBetweenDatabases(ctx, chaindata, referenceChaindata, bucket)
if err != nil {
log.Error(err.Error())
return err
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}
return nil
},
}

var cmdCompareStates = &cobra.Command{
Use: "compare_states",
Short: "compare state buckets to buckets in '--chaindata.reference'",
RunE: func(cmd *cobra.Command, args []string) error {
Run: func(cmd *cobra.Command, args []string) {
ctx, _ := common2.RootContext()
if referenceChaindata == "" {
referenceChaindata = chaindata + "-copy"
}
err := compareStates(ctx, chaindata, referenceChaindata)
if err != nil {
log.Error(err.Error())
return err
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}
return nil
},
}

var cmdMdbxToMdbx = &cobra.Command{
Use: "mdbx_to_mdbx",
Short: "copy data from '--chaindata' to '--chaindata.to'",
RunE: func(cmd *cobra.Command, args []string) error {
Run: func(cmd *cobra.Command, args []string) {
ctx, _ := common2.RootContext()
logger := log.New()
err := mdbxToMdbx(ctx, logger, chaindata, toChaindata)
if err != nil {
log.Error(err.Error())
return err
if err != nil && !errors.Is(err, context.Canceled) {
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}
return nil
},
}

var cmdFToMdbx = &cobra.Command{
Use: "f_to_mdbx",
Short: "copy data from '--chaindata' to '--chaindata.to'",
RunE: func(cmd *cobra.Command, args []string) error {
Run: func(cmd *cobra.Command, args []string) {
ctx, _ := common2.RootContext()
logger := log.New()
err := fToMdbx(ctx, logger, toChaindata)
if err != nil {
log.Error(err.Error())
return err
if err != nil && !errors.Is(err, context.Canceled) {
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}
return nil
},
}

Expand Down
22 changes: 15 additions & 7 deletions cmd/integration/commands/reset_state.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package commands

import (
"context"
"encoding/binary"
"errors"
"fmt"
"os"
"text/tabwriter"
Expand All @@ -23,7 +25,7 @@ import (
var cmdResetState = &cobra.Command{
Use: "reset_state",
Short: "Reset StateStages (5,6,7,8,9,10) and buckets",
RunE: func(cmd *cobra.Command, args []string) error {
Run: func(cmd *cobra.Command, args []string) {
ctx, _ := common.RootContext()
db := openDB(dbCfg(kv.ChainDB, chaindata), true)
defer db.Close()
Expand All @@ -32,22 +34,28 @@ var cmdResetState = &cobra.Command{
defer agg.Close()

if err := db.View(ctx, func(tx kv.Tx) error { return printStages(tx, sn, agg) }); err != nil {
return err
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}

err := reset2.ResetState(db, ctx, chain, "")
if err != nil {
log.Error(err.Error())
return err
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}

// set genesis after reset all buckets
fmt.Printf("After reset: \n")
if err := db.View(ctx, func(tx kv.Tx) error { return printStages(tx, sn, agg) }); err != nil {
return err
if !errors.Is(err, context.Canceled) {
log.Error(err.Error())
}
return
}

return nil
},
}

Expand Down
Loading

0 comments on commit 999899d

Please sign in to comment.