Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
83bf2d4
dockerfile for e2e framework
greg-szabo May 23, 2025
d684d31
Introduce runner and override makeConfig
greg-szabo May 29, 2025
13c5603
override makeGenesis in runner
greg-szabo Jun 3, 2025
e8eee74
Added indexes to validator deposits
greg-szabo Jun 5, 2025
ca02cc1
Added eth-genesis generation
greg-szabo Jun 15, 2025
07088a1
Added geth node to docker network
greg-szabo Jun 16, 2025
1a86e59
Update scripts/build/testing.mk
greg-szabo Jun 18, 2025
5de8de1
Added load to geth using polycli
greg-szabo Jun 19, 2025
338c208
Upgraded Polycli
greg-szabo Jun 23, 2025
599244c
Added simple and ci manifests
greg-szabo Jun 24, 2025
3b6322a
Added monitoring folder and supporting Makefile targets
greg-szabo Jun 27, 2025
c23658c
Simple tests added with README
greg-szabo Jun 27, 2025
95b9ec3
Reorganized files
Jul 7, 2025
644b73a
Added back new line
Jul 7, 2025
f691f28
Merge branch 'greg/dockerfile' into greg/config
Jul 7, 2025
d0ee5b8
REnamed commands
Jul 7, 2025
2fbb27b
Merge branch 'greg/config' into greg/genesis
Jul 7, 2025
61c9e7d
Merge pull request #2 from informalsystems/greg/dockerfile
jmalicevic Jul 7, 2025
47857cc
Merge pull request #3 from informalsystems/greg/config
jmalicevic Jul 7, 2025
8fdb462
Merge branch 'greg/e2e-framework' into greg/genesis
Jul 7, 2025
eab0483
Reverted the exporting of executableDataToExecutionPayloadHeader
Jul 8, 2025
2f0faf8
Renamed function and reverted exporting of WriteDepositStorage
Jul 8, 2025
4852763
Added comments on exported functions
Jul 8, 2025
cbd2ace
Merge pull request #4 from informalsystems/greg/genesis
jmalicevic Jul 8, 2025
334aa5a
Merge pull request #5 from informalsystems/greg/geth
jmalicevic Jul 8, 2025
c982f19
Merged latest from e2e-framework
Jul 8, 2025
a7afc67
changed access mode for binary
Jul 8, 2025
27c8e78
Made policli work with load command, added command to stop load
Jul 9, 2025
3fdbe74
Added load command to the benchmark command
Jul 9, 2025
bc63d85
Merge pull request #6 from informalsystems/greg/load
jmalicevic Jul 9, 2025
7342245
Renaming commands
Jul 9, 2025
908fcff
Merge pull request #8 from informalsystems/greg/ci
jmalicevic Jul 9, 2025
506b012
Merge branch 'greg/e2e-framework' into greg/monitoring
Jul 9, 2025
8ba59fa
Merge pull request #12 from informalsystems/greg/monitoring
jmalicevic Jul 9, 2025
64a72fd
Merge branch 'greg/e2e-framework' into greg/tests
Jul 9, 2025
dc121a8
Added ci.toml github workflow
Jul 10, 2025
ddd5657
Edit of workflow file
Jul 10, 2025
38583d1
Reverted pipeline.yml deletion
Jul 10, 2025
82ad39b
Increased timeout
Jul 10, 2025
5b978d0
Increased timeout
Jul 10, 2025
accc86f
docker buildx-action
Jul 14, 2025
ac99704
depends on vlaidator service
Jul 14, 2025
da3d5c6
Increased timeout and start geth after validator
Jul 14, 2025
35643fc
-
Jul 14, 2025
baf6581
-
Jul 14, 2025
4f1f149
-
Jul 14, 2025
46c3606
-
Jul 14, 2025
3dc751b
-
Jul 14, 2025
7eaa74a
-
Jul 14, 2025
27f99c5
-
Jul 14, 2025
91531ef
Added test for beacon-kit client
Jul 16, 2025
4a8b3aa
Added validators test
Jul 16, 2025
7ecb0f8
edited workflow
Jul 16, 2025
ee45996
Trying to replace docker.host.internal with host-gateway
Jul 16, 2025
fa5ad31
FIxed path
Jul 16, 2025
531a9d6
-
Jul 16, 2025
5ea25e1
-
Jul 16, 2025
fc01532
Automated port for beacon node-api
Jul 16, 2025
0171e61
Use ci.toml in ci
Jul 17, 2025
86b9fe7
Restructured folders
Jul 22, 2025
4738562
Edite target branch for github actions workflow
Jul 22, 2025
f511384
Removed toplevel tests folder
Jul 22, 2025
31a134c
Reverted docker host URL to match github actions
Jul 22, 2025
2be3fb3
Merge pull request #10 from informalsystems/greg/tests
jmalicevic Jul 22, 2025
51998c8
Applied albertos patch
jmalicevic Aug 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/workflows/berachain_release.asc
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEZ+LjPBYJKwYBBAHaRw8BAQdAUC2qlsvItL8t4akbGGnW4Qejm065ZF6E1Xgr
si3fELe0IGFCZWFyIChyaykgPGFiZWFyQGJlcmFjaGFpbi5jb20+iJkEExYKAEEW
IQSFe1Hdzfli8ODkZR5h2onr6vnIPgUCZ+LjPAIbAwUJAE8aAAULCQgHAgIiAgYV
CgkICwIEFgIDAQIeBwIXgAAKCRBh2onr6vnIPimlAP9mjBwKkVVURdiXhT/OwhRP
tIoveDnEAQCvZAfvLZot9wD8DOVkyNAK5EJRG3z91YwAEghIx7TQEQXXwDTR7yJR
EgG4OARn4uM8EgorBgEEAZdVAQUBAQdAEpsRaZZxPghURnbHFsfDDZfQw/doSZ3A
ejTMsnk6uwoDAQgHiH4EGBYKACYWIQSFe1Hdzfli8ODkZR5h2onr6vnIPgUCZ+Lj
PAIbDAUJAE8aAAAKCRBh2onr6vnIPiQZAP0bf/FX33JAI2hELAfMu6Chj6//zLp/
0Qx6ZzNPqRVkYgD+O53oMVoLJIxf1apXll/H0MVbWq8Gk4G/CUclVCpO/A4=
=wqSB
mDMEaIky1hYJKwYBBAHaRw8BAQdAnxP3mNWC+miF0OKvOg4+BzzswbrTWLbluSJU
+NBib3q0H2NhbGJlcmEgPGNhbGJlcmFAYmVyYWNoYWluLmNvbT6ImQQTFgoAQRYh
BPzFjSePGuMIYGS4P/GUiPGD4kvxBQJoiTLWAhsDBQkAdqcABQsJCAcCAiICBhUK
CQgLAgQWAgMBAh4HAheAAAoJEPGUiPGD4kvxA9oBANZQa+Q6UlhDPLOOhchdPSi7
lmBE+za+5u5Q3bA7ZO8rAP46R+a1AxHqeLrShhkTvJwTG+qGvfS/LtHfNYLHqOQw
Bbg4BGiJMtYSCisGAQQBl1UBBQEBB0A6onCspxjhXI7X13LHlUYQxYVyzUDamgVP
hXYTLZ1QEAMBCAeIfgQYFgoAJhYhBPzFjSePGuMIYGS4P/GUiPGD4kvxBQJoiTLW
AhsMBQkAdqcAAAoJEPGUiPGD4kvxWOAA/0IedfbPuCJU/IWo+gxCZMl9Fb7oVA4L
v9lMBtnspGsxAQDRX3fFP/Bv96wHlUWQHg01TSaWNyTQa5dTpjEcLxnXCQ==
=L8oL
-----END PGP PUBLIC KEY BLOCK-----
32 changes: 32 additions & 0 deletions .github/workflows/comet_e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Run Multiple Single Network

