Skip to content

Commit dda2ff6

Browse files
committed
Merge branch 'main' into alex/mdbx_lag_34
2 parents 02a7c0a + b2ba91e commit dda2ff6

File tree

84 files changed

+1339
-723
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1339
-723
lines changed

.github/workflows/qa-rpc-integration-tests-latest.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ jobs:
5656
working-directory: ${{ github.workspace }}
5757

5858
- name: Wait for current Erigon instance to reach the tip
59+
id: preparing_step
5960
run: |
6061
ERIGON_PID=$(pgrep -x erigon | head -1)
6162
if [ -z "$ERIGON_PID" ]; then
@@ -68,6 +69,13 @@ jobs:
6869
--erigon-pid=$ERIGON_PID
6970
fi
7071
72+
- name: Upload preparing-step logs on failure
73+
if: failure() && steps.preparing_step.outcome == 'failure'
74+
uses: actions/upload-artifact@v6
75+
with:
76+
name: preparing-step-logs
77+
path: ${{ env.ERIGON_REFERENCE_DATA_DIR }}/logs/
78+
7179
- name: Pause the Erigon instance dedicated to db maintenance
7280
run: |
7381
python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

.github/workflows/test-all-erigon.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363

6464
steps:
6565
- name: Cleanup space on Linux runner
66-
if: runner.os == 'Linux' && needs.source-of-changes.outputs.changed_files != 'true'
66+
if: needs.source-of-changes.outputs.changed_files != 'true'
6767
run: |
6868
rm -fr /opt/az \
6969
/opt/microsoft \

.github/workflows/test-hive-eest.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,13 @@ jobs:
6161
# Only login if we can. Workflow works without it but we want to avoid
6262
# rate limiting by Docker Hub when possible. External repos don't
6363
# have access to our Docker secrets.
64+
# continue-on-error: transient Docker Hub network timeouts should not
65+
# abort the entire workflow — the run proceeds without login (unlogged pull).
6466
if: |
6567
github.repository == 'erigontech/erigon' &&
6668
github.actor != 'dependabot[bot]' &&
6769
(github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork)
70+
continue-on-error: true
6871
uses: docker/login-action@v3
6972
with:
7073
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}

.github/workflows/test-hive.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,13 @@ jobs:
8383
# Only login if we can. Workflow works without it but we want to avoid
8484
# rate limiting by Docker Hub when possible. External repos don't
8585
# have access to our Docker secrets.
86+
# continue-on-error: transient Docker Hub network timeouts should not
87+
# abort the entire workflow — the run proceeds without login (unlogged pull).
8688
if: |
8789
github.repository == 'erigontech/erigon' &&
8890
github.actor != 'dependabot[bot]' &&
8991
(github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork)
92+
continue-on-error: true
9093
uses: docker/login-action@v3
9194
with:
9295
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}

.github/workflows/test-kurtosis-assertoor.yml

Lines changed: 82 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ name: Kurtosis Assertoor GitHub Action
33
env:
44
DOCKERHUB_REPOSITORY: "erigontech/erigon"
55
APP_REPO: "erigontech/erigon"
6+
# Pinned versions of third-party containers — bump here when upgrading.
7+
# These are cached via actions/cache (docker save/load) to avoid re-pulling
8+
# on every run and to eliminate Docker Hub rate-limit exposure.
9+
LIGHTHOUSE_IMAGE: "sigp/lighthouse:v7.0.1"
10+
TEKU_IMAGE: "consensys/teku:25.9.1"
11+
ASSERTOOR_IMAGE: "ethpandaops/assertoor:v0.0.17"
612

