Skip to content

Commit

Permalink
merge v3.0.0-rc1
Browse files Browse the repository at this point in the history
  • Loading branch information
blxdyx committed Mar 3, 2025
2 parents 6ab4572 + e3e858a commit 3d5a7c1
Show file tree
Hide file tree
Showing 96 changed files with 957 additions and 1,079 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/qa-clean-exit-block-downloading.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
# - cron: '0 8 * * 1-6' # Run every day at 08:00 AM UTC except Sunday
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
clean-exit-bd-test:
runs-on: [self-hosted, Erigon3]
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/qa-clean-exit-snapshot-downloading.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ on:
# - ready_for_review
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
clean-exit-sd-test:
runs-on: self-hosted
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/qa-rpc-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: QA - RPC Integration Tests

on:
workflow_dispatch: # Run manually
# push:
# branches:
# - main
Expand All @@ -11,10 +10,8 @@ on:
# - main
# - 'release/3.*'
# types:
# - opened
# - reopened
# - synchronize
# - ready_for_review
# workflow_dispatch: # Run manually

jobs:
integration-test-suite:
Expand Down Expand Up @@ -155,4 +152,3 @@ jobs:
run: |
echo "::error::Error detected during tests"
exit 1
4 changes: 4 additions & 0 deletions .github/workflows/qa-snap-download.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
# - cron: '0 20 * * 1-6' # Run every night at 20:00 (08:00 PM) UTC except Sunday
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
snap-download-test:
runs-on: self-hosted
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/qa-sync-from-scratch-minimal-node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
# - cron: '0 0 * * *' # Run every night at 00:00 AM UTC
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
minimal-node-sync-from-scratch-test:
runs-on: self-hosted
Expand Down
63 changes: 49 additions & 14 deletions .github/workflows/qa-sync-with-externalcl.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,34 @@
name: QA - Sync with external CL

on:
# schedule:
# - cron: '0 0 * * *' # Run every night at 00:00 AM UTC
# push:
# branches:
# - 'release/3.*'
# schedule:
# - cron: '0 8 * * 0' # Run on Sunday at 08:00 AM UTC
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
prysm-minimal-node-sync-from-scratch-test:
runs-on: self-hosted
timeout-minutes: 360 # 6 hours
sync-with-externalcl:
runs-on: [self-hosted, linux, X64]
timeout-minutes: 500 # 8+ hours
strategy:
matrix:
client: [lighthouse, prysm]
chain: [mainnet, gnosis]
exclude:
- client: prysm
chain: gnosis
env:
ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data
CL_DATA_DIR: ${{ github.workspace }}/consensus
ERIGON_QA_PATH: /home/qarunner/erigon-qa
TRACKING_TIME_SECONDS: 7200 # 2 hours
TOTAL_TIME_SECONDS: 18000 # 5 hours
CHAIN: mainnet
TRACKING_TIME_SECONDS: 3600 # 1 hour
TOTAL_TIME_SECONDS: 25200 # 7 hours