on:
workflow_dispatch:
push:
branches:
- main
pull_request:

jobs:
run-multiple-single:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.23.6"

- name: Show Docker and Docker Compose version
run: |
docker --version
docker compose version

- name: Build cmt-e2e
run: make build-cmt-e2e

- name: Run run-multiple.sh with ci.toml
run: make test-e2e-ci-no-build
12 changes: 3 additions & 9 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,6 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage-merged.txt

# Upload coverage for forge tests
- name: Upload Forge Test Coverage to Codecov
if: ${{ matrix.args == 'test-forge-cover' }}
uses: codecov/codecov-action@v2
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: test-forge-cover.txt

# -------------------------------------------------------------------------- #
# E2E Testing #
# -------------------------------------------------------------------------- #
Expand Down Expand Up @@ -195,6 +187,8 @@ jobs:
permissions:
id-token: write
contents: read
packages: write
attestations: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
Expand Down Expand Up @@ -229,7 +223,7 @@ jobs:
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GHCR_TOKEN }}
password: ${{ secrets.GITHUB_TOKEN }}

- if: ${{ env.PUSH_DOCKER_IMAGE == 'true' }}
name: Push Docker image
Expand Down
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ go.work.sum
# .nfs files are created when an open file is removed but is still being accessed
.nfs*