713
on:
814
push:
@@ -35,18 +41,54 @@ jobs:
3541
# Only login if we can. Workflow works without it but we want to avoid
3642
# rate limiting by Docker Hub when possible. External repos don't
3743
# have access to our Docker secrets.
44+
# continue-on-error: transient Docker Hub network timeouts should not
45+
# abort the entire workflow — the run proceeds without login (unlogged pull).
3846
if: |
3947
github.repository == 'erigontech/erigon' &&
4048
github.actor != 'dependabot[bot]' &&
4149
(github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork)
50+
continue-on-error: true
4251
uses: docker/login-action@v3
4352
with:
4453
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}
4554
password: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}
4655

47-
- name: Docker build current branch
56+
- name: Set up Docker Buildx
57+
uses: docker/setup-buildx-action@v3
58+
59+
- name: Restore cached third-party containers
60+
id: cache-cl-images
61+
uses: actions/cache@v4
62+
with:
63+
path: /tmp/docker-cache
64+
key: docker-cl-${{ env.LIGHTHOUSE_IMAGE }}-${{ env.TEKU_IMAGE }}-${{ env.ASSERTOOR_IMAGE }}
65+
66+
- name: Load cached containers into daemon
67+
if: steps.cache-cl-images.outputs.cache-hit == 'true'
4868
run: |
49-
docker build -t test/erigon:current .
69+
docker load -i /tmp/docker-cache/lighthouse.tar
70+
docker load -i /tmp/docker-cache/teku.tar
71+
docker load -i /tmp/docker-cache/assertoor.tar
72+
73+
- name: Pull third-party containers and save to cache
74+
if: steps.cache-cl-images.outputs.cache-hit != 'true'
75+
run: |
76+
mkdir -p /tmp/docker-cache
77+
docker pull ${{ env.LIGHTHOUSE_IMAGE }}
78+
docker pull ${{ env.TEKU_IMAGE }}
79+
docker pull ${{ env.ASSERTOOR_IMAGE }}
80+
docker save ${{ env.LIGHTHOUSE_IMAGE }} -o /tmp/docker-cache/lighthouse.tar
81+
docker save ${{ env.TEKU_IMAGE }} -o /tmp/docker-cache/teku.tar
82+
docker save ${{ env.ASSERTOOR_IMAGE }} -o /tmp/docker-cache/assertoor.tar
83+
84+
- name: Build erigon Docker image (with BuildKit layer cache)
85+
uses: docker/build-push-action@v6
86+
with:
87+
context: .
88+
load: true
89+
tags: test/erigon:current
90+
cache-from: type=gha,scope=kurtosis-erigon-build
91+
cache-to: type=gha,mode=max,scope=kurtosis-erigon-build
5092

5193
- name: Run regular Kurtosis + assertoor tests
5294
uses: ethpandaops/kurtosis-assertoor-github-action@v1
@@ -76,18 +118,54 @@ jobs:
76118
# Only login if we can. Workflow works without it but we want to avoid
77119
# rate limiting by Docker Hub when possible. External repos don't
78120
# have access to our Docker secrets.
121+
# continue-on-error: transient Docker Hub network timeouts should not
122+
# abort the entire workflow — the run proceeds without login (unlogged pull).
79123
if: |
80124
github.repository == 'erigontech/erigon' &&
81125
github.actor != 'dependabot[bot]' &&
82126
(github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork)
127+
continue-on-error: true
83128
uses: docker/login-action@v3
84129
with:
85130
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}
86131
password: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}
87132