steps:
- name: Check out repository
Expand All @@ -25,6 +39,19 @@ jobs:
make clean
rm -rf $ERIGON_DATA_DIR
- name: Install ${{ matrix.client }} and generate JWT secret
run: |
mkdir -p $CL_DATA_DIR
if [ "${{ matrix.client }}" == "lighthouse" ]; then
curl -LO https://github.com/sigp/lighthouse/releases/download/v7.0.0-beta.0/lighthouse-v7.0.0-beta.0-x86_64-unknown-linux-gnu.tar.gz
tar -xvf lighthouse-v7.0.0-beta.0-x86_64-unknown-linux-gnu.tar.gz -C $CL_DATA_DIR
rm lighthouse-v7.0.0-beta.0-x86_64-unknown-linux-gnu.tar.gz
elif [ "${{ matrix.client }}" == "prysm" ]; then
curl -L https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh -o $CL_DATA_DIR/prysm.sh
chmod +x $CL_DATA_DIR/prysm.sh
fi
openssl rand -hex 32 > $CL_DATA_DIR/jwt.hex
- name: Build Erigon
run: |
make erigon
Expand All @@ -41,7 +68,7 @@ jobs:
# Run Erigon, wait sync and check ability to maintain sync
python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py \
${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon3 $CHAIN minimal_node no_statistics prysm
${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon3 ${{ matrix.chain }} minimal_node no_statistics ${{ matrix.client }} $CL_DATA_DIR
# Capture monitoring script exit status
test_exit_status=$?
Expand All @@ -67,26 +94,33 @@ jobs:
--repo erigon \
--commit $(git rev-parse HEAD) \
--branch ${{ github.ref_name }} \
--test_name sync-from-scratch-prysm-minimal-node \
--chain $CHAIN \
--test_name sync-from-scratch-${{ matrix.client }}-minimal-node \
--chain ${{ matrix.chain }} \
--runner ${{ runner.name }} \
--outcome $TEST_RESULT \
--result_file ${{ github.workspace }}/result-$CHAIN.json
--result_file ${{ github.workspace }}/result-${{ matrix.chain }}.json
- name: Upload test results
if: steps.test_step.outputs.test_executed == 'true'
uses: actions/upload-artifact@v4
with:
name: test-results
name: test-results-${{ matrix.client }}-${{ matrix.chain }}
path: |
${{ github.workspace }}/result-${{ env.CHAIN }}.json
${{ github.workspace }}/result-${{ matrix.chain }}.json
${{ github.workspace }}/erigon_data/logs/erigon.log
${{ matrix.client == 'lighthouse' && '$CL_DATA_DIR/data/beacon/logs/beacon.log' || '' }}
${{ matrix.client == 'prysm' && '$CL_DATA_DIR/data/beacon.log' || '' }}
- name: Clean up Erigon data directory
if: always()
run: |
rm -rf $ERIGON_DATA_DIR
- name: Cleanup consensus runner directory
if: always()
run: |
rm -rf $CL_DATA_DIR
- name: Resume the Erigon instance dedicated to db maintenance
run: |
python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true
Expand All @@ -100,3 +134,4 @@ jobs:
run: |
echo "::error::Error detected during tests"
exit 1
4 changes: 4 additions & 0 deletions .github/workflows/qa-tip-tracking-gnosis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
# - cron: '0 0 * * 1-6' # Run every night at 00:00 AM UTC except Sunday
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
tip-tracking-test:
runs-on: [self-hosted, Gnosis]
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/qa-tip-tracking-polygon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ on:
# - cron: '0 0 * * 1-6' # Run every night at 00:00 AM UTC except Sunday
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
tip-tracking-test:
runs-on: [self-hosted, Polygon]
timeout-minutes: 600
timeout-minutes: 800
env:
ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
ERIGON_TESTBED_DATA_DIR: /opt/erigon-testbed/datadir
Expand Down
20 changes: 15 additions & 5 deletions .github/workflows/qa-tip-tracking.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,17 @@ on:
# - cron: '0 20 * * 1-6' # Run every night at 08:00 PM UTC except Sunday
workflow_dispatch: # Run manually

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
tip-tracking-test:
runs-on: [self-hosted, Erigon3]
timeout-minutes: 600
env:
ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
ERIGON_TESTBED_AREA: /opt/erigon-testbed
ERIGON_QA_PATH: /home/qarunner/erigon-qa
TRACKING_TIME_SECONDS: 14400 # 4 hours
TOTAL_TIME_SECONDS: 28800 # 8 hours
Expand All @@ -36,9 +41,10 @@ jobs:
run: |
python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true
- name: Clean Erigon Chaindata Directory
- name: Save Erigon Chaindata Directory
id: save_chaindata_step
run: |
rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
mv $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev
- name: Run Erigon, wait sync and check ability to maintain sync
id: test_step
Expand Down Expand Up @@ -115,12 +121,16 @@ jobs:
name: metric-plots
path: ${{ github.workspace }}/metrics-${{ env.CHAIN }}-plots*

- name: Clean Erigon Chaindata Directory
if: always()
- name: Restore Erigon Chaindata Directory
if: ${{ always() }}
run: |
rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ]; then
rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
fi
- name: Resume the Erigon instance dedicated to db maintenance
if: ${{ always() }}
run: |
python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ env:
TEST_TRACKING_TIME_SECONDS: 7200 # 2 hours
TEST_TOTAL_TIME_SECONDS: 432000 # 5 days
TEST_CHAIN: "bsc"
BUILDER_IMAGE: "golang:1.22-bookworm"
BUILDER_IMAGE: "golang:1.23-bookworm"
DOCKER_BASE_IMAGE: "debian:12.8-slim"
APP_REPO: "node-real/bsc-erigon"
PACKAGE: "github.com/erigontech/erigon"
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/scripts/run_rpc_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ set +e # Disable exit on error

# Array of disabled tests
disabled_tests=(
# Failing after the PR https://github.com/erigontech/erigon/pull/13903 - diff is only an error message in the result
eth_estimateGas/test_14.json
# Failing after the PR https://github.com/erigontech/erigon/pull/13617 that fixed this incompatibility
# issues https://hive.pectra-devnet-5.ethpandaops.io/suite.html?suiteid=1738266984-51ae1a2f376e5de5e9ba68f034f80e32.json&suitename=rpc-compat
net_listening/test_1.json
Expand Down
27 changes: 26 additions & 1 deletion ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,32 @@
ChangeLog
---------

## v3.0.0-beta2 (in development)
## v3.0.0 (in development)

**Improvements:**

- Schedule Pectra for Chiado by @yperbasis in https://github.com/erigontech/erigon/pull/13898
- stagedsync: dbg option to log receipts on receipts hash mismatch (#13905) by @taratorio in https://github.com/erigontech/erigon/pull/13940
- Introduces a new method for estimating transaction gas that targets the maximum gas a contract could use (#13913). Fixes eth_estimateGas for historical blocks (#13903) by @somnathb1 in https://github.com/erigontech/erigon/pull/13916

**Bugfixes:**

- rpcdaemon: Show state sync transactions in eth_getLogs (#13924) by @shohamc1 in https://github.com/erigontech/erigon/pull/13951
- polygon/heimdall: fix snapshot store last entity to check in snapshots too (#13845) by @taratorio in https://github.com/erigontech/erigon/pull/13938
- Implemented wait if heimdall is not synced to the chain (#13807) by @taratorio in https://github.com/erigontech/erigon/pull/13939

**Bugfixes:**

- polygon: `eth_getLogs` if search by filters - doesn't return state-sync (state-sync events are not indexed yet). Without filter can see state-sync events. In `eth_getReceipts` also can see. [Will](https://github.com/erigontech/erigon/issues/14003) release fixed files in E3.1
- polygon: `eth_getLogs` state-sync events have incorrect `index` field. [Will](https://github.com/erigontech/erigon/issues/14003) release fixed files in E3.1

### TODO

- milestones:
https://github.com/erigontech/erigon/milestone/34
https://github.com/erigontech/erigon/milestone/30

## v3.0.0-beta2

### Breaking changes
- Reverts Optimize gas by default in eth_createAccessList #8337
Expand Down
Loading

0 comments on commit 3d5a7c1

Please sign in to comment.