Skip to content

Commit b8ec42f

Browse files
committed
Merge branch 'main' into alex/2609_hints
* main: ci: strip app prefix (#3028) ci: fix release workflow (#3027) chore: prep apps (#3025) build: fix docker-compose for evm (#3022) chore: prepare execution release (#3021) chore: prep changelog (#3020) refactor(e2e): extract shared test helpers to DockerTestSuite (#3017) feat: High availabilty via RAFT (#2987) chore: bump to core rc.1 (#3018)
2 parents 69bf91b + 4252154 commit b8ec42f

File tree

93 files changed

+5213
-737
lines changed

Some content is hidden

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

93 files changed

+5213
-737
lines changed

.github/workflows/goreleaser.yml

Lines changed: 0 additions & 35 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ name: Release
22
on:
33
push:
44
tags:
5-
- '**/v*.*.*' # Matches tags like evm/single/v0.2.0, testapp/v0.4.0, etc.
5+
- "**/v*.*.*" # Matches tags like apps/evm/single/v0.2.0, apps/testapp/v0.4.0, etc.
6+
workflow_dispatch:
7+
inputs:
8+
tag:
9+
description: "Tag to release (e.g., apps/evm/single/v0.2.0, apps/testapp/v0.4.0) - Must match Go tag."
10+
required: true
11+
type: string
612

713
permissions: {}
814
jobs:
@@ -23,7 +29,12 @@ jobs:
2329
- name: Parse tag and validate app
2430
id: parse
2531
run: |
26-
TAG="${{ github.ref_name }}"
32+
# Use input tag for workflow_dispatch, otherwise use ref_name
33+
if [ -n "${{ inputs.tag }}" ]; then
34+
TAG="${{ inputs.tag }}"
35+
else
36+
TAG="${{ github.ref_name }}"
37+
fi
2738
echo "Processing tag: $TAG"
2839
2940
# Extract version (everything after the last /)
@@ -34,25 +45,26 @@ jobs:
3445
APP_PATH="${TAG%/*}"
3546
echo "app-path=$APP_PATH" >> $GITHUB_OUTPUT
3647
37-
# Check if the app directory exists in ./apps/
38-
if [ ! -d "apps/$APP_PATH" ]; then
39-
echo "::error::App directory 'apps/$APP_PATH' does not exist"
48+
# Check if the app directory exists
49+
if [ ! -d "$APP_PATH" ]; then
50+
echo "::error::App directory '$APP_PATH' does not exist"
4051
exit 1
4152
fi
4253
4354
# Check if Dockerfile exists
44-
if [ ! -f "apps/$APP_PATH/Dockerfile" ]; then
45-
echo "::error::Dockerfile not found in 'apps/$APP_PATH/'"
55+
if [ ! -f "$APP_PATH/Dockerfile" ]; then
56+
echo "::error::Dockerfile not found in '$APP_PATH/'"
4657
exit 1
4758
fi
4859
49-
echo "dockerfile=apps/$APP_PATH/Dockerfile" >> $GITHUB_OUTPUT
60+
echo "dockerfile=$APP_PATH/Dockerfile" >> $GITHUB_OUTPUT
5061
51-
# Generate image name from app path (replace / with -)
52-
IMAGE_NAME="ev-node-${APP_PATH//\//-}"
62+
# Generate image name from app path (strip apps/ prefix, replace / with -)
63+
IMAGE_PATH="${APP_PATH#apps/}"
64+
IMAGE_NAME="ev-node-${IMAGE_PATH//\//-}"
5365
echo "image-name=$IMAGE_NAME" >> $GITHUB_OUTPUT
5466
55-
echo "::notice::Building $IMAGE_NAME version $VERSION from apps/$APP_PATH"
67+
echo "::notice::Building $IMAGE_NAME version $VERSION from $APP_PATH"
5668
5769
build-and-push:
5870
name: Build and Push Docker Image

.mockery.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ packages:
2323
dir: ./test/mocks
2424
pkgname: mocks
2525
filename: p2p.go
26+
github.com/evstack/ev-node/pkg/raft:
27+
interfaces:
28+
sourceNode:
29+
config:
30+
dir: ./pkg/raft
31+
pkgname: raft
32+
filename: node_mock.go
2633
github.com/evstack/ev-node/pkg/store:
2734
interfaces:
2835
Store:

CHANGELOG.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
## [Unreleased]
1111

12+
## v1.0.0-rc.1
13+
1214
### Added
1315

1416
- Implement forced inclusion and based sequencing ([#2797](https://github.com/evstack/ev-node/pull/2797))
15-
This changes requires to add a `da_epoch_forced_inclusion` field in `genesis.json` file.
16-
To enable this feature, set the force inclusion namespace in the `evnode.yaml`.
17+
**This change requires to add a `da_epoch_forced_inclusion` field in node's `genesis.json` file.**
18+
To enable this feature, set the force inclusion namespace in the `evnode.yaml` (enableable from rc.2).
1719
- Added `post-tx` command and force inclusion server to submit transaction directly to the DA layer. ([#2888](https://github.com/evstack/ev-node/pull/2888))
1820
Additionally, modified the core package to support marking transactions as forced included transactions.
1921
The execution client ought to perform basic validation on those transactions as they have skipped the execution client's mempool.

RELEASE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ Packages must be released in the following order:
9797

9898
These packages only depend on `core` and can be released in parallel after `core`:
9999

100-
2. **github.com/evstack/ev-node** - Path: `./` (root)
101-
3. **github.com/evstack/ev-node/execution/evm** - Path: `./execution/evm`
100+
1. **github.com/evstack/ev-node** - Path: `./` (root)
101+
2. **github.com/evstack/ev-node/execution/evm** - Path: `./execution/evm`
102102

103103
#### Phase 3: Application Packages
104104

apps/evm/cmd/run.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
da "github.com/evstack/ev-node/pkg/da/types"
2626
"github.com/evstack/ev-node/pkg/genesis"
2727
genesispkg "github.com/evstack/ev-node/pkg/genesis"
28-
"github.com/evstack/ev-node/pkg/p2p"
2928
"github.com/evstack/ev-node/pkg/p2p/key"
3029
"github.com/evstack/ev-node/pkg/sequencers/based"
3130
"github.com/evstack/ev-node/pkg/sequencers/single"
@@ -99,11 +98,6 @@ var RunCmd = &cobra.Command{
9998
return err
10099
}
101100

102-
p2pClient, err := p2p.NewClient(nodeConfig.P2P, nodeKey.PrivKey, datastore, genesis.ChainID, logger, nil)
103-
if err != nil {
104-
return err
105-
}
106-
107101
// Start force inclusion API server if address is provided
108102
forceInclusionAddr, err := cmd.Flags().GetString(flagForceInclusionServer)
109103
if err != nil {
@@ -142,7 +136,7 @@ var RunCmd = &cobra.Command{
142136
}()
143137
}
144138

145-
return rollcmd.StartNode(logger, cmd, executor, sequencer, p2pClient, datastore, nodeConfig, genesis, node.NodeOptions{})
139+
return rollcmd.StartNode(logger, cmd, executor, sequencer, nodeKey, datastore, nodeConfig, genesis, node.NodeOptions{})
146140
},
147141
}
148142

apps/evm/entrypoint.sh

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,31 @@ get_home_dir() {
3030
# Get the home directory (either from --home flag or default)
3131
CONFIG_HOME=$(get_home_dir "$@")
3232

33+
# Create config directory
34+
mkdir -p "$CONFIG_HOME"
35+
36+
# Create passphrase file if environment variable is set
37+
PASSPHRASE_FILE="$CONFIG_HOME/passphrase.txt"
38+
if [ -n "$EVM_SIGNER_PASSPHRASE" ]; then
39+
echo "$EVM_SIGNER_PASSPHRASE" > "$PASSPHRASE_FILE"
40+
chmod 600 "$PASSPHRASE_FILE"
41+
fi
42+
43+
# Create JWT secret file if environment variable is set
44+
JWT_SECRET_FILE="$CONFIG_HOME/jwt.hex"
45+
if [ -n "$EVM_JWT_SECRET" ]; then
46+
echo "$EVM_JWT_SECRET" > "$JWT_SECRET_FILE"
47+
chmod 600 "$JWT_SECRET_FILE"
48+
fi
49+
3350
if [ ! -f "$CONFIG_HOME/config/node_key.json" ]; then
3451

3552
# Build init flags array
3653
init_flags="--home=$CONFIG_HOME"
3754

3855
# Add required flags if environment variables are set
3956
if [ -n "$EVM_SIGNER_PASSPHRASE" ]; then
40-
init_flags="$init_flags --rollkit.node.aggregator=true --rollkit.signer.passphrase $EVM_SIGNER_PASSPHRASE"
57+
init_flags="$init_flags --evnode.node.aggregator=true --evnode.signer.passphrase_file $PASSPHRASE_FILE"
4158
fi
4259

4360
INIT_COMMAND="evm init $init_flags"
@@ -52,7 +69,7 @@ default_flags="--home=$CONFIG_HOME"
5269

5370
# Add required flags if environment variables are set
5471
if [ -n "$EVM_JWT_SECRET" ]; then
55-
default_flags="$default_flags --evm.jwt-secret $EVM_JWT_SECRET"
72+
default_flags="$default_flags --evm.jwt-secret-file $JWT_SECRET_FILE"
5673
fi
5774

5875
if [ -n "$EVM_GENESIS_HASH" ]; then
@@ -68,28 +85,28 @@ if [ -n "$EVM_ETH_URL" ]; then
6885
fi
6986

7087
if [ -n "$EVM_BLOCK_TIME" ]; then
71-
default_flags="$default_flags --rollkit.node.block_time $EVM_BLOCK_TIME"
88+
default_flags="$default_flags --evnode.node.block_time $EVM_BLOCK_TIME"
7289
fi
7390

7491
if [ -n "$EVM_SIGNER_PASSPHRASE" ]; then
75-
default_flags="$default_flags --rollkit.node.aggregator=true --rollkit.signer.passphrase $EVM_SIGNER_PASSPHRASE"
92+
default_flags="$default_flags --evnode.node.aggregator=true --evnode.signer.passphrase_file $PASSPHRASE_FILE"
7693
fi
7794

7895
# Conditionally add DA-related flags
7996
if [ -n "$DA_ADDRESS" ]; then
80-
default_flags="$default_flags --rollkit.da.address $DA_ADDRESS"
97+
default_flags="$default_flags --evnode.da.address $DA_ADDRESS"
8198
fi
8299

83100
if [ -n "$DA_AUTH_TOKEN" ]; then
84-
default_flags="$default_flags --rollkit.da.auth_token $DA_AUTH_TOKEN"
101+
default_flags="$default_flags --evnode.da.auth_token $DA_AUTH_TOKEN"
85102
fi
86103

87104
if [ -n "$DA_NAMESPACE" ]; then
88-
default_flags="$default_flags --rollkit.da.namespace $DA_NAMESPACE"
105+
default_flags="$default_flags --evnode.da.namespace $DA_NAMESPACE"
89106
fi
90107

91108
if [ -n "$DA_SIGNING_ADDRESSES" ]; then
92-
default_flags="$default_flags --rollkit.da.signing_addresses $DA_SIGNING_ADDRESSES"
109+
default_flags="$default_flags --evnode.da.signing_addresses $DA_SIGNING_ADDRESSES"
93110
fi
94111

95112
# If no arguments passed, show help

apps/evm/go.mod

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ replace (
1111
require (
1212
github.com/celestiaorg/go-header v0.8.1
1313
github.com/ethereum/go-ethereum v1.16.8
14-
github.com/evstack/ev-node v1.0.0-beta.10
15-
github.com/evstack/ev-node/core v1.0.0-beta.5
16-
github.com/evstack/ev-node/execution/evm v1.0.0-beta.3
14+
github.com/evstack/ev-node v1.0.0-rc.1
15+
github.com/evstack/ev-node/core v1.0.0-rc.1
16+
github.com/evstack/ev-node/execution/evm v1.0.0-rc.1
1717
github.com/ipfs/go-datastore v0.9.0
1818
github.com/rs/zerolog v1.34.0
1919
github.com/spf13/cobra v1.10.2
@@ -26,9 +26,11 @@ require (
2626
github.com/Microsoft/go-winio v0.6.2 // indirect
2727
github.com/ProjectZKM/Ziren/crates/go-runtime/zkvm_runtime v0.0.0-20251001021608-1fe7b43fc4d6 // indirect
2828
github.com/StackExchange/wmi v1.2.1 // indirect
29+
github.com/armon/go-metrics v0.4.1 // indirect
2930
github.com/benbjohnson/clock v1.3.5 // indirect
3031
github.com/beorn7/perks v1.0.1 // indirect
3132
github.com/bits-and-blooms/bitset v1.20.0 // indirect
33+
github.com/boltdb/bolt v1.3.1 // indirect
3234
github.com/celestiaorg/go-libp2p-messenger v0.2.2 // indirect
3335
github.com/celestiaorg/go-square/merkle v0.0.0-20240627094109-7d01436067a3 // indirect
3436
github.com/celestiaorg/go-square/v3 v3.0.2 // indirect
@@ -48,6 +50,7 @@ require (
4850
github.com/emicklei/dot v1.6.2 // indirect
4951
github.com/ethereum/c-kzg-4844/v2 v2.1.5 // indirect
5052
github.com/ethereum/go-verkle v0.2.2 // indirect
53+
github.com/fatih/color v1.16.0 // indirect
5154
github.com/ferranbt/fastssz v0.1.4 // indirect
5255
github.com/filecoin-project/go-clock v0.1.0 // indirect
5356
github.com/filecoin-project/go-jsonrpc v0.10.0 // indirect
@@ -70,8 +73,15 @@ require (
7073
github.com/google/uuid v1.6.0 // indirect
7174
github.com/gorilla/websocket v1.5.3 // indirect
7275
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
76+
github.com/hashicorp/go-hclog v1.6.2 // indirect
77+
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
78+
github.com/hashicorp/go-metrics v0.5.4 // indirect
79+
github.com/hashicorp/go-msgpack v0.5.5 // indirect
80+
github.com/hashicorp/go-msgpack/v2 v2.1.2 // indirect
7381
github.com/hashicorp/golang-lru v1.0.2 // indirect
7482
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
83+
github.com/hashicorp/raft v1.7.3 // indirect
84+
github.com/hashicorp/raft-boltdb v0.0.0-20251103221153-05f9dd7a5148 // indirect
7585
github.com/holiman/uint256 v1.3.2 // indirect
7686
github.com/huin/goupnp v1.3.0 // indirect
7787
github.com/inconshreveable/mousetrap v1.1.0 // indirect

0 commit comments

Comments
 (0)