88-
- name: Docker build current branch
133+
- name: Set up Docker Buildx
134+
uses: docker/setup-buildx-action@v3
135+
136+
- name: Restore cached third-party containers
137+
id: cache-cl-images
138+
uses: actions/cache@v4
139+
with:
140+
path: /tmp/docker-cache
141+
key: docker-cl-${{ env.LIGHTHOUSE_IMAGE }}-${{ env.TEKU_IMAGE }}-${{ env.ASSERTOOR_IMAGE }}
142+
143+
- name: Load cached containers into daemon
144+
if: steps.cache-cl-images.outputs.cache-hit == 'true'
89145
run: |
90-
docker build -t test/erigon:current .
146+
docker load -i /tmp/docker-cache/lighthouse.tar
147+
docker load -i /tmp/docker-cache/teku.tar
148+
docker load -i /tmp/docker-cache/assertoor.tar
149+
150+
- name: Pull third-party containers and save to cache
151+
if: steps.cache-cl-images.outputs.cache-hit != 'true'
152+
run: |
153+
mkdir -p /tmp/docker-cache
154+
docker pull ${{ env.LIGHTHOUSE_IMAGE }}
155+
docker pull ${{ env.TEKU_IMAGE }}
156+
docker pull ${{ env.ASSERTOOR_IMAGE }}
157+
docker save ${{ env.LIGHTHOUSE_IMAGE }} -o /tmp/docker-cache/lighthouse.tar
158+
docker save ${{ env.TEKU_IMAGE }} -o /tmp/docker-cache/teku.tar
159+
docker save ${{ env.ASSERTOOR_IMAGE }} -o /tmp/docker-cache/assertoor.tar
160+
161+
- name: Build erigon Docker image (with BuildKit layer cache)
162+
uses: docker/build-push-action@v6
163+
with:
164+
context: .
165+
load: true
166+
tags: test/erigon:current
167+
cache-from: type=gha,scope=kurtosis-erigon-build
168+
cache-to: type=gha,mode=max,scope=kurtosis-erigon-build
91169

92170
- name: Run Pectra Kurtosis + assertoor tests
93171
uses: ethpandaops/kurtosis-assertoor-github-action@v1

cl/beacon/beaconhttp/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ func isNil[T any](t T) bool {
175175
v := reflect.ValueOf(t)
176176
kind := v.Kind()
177177
// Must be one of these types to be nillable
178-
return (kind == reflect.Ptr ||
178+
return (kind == reflect.Pointer ||
179179
kind == reflect.Interface ||
180180
kind == reflect.Slice ||
181181
kind == reflect.Map ||

cl/phase1/network/backward_beacon_downloader.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@
1717
package network
1818

1919
import (
20+
"context"
2021
"math"
2122
"sync"
2223
"sync/atomic"
2324
"time"
2425

25-
"golang.org/x/net/context"
26-
2726
"github.com/erigontech/erigon/cl/cltypes"
2827
"github.com/erigontech/erigon/cl/persistence/base_encoding"
2928
"github.com/erigontech/erigon/cl/persistence/beacon_indicies"

cl/phase1/network/beacon_downloader.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@
1717
package network
1818

1919
import (
20+
"context"
2021
"errors"
2122
"sync"
2223
"sync/atomic"
2324
"time"
2425

25-
"golang.org/x/net/context"
26-
2726
"github.com/erigontech/erigon/cl/cltypes"
2827
"github.com/erigontech/erigon/cl/rpc"
2928
"github.com/erigontech/erigon/cl/sentinel/peers"

cl/phase1/network/blobs.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717
package network
1818

1919
import (
20+
"context"
2021
"errors"
2122
"sync/atomic"
2223
"time"
2324

24-
"golang.org/x/net/context"
25-
2625
"github.com/erigontech/erigon/cl/clparams"
2726
"github.com/erigontech/erigon/cl/cltypes"
2827
"github.com/erigontech/erigon/cl/cltypes/solid"

cl/phase1/network/gossip/gossip_message_register.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package gossip
22

33
import (
4+
"context"
45
"fmt"
56

67
"github.com/erigontech/erigon/cl/clparams"
78
serviceintf "github.com/erigontech/erigon/cl/phase1/network/services/service_interface"
89
pubsub "github.com/libp2p/go-libp2p-pubsub"
910
"github.com/libp2p/go-libp2p/core/peer"
10-
"golang.org/x/net/context"
1111
)
1212

1313
func RegisterGossipService[T any](gm *GossipManager, service serviceintf.Service[T], conditions ...ConditionFunc) {

0 commit comments

Comments
 (0)