# Version files created during code generation
v*.*.*

###########
# Windows #
###########
Expand Down Expand Up @@ -238,3 +241,11 @@ temp-test-unit-cover.txt

# server dev env for Air
.air.toml

# e2e framework
testing/monitoring/data-grafana/
testing/monitoring/data-prometheus/
testing/monitoring/prometheus.yml
testing/networks/single/
testing/networks/simple/
testing/networks/ci/
4 changes: 4 additions & 0 deletions .golangci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ run:
timeout: 3m
build-tags: ["test"]

skip-dirs:
- ^testing/cmt_e2e/runner # skip all runner content, mainly copies of cometbft/e2e/runner
- ^testing/cmt_e2e/test # temporary: TODO: run linter over tests


# This file contains only configs which differ from defaults.
# All possible options can be found here https://github.com/golangci/golangci-lint/blob/master/.golangci.reference.yml
Expand Down
10 changes: 10 additions & 0 deletions .mockery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,13 @@ packages:
recursive: False
with-expecter: true
include-regex: ExecutionEngine
github.com/berachain/beacon-kit/beacon/blockchain:
config:
recursive: False
with-expecter: true
include-regex: LocalBuilder
github.com/berachain/beacon-kit/node-api/handlers/beacon:
config:
recursive: False
with-expecter: true
include-regex: ^Backend$
68 changes: 68 additions & 0 deletions Dockerfile.e2e
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# syntax=docker/dockerfile:1
# check=skip=SecretsUsedInArgOrEnv
#
# Copyright (C) 2022, Berachain Foundation. All rights reserved.
# See the file LICENSE for licensing terms.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#######################################################
### Stage 0 - Build Arguments ###
#######################################################

ARG IMAGE_NAME=beacond
ARG VERSION=local-version

FROM ${IMAGE_NAME}:${VERSION}

###########################################################################
### Stage 1 - Add entrypoint_cmt_e2e.sh requirements to beacond ###
###########################################################################

# Copy beacond because entrypoint_cmt_e2e.sh searches in ./build/bin
RUN mkdir -p /build/bin && cp /usr/bin/beacond /build/bin

# Add files used by entrypoint_cmt_e2e.sh. Start the build process from the testing folder.
COPY files/ /testing/files/
COPY networks/ /testing/networks/
COPY files/entrypoint_cmt_e2e.sh /usr/bin/entrypoint-builtin
RUN chmod +x /usr/bin/entrypoint-builtin

# Configure entrypoint_cmt_e2e.sh
ENV RPC_PREFIX="http://"
ENV RPC_DIAL_URL="172.17.0.1:8551"
# For local runs on macos:
#"host.docker.internal:8551"
# for CI this is the address of the docker host:
#"172.17.0.1:8551"

ENV NON_INTERACTIVE=1
ENV JWT_SECRET_PATH="/testing/files/jwt.hex"

###########################################################################
### Stage 2 - Add consensus e2e test details to beacond ###
###########################################################################

# Add iputils-ping and iproute2 for simulated network delay.
RUN apk add --no-cache iputils-ping iproute2

# Set up runtime directory.
WORKDIR /
VOLUME /cometbft
ENV CMTHOME=/cometbft
ENV HOMEDIR=/cometbft
ENV GORACE="halt_on_error=1"

EXPOSE 26656 26657 26660 6060 3500
ENTRYPOINT ["/testing/files/entrypoint_cmt_e2e.sh"]
CMD ["devnet"]
STOPSIGNAL SIGTERM
42 changes: 42 additions & 0 deletions Dockerfile.polycli
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# syntax=docker/dockerfile:1
#
# Copyright (C) 2022, Berachain Foundation. All rights reserved.
# See the file LICENSE for licensing terms.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#######################################################
### Stage 0 - Build Arguments ###
#######################################################

FROM alpine
ARG VERSION=v0.1.82
ARG AMD64_SHA=3f9a84cee678d0c0f568f1744040e337662782dce6c8054d1ca2fbbfbbcadf46

###########################################################################
### Stage 1 - Download polycli release ###
###########################################################################

RUN echo "${AMD64_SHA} polycli_${VERSION}_linux_amd64.tar.gz" > amd64.sha && \
wget https://github.com/0xPolygon/polygon-cli/releases/download/${VERSION}/polycli_${VERSION}_linux_amd64.tar.gz && \
sha256sum -c amd64.sha && \
tar -xvzf polycli_${VERSION}_linux_amd64.tar.gz -C /usr/bin && \
mv /usr/bin/polycli_${VERSION}_linux_amd64 /usr/bin/polycli && \
rm -f polycli_${VERSION}_linux_amd64.tar.gz amd64.sha

###########################################################################
### Stage 2 - Run polycli ###
###########################################################################

ENTRYPOINT ["/usr/bin/polycli"]
CMD ["--help"]
STOPSIGNAL SIGTERM
12 changes: 4 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,10 @@ The framework offers the most user-friendly way to build and operate an EVM bloc
## Supported Execution Clients

Through utilizing the [Ethereum Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine)
BeaconKit is able to support all 6 major Ethereum execution clients:
BeaconKit supports the following execution clients:

- [**Geth**](https://geth.ethereum.org/): Official Go implementation of the Ethereum protocol.
- [**Erigon**](https://erigon.tech/): More performant, feature-rich client forked from `go-ethereum`.
- [**Nethermind**](https://www.nethermind.io/): .NET based client with full support for Ethereum protocols.
- [**Besu**](https://www.lfdecentralizedtrust.org/projects/besu): Enterprise-grade client, Apache 2.0 licensed, written in Java.
- [**Reth**](https://reth.rs/): Rust-based client focusing on performance and reliability.
- [**Ethereumjs**](https://ethereumjs.readthedocs.io/en/latest/#): Javascript based client managed by the Ethereum Foundation.
- [**Bera-Geth**](https://github.com/berachain/bera-geth): Official Go implementation of the Berachain protocol.
- [**Bera-Reth**](https://github.com/berachain/bera-reth): Rust-based client focusing on performance and reliability.

## Running a Local Development Network

Expand All @@ -63,7 +59,7 @@ eth-genesis file used by the Execution Client.

```bash
# Start an Ethereum Execution Client:
make start-reth # or start-geth start-besu start-erigon start-nethermind start-ethereumjs
make start-reth # or start-geth
```

The account with
Expand Down
Loading