diff --git a/.github/workflows/ci-cd-main-branch-docker-images.yml b/.github/workflows/ci-cd-main-branch-docker-images.yml index 4edc706e6d5..cdd24a6e5fd 100644 --- a/.github/workflows/ci-cd-main-branch-docker-images.yml +++ b/.github/workflows/ci-cd-main-branch-docker-images.yml @@ -3,8 +3,8 @@ run-name: "Commit id ${{ github.sha }}: CI-CD build and deploy docker images bas env: APPLICATION: "erigon" - BUILDER_IMAGE: "golang:1.22.6-alpine3.20" - TARGET_BASE_IMAGE: "alpine:3.20.2" + BUILDER_IMAGE: "golang:1.22.7-alpine3.20" + TARGET_BASE_IMAGE: "alpine:3.20.3" APP_REPO: "erigontech/erigon" CHECKOUT_REF: "main" DOCKERHUB_REPOSITORY: "erigontech/erigon" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1ea0993725e..d1b08fd368c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,8 +2,8 @@ name: Release env: APPLICATION: "erigon" - BUILDER_IMAGE: "ghcr.io/goreleaser/goreleaser-cross:v1.21.13" - DOCKER_BASE_IMAGE: "alpine:3.20.2" + BUILDER_IMAGE: "ghcr.io/goreleaser/goreleaser-cross:v1.22.7" + DOCKER_BASE_IMAGE: "alpine:3.20.3" APP_REPO: "erigontech/erigon" PACKAGE: "github.com/erigontech/erigon" DOCKERHUB_REPOSITORY: "erigontech/erigon" diff --git a/erigon-lib/kv/rawdbv3/txnum.go b/erigon-lib/kv/rawdbv3/txnum.go index c4fd1330954..18168ca4870 100644 --- a/erigon-lib/kv/rawdbv3/txnum.go +++ b/erigon-lib/kv/rawdbv3/txnum.go @@ -237,14 +237,14 @@ func (TxNumsReader) Last(tx kv.Tx) (blockNum, txNum uint64, err error) { } defer c.Close() - lastK, lastV, err := c.Last() + k, v, err := c.Last() if err != nil { return 0, 0, err } - if lastK == nil || lastV == nil { + if k == nil || v == nil { return 0, 0, nil } - return binary.BigEndian.Uint64(lastK), binary.BigEndian.Uint64(lastV), nil + return binary.BigEndian.Uint64(k), binary.BigEndian.Uint64(v), nil } func (TxNumsReader) First(tx kv.Tx) (blockNum, txNum uint64, err error) { c, err := tx.Cursor(kv.MaxTxNum) @@ -253,14 +253,14 @@ func (TxNumsReader) First(tx kv.Tx) (blockNum, txNum uint64, err error) { } defer c.Close() - lastK, lastV, err := c.First() + k, v, err := c.First() if err != nil { return 0, 0, err } - if lastK == nil || lastV == nil { + if k == nil || v == nil { return 0, 0, nil } - return binary.BigEndian.Uint64(lastK), binary.BigEndian.Uint64(lastV), nil + return binary.BigEndian.Uint64(k), binary.BigEndian.Uint64(v), nil } // LastKey @@ -355,7 +355,9 @@ func (i *MapTxNum2BlockNumIter) Next() (txNum, blockNum uint64, txIndex int, isF return } if !ok { - return txNum, i.blockNum, txIndex, isFinalTxn, blockNumChanged, fmt.Errorf("can't find blockNumber by txnID=%d", txNum) + _lb, _lt, _ := i.txNumsReader.Last(i.tx) + _fb, _ft, _ := i.txNumsReader.First(i.tx) + return txNum, i.blockNum, txIndex, isFinalTxn, blockNumChanged, fmt.Errorf("can't find blockNumber by txnID=%d; last in db: (%d-%d, %d-%d)", txNum, _fb, _lb, _ft, _lt) } } blockNum = i.blockNum diff --git a/erigon-lib/kv/stream/stream.go b/erigon-lib/kv/stream/stream.go index ca523451e20..4cb5179273e 100644 --- a/erigon-lib/kv/stream/stream.go +++ b/erigon-lib/kv/stream/stream.go @@ -66,9 +66,6 @@ func (it *ArrStream[V]) NextBatch() ([]V, error) { } func Range[T constraints.Integer](from, to T) *RangeIter[T] { - if from == to { - to++ - } return &RangeIter[T]{i: from, to: to} } diff --git a/erigon-lib/kv/stream/stream_test.go b/erigon-lib/kv/stream/stream_test.go index bc9550390f8..ff6e1f3e708 100644 --- a/erigon-lib/kv/stream/stream_test.go +++ b/erigon-lib/kv/stream/stream_test.go @@ -213,7 +213,7 @@ func TestRange(t *testing.T) { s1 := stream.Range[uint64](1, 1) res, err := stream.ToArray[uint64](s1) require.NoError(t, err) - require.Equal(t, []uint64{1}, res) + require.Empty(t, res) }) } diff --git a/turbo/cli/flags.go b/turbo/cli/flags.go index 03e0ae462b6..4c7822b1776 100644 --- a/turbo/cli/flags.go +++ b/turbo/cli/flags.go @@ -304,12 +304,12 @@ func ApplyFlagsForEthConfig(ctx *cli.Context, cfg *ethconfig.Config, logger log. // Full mode prunes all but the latest state if ctx.String(PruneModeFlag.Name) == "full" { mode.Blocks = prune.Distance(math.MaxUint64) - mode.History = prune.Distance(0) + mode.History = prune.Distance(config3.DefaultPruneDistance) } // Minimal mode prunes all but the latest state including blocks if ctx.String(PruneModeFlag.Name) == "minimal" { - mode.Blocks = prune.Distance(2048) // 2048 is just some blocks to allow reorgs - mode.History = prune.Distance(0) + mode.Blocks = prune.Distance(config3.DefaultPruneDistance) + mode.History = prune.Distance(config3.DefaultPruneDistance) } if err != nil {