Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
8249c83
Fixes 4 flaky test + refactors dbs (#10407)
LukaszRozmej Feb 5, 2026
e6099fa
Update Dockerfiles (#10409)
core-repository-dispatch-app[bot] Feb 5, 2026
20df135
parallelize txpool test + fixes for parallel blockchain tests (#10418)
LukaszRozmej Feb 5, 2026
5d3c8fb
XDC - Add custom state sync allocation strategy (#10399)
cicr99 Feb 6, 2026
bda0d34
ProcessingStats Extensibility (#10420)
svlachakis Feb 6, 2026
190f688
fix: correct Bytes.BytesComparer length comparison ordering (#10353)
asdacap Feb 6, 2026
d6befe8
Use CodeInfo type instead of ICodeInfo (#10423)
benaadams Feb 6, 2026
2a60251
Update CI workflows for Taiko/Surge integration tests (#10419)
jmadibekov Feb 6, 2026
8275feb
Parallelizable does not work on all XDC tests (#10431)
ak88 Feb 7, 2026
815c462
Add JitAsm tool to be able to analyse the Jit output (#10432)
benaadams Feb 7, 2026
96effe8
Update README with performance highlights of Nethermind (#10359)
MarekM25 Feb 7, 2026
9712ff0
Auto-update fast sync settings (#10449)
core-repository-dispatch-app[bot] Feb 8, 2026
81539e0
Update OP Superchain chains (#10448)
core-repository-dispatch-app[bot] Feb 8, 2026
129fcbf
Fix flaky tests: timing and race condition (#10455)
LukaszRozmej Feb 8, 2026
ae742a8
Metrics and BlockStatistics extension (#10429)
svlachakis Feb 8, 2026
cae3a54
AGENTS shouldn't be repetitive when adding code (#10460)
benaadams Feb 8, 2026
dee8ab4
more Agents changes (#10461)
LukaszRozmej Feb 9, 2026
875b5c5
CodeInfo Extension (#10467)
svlachakis Feb 9, 2026
209a112
fix: add missing yield break after shutdown response in `JsonRpcProce…
VolodymyrBg Feb 9, 2026
fcaf764
Fix fuzz issue (#10459)
benaadams Feb 9, 2026
ac2936e
Fix flaky network test (#10463)
benaadams Feb 9, 2026
6fb22fc
Update packages (#10421)
rubo Feb 9, 2026
a1f8d92
Remove redundant allocation in Rlp.Encode<T> when input is already Rl…
splinter012 Feb 10, 2026
e345deb
Add SeqlockCache (#10415)
benaadams Feb 10, 2026
f466fb5
Add ability to override block fields in debug_ calls (#10405)
flcl42 Feb 10, 2026
e0a2c3c
Align tx sending error code (#10464)
flcl42 Feb 10, 2026
d6097cc
Optimize transaction processing via encoded-tx trie root and fast blo…
benaadams Feb 10, 2026
2c4fd9f
chore: Update .NET packages (#10482)
rubo Feb 11, 2026
7b75ef3
Move tx block-format wrapping logic from BlockDecoder to TxDecoder (#…
benaadams Feb 11, 2026
b213b03
Update Dockerfiles (#10485)
core-repository-dispatch-app[bot] Feb 11, 2026
825bff4
fix: clear reference-type elements in Truncate to prevent pool memory…
phrwlk Feb 11, 2026
7b703b2
Remove Vault and NDM remnants (#5462) (#10478)
novaheic Feb 11, 2026
fd73930
Faster FastHash (#10410)
benaadams Feb 11, 2026
fa7b5dc
Optimize JSON-RPC request parsing and processing (#10453)
benaadams Feb 12, 2026
bd3af14
Fix BackgroundTaskScheduler queue overflow during block processing (#…
Copilot Feb 12, 2026
78808ff
Update Dockerfiles (#10493)
core-repository-dispatch-app[bot] Feb 12, 2026
bdd3a8b
fix: unsubscribe from BlocksProcessing in Dispose (#10499)
Olexandr88 Feb 12, 2026
6800745
Fix Kute Windows performance: disable proxy detection, fix file check…
kamilchodola Feb 12, 2026
618bf85
chore: Remove unused code across multiple modules (#10440)
MarekM25 Feb 12, 2026
7259648
fix(network): use TrySetResult in MessageQueue.Handle to prevent race…
VolodymyrBg Feb 12, 2026
57ca4f3
fix: fix operator precedence bug in VoteDecoder.GetContentLength (#10…
andrewshab3 Feb 13, 2026
00751cb
ci: add automatic PR labeling workflow (#10512)
benaadams Feb 13, 2026
9c24230
Remove redundant null check and duplicate array in Program.cs (#10506)
0xxFloki Feb 13, 2026
5a0503e
Use copy-on-write snapshots in MetricsController (#10501)
benaadams Feb 13, 2026
2fed56e
chore: remove redundant AddDatabase for BlobTransactions (#10510)
Forostovec Feb 13, 2026
ce3185f
perf: reduce block processing overhead via journal bypass and commit …
kamilchodola Feb 13, 2026
46ae4aa
SyncInfo decoder for XDC p2p (#10509)
ak88 Feb 13, 2026
1d7dede
Merge branch 'master' of https://github.com/NethermindEth/nethermind …
kamilchodola Feb 13, 2026
17d1a3e
Revert "Merge branch 'master' of https://github.com/NethermindEth/net…
kamilchodola Feb 14, 2026
3ea00e0
ci: add JsonRpc path pattern to PR labeler (#10526)
smartprogrammer93 Feb 14, 2026
308ba93
Log index (#8464)
alexb5dh Feb 16, 2026
6e387df
Auto-update fast sync settings (#10535)
core-repository-dispatch-app[bot] Feb 16, 2026
b470f23
Update OP Superchain chains (#10536)
core-repository-dispatch-app[bot] Feb 16, 2026
a180b9e
fix: fix malformed RLP encoding in L1OriginDecoder (#10525)
bobtajson Feb 17, 2026
87f984d
Update SurgeGasPriceOracle for Surge Shasta (#10290)
dipkakwani Feb 17, 2026
e3272a4
Estimate Gas fix (#10559)
svlachakis Feb 17, 2026
03286bc
Merge remote-tracking branch 'origin/master' into tmp/extcode-candida…
kamilchodola Feb 17, 2026
899da7b
test(evm): add extcode cache regressions for in-block code changes
kamilchodola Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/workflows/build-tools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
- Evm/Evm.slnx
- HiveCompare/HiveCompare.slnx
- HiveConsensusWorkflowGenerator/HiveConsensusWorkflowGenerator.slnx
- JitAsm/JitAsm.slnx
- Kute/Kute.slnx
# - SchemaGenerator/SchemaGenerator.slnx
- SendBlobs/SendBlobs.slnx
Expand Down
167 changes: 167 additions & 0 deletions .github/workflows/ci-surge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
name: "Surge Integration Tests"

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- "src/Nethermind/Nethermind.Taiko/**"
- ".github/workflows/ci-surge.yml"

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

jobs:
integration_tests:
if: >-
${{ github.event.pull_request.draft == false
&& !startsWith(github.head_ref, 'release-please') }}
name: Integration tests
runs-on: [ubuntu-latest]
timeout-minutes: 45
env:
SURGE_TAIKO_MONO_DIR: surge-taiko-mono
PACAYA_FORK_TAIKO_MONO_DIR: pacaya-fork-taiko-mono
SHASTA_FORK_TAIKO_MONO_DIR: shasta-fork-taiko-mono

steps:
- name: Checkout Nethermind
uses: actions/checkout@v6

- name: Checkout surge-taiko-mono
uses: actions/checkout@v6
with:
repository: NethermindEth/surge-taiko-mono
path: ${{ env.SURGE_TAIKO_MONO_DIR }}
ref: surge-shasta

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: ${{ env.SURGE_TAIKO_MONO_DIR }}/go.mod
cache: true

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
run_install: false

- name: Install Node.js
uses: actions/setup-node@v5
with:
node-version: 20
cache: pnpm
cache-dependency-path: ${{ env.SURGE_TAIKO_MONO_DIR }}/pnpm-lock.yaml

- name: Install dependencies
working-directory: ${{ env.SURGE_TAIKO_MONO_DIR }}
shell: bash
run: pnpm install

- name: Checkout Pacaya fork
uses: actions/checkout@v6
with:
repository: NethermindEth/surge-taiko-mono
path: >-
${{ format('{0}/{1}', env.SURGE_TAIKO_MONO_DIR,
env.PACAYA_FORK_TAIKO_MONO_DIR) }}
ref: jmadibekov/pacaya-dummy-verifiers-fix

- name: Checkout Shasta fork
uses: actions/checkout@v6
with:
repository: NethermindEth/surge-taiko-mono
path: >-
${{ format('{0}/{1}', env.SURGE_TAIKO_MONO_DIR,
env.SHASTA_FORK_TAIKO_MONO_DIR) }}
ref: surge-alethia-protocol-v3.0.0

- name: Install pnpm dependencies for pacaya fork taiko-mono
working-directory: >-
${{ format('{0}/{1}', env.SURGE_TAIKO_MONO_DIR,
env.PACAYA_FORK_TAIKO_MONO_DIR) }}
run: cd ./packages/protocol && pnpm install

- name: Install pnpm dependencies for shasta fork taiko-mono
working-directory: >-
${{ format('{0}/{1}', env.SURGE_TAIKO_MONO_DIR,
env.SHASTA_FORK_TAIKO_MONO_DIR) }}
run: cd ./packages/protocol && pnpm install

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Docker Build Nethermind Client
run: |
image_name="nethermindeth/nethermind"
image_tag="${GITHUB_SHA:0:8}"
full_image="${image_name}:${image_tag}"

echo "Building Docker image: ${full_image}"

docker buildx build . \
--platform linux/amd64 \
-f Dockerfile \
-t "${full_image}" \
--load \
--build-arg BUILD_CONFIG=release \
--build-arg CI=true \
--build-arg COMMIT_HASH=${{ github.sha }} \
--build-arg SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)

echo "IMAGE_TAG=${full_image}" >> $GITHUB_ENV

echo "Verifying image exists locally:"
docker images | grep "${image_name}" | grep "${image_tag}" || (echo "Error: Image not found locally" && exit 1)

- name: Install yq
run: |
sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
sudo chmod +x /usr/local/bin/yq
yq --version

- name: Update taiko-client docker-compose.yml with new image
working-directory: >-
${{ env.SURGE_TAIKO_MONO_DIR }}/packages/taiko-client/internal/docker/nodes
run: |
docker_compose_file="docker-compose.yml"
if [ -f "$docker_compose_file" ]; then
echo "Current image in docker-compose.yml:"
yq eval '.services.l2_nmc.image' "$docker_compose_file"

echo "Updating docker-compose.yml with image: ${IMAGE_TAG}"
yq eval '.services.l2_nmc.image = "'"${IMAGE_TAG}"'"' -i "$docker_compose_file"

yq eval '.services.l2_nmc.pull_policy = "never"' -i "$docker_compose_file"

echo "Updated image in docker-compose.yml:"
yq eval '.services.l2_nmc.image' "$docker_compose_file"

echo "Pull policy set to:"
yq eval '.services.l2_nmc.pull_policy' "$docker_compose_file"
else
echo "Warning: docker-compose.yml not found at expected path"
exit 1
fi

- name: Run integration tests
working-directory: >-
${{ env.SURGE_TAIKO_MONO_DIR }}/packages/taiko-client
env:
L2_NODE: l2_nmc
run: >-
SHASTA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.SURGE_TAIKO_MONO_DIR, env.SHASTA_FORK_TAIKO_MONO_DIR) }}
PACAYA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.SURGE_TAIKO_MONO_DIR, env.PACAYA_FORK_TAIKO_MONO_DIR) }}
make test

- name: Codecov.io
uses: codecov/codecov-action@v5
with:
files: ${{ env.SURGE_TAIKO_MONO_DIR }}/packages/taiko-client/coverage.out
flags: taiko-client
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
62 changes: 28 additions & 34 deletions .github/workflows/ci-taiko.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Nethermind/Ethereum Taiko Client CI Tests"
name: "Taiko Integration Tests"

on:
pull_request:
Expand All @@ -18,40 +18,32 @@ jobs:
&& !startsWith(github.head_ref, 'release-please') }}
name: Integration tests
runs-on: [ubuntu-latest]
timeout-minutes: 30
timeout-minutes: 45
env:
OLD_FORK_TAIKO_MONO_DIR: old-fork-taiko-mono
TAIKO_MONO_MAIN_DIR: taiko-mono-main
TAIKO_MONO_DIR: taiko-mono
PACAYA_FORK_TAIKO_MONO_DIR: pacaya-fork-taiko-mono
SHASTA_FORK_TAIKO_MONO_DIR: shasta-fork-taiko-mono

strategy:
matrix:
execution_node: [l2_nmc]

steps:
- uses: actions/checkout@v6
- name: Checkout Nethermind
uses: actions/checkout@v6

- uses: actions/checkout@v6
- name: Checkout taiko-mono
uses: actions/checkout@v6
with:
repository: NethermindEth/surge-taiko-mono
path: ${{ env.TAIKO_MONO_MAIN_DIR }}
ref: surge-shasta
repository: taikoxyz/taiko-mono
path: ${{ env.TAIKO_MONO_DIR }}
ref: main

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: ${{ env.TAIKO_MONO_MAIN_DIR }}/go.mod
go-version-file: ${{ env.TAIKO_MONO_DIR }}/go.mod
cache: true

- name: Set up Git to use HTTPS
shell: bash
run: |
git config --global url."https://github.com/".insteadOf "git@github.com:"

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
Expand All @@ -63,38 +55,40 @@ jobs:
with:
node-version: 20
cache: pnpm
cache-dependency-path: ${{ env.TAIKO_MONO_MAIN_DIR }}/pnpm-lock.yaml
cache-dependency-path: ${{ env.TAIKO_MONO_DIR }}/pnpm-lock.yaml

- name: Install dependencies
working-directory: ${{ env.TAIKO_MONO_MAIN_DIR }}
working-directory: ${{ env.TAIKO_MONO_DIR }}
shell: bash
run: pnpm install

- uses: actions/checkout@v6
- name: Checkout Pacaya fork
uses: actions/checkout@v6
with:
repository: taikoxyz/taiko-mono
path: >-
${{ format('{0}/{1}', env.TAIKO_MONO_MAIN_DIR,
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.PACAYA_FORK_TAIKO_MONO_DIR) }}
ref: taiko-alethia-protocol-v2.3.0-devnet-shasta-test

- uses: actions/checkout@v6
- name: Checkout Shasta fork
uses: actions/checkout@v6
with:
repository: taikoxyz/taiko-mono
path: >-
${{ format('{0}/{1}', env.TAIKO_MONO_MAIN_DIR,
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.SHASTA_FORK_TAIKO_MONO_DIR) }}
ref: taiko-alethia-protocol-v3.0.0

- name: Install pnpm dependencies for pacaya fork taiko-mono
working-directory: >-
${{ format('{0}/{1}', env.TAIKO_MONO_MAIN_DIR,
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.PACAYA_FORK_TAIKO_MONO_DIR) }}
run: cd ./packages/protocol && pnpm install

- name: Install pnpm dependencies for shasta fork taiko-mono
working-directory: >-
${{ format('{0}/{1}', env.TAIKO_MONO_MAIN_DIR,
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.SHASTA_FORK_TAIKO_MONO_DIR) }}
run: cd ./packages/protocol && pnpm install

Expand Down Expand Up @@ -132,7 +126,7 @@ jobs:

- name: Update taiko-client docker-compose.yml with new image
working-directory: >-
${{ env.TAIKO_MONO_MAIN_DIR }}/packages/taiko-client/internal/docker/nodes
${{ env.TAIKO_MONO_DIR }}/packages/taiko-client/internal/docker/nodes
run: |
docker_compose_file="docker-compose.yml"
if [ -f "$docker_compose_file" ]; then
Expand All @@ -154,20 +148,20 @@ jobs:
exit 1
fi

- name: Run Tests on ${{ matrix.execution_node }} execution engine
- name: Run integration tests
working-directory: >-
${{ env.TAIKO_MONO_MAIN_DIR }}/packages/taiko-client
${{ env.TAIKO_MONO_DIR }}/packages/taiko-client
env:
L2_NODE: ${{ matrix.execution_node }}
L2_NODE: l2_nmc
run: >-
SHASTA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.TAIKO_MONO_MAIN_DIR, env.SHASTA_FORK_TAIKO_MONO_DIR) }}
PACAYA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.TAIKO_MONO_MAIN_DIR, env.PACAYA_FORK_TAIKO_MONO_DIR) }}
SHASTA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.TAIKO_MONO_DIR, env.SHASTA_FORK_TAIKO_MONO_DIR) }}
PACAYA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.TAIKO_MONO_DIR, env.PACAYA_FORK_TAIKO_MONO_DIR) }}
make test

- name: Codecov.io
uses: codecov/codecov-action@v5
with:
files: ${{ env.TAIKO_MONO_MAIN_DIR }}/packages/taiko-client/coverage.out
files: ${{ env.TAIKO_MONO_DIR }}/packages/taiko-client/coverage.out
flags: taiko-client
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
Loading
Loading