Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Persist cache snapshot only once at shutdown to avoid Badger vlog increase. [#3153](https://github.com/evstack/ev-node/pull/3153)

### Changes

- Subscribe to forced inclusion namespace events [#3146](https://github.com/evstack/ev-node/pull/3146)
Comment thread
alpe marked this conversation as resolved.
Outdated

## v1.0.0-rc.5

### Added
Expand Down
8 changes: 4 additions & 4 deletions apps/evm/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
"github.com/evstack/ev-node/pkg/config"
blobrpc "github.com/evstack/ev-node/pkg/da/jsonrpc"
da "github.com/evstack/ev-node/pkg/da/types"
"github.com/evstack/ev-node/pkg/genesis"
genesispkg "github.com/evstack/ev-node/pkg/genesis"
"github.com/evstack/ev-node/pkg/p2p/key"
"github.com/evstack/ev-node/pkg/sequencers/based"
Expand Down Expand Up @@ -84,7 +83,7 @@ var RunCmd = &cobra.Command{
}

// Create sequencer based on configuration
sequencer, err := createSequencer(logger, datastore, nodeConfig, genesis, daClient, executor)
sequencer, err := createSequencer(cmd.Context(), logger, datastore, nodeConfig, genesis, daClient, executor)
if err != nil {
return err
}
Expand Down Expand Up @@ -145,10 +144,11 @@ func init() {
// If BasedSequencer is enabled, it creates a based sequencer that fetches transactions from DA.
// Otherwise, it creates a single (traditional) sequencer.
func createSequencer(
ctx context.Context,
logger zerolog.Logger,
datastore datastore.Batching,
nodeConfig config.Config,
genesis genesis.Genesis,
genesis genesispkg.Genesis,
daClient block.FullDAClient,
executor execution.Executor,
) (coresequencer.Sequencer, error) {
Expand All @@ -158,7 +158,7 @@ func createSequencer(
return nil, fmt.Errorf("based sequencer mode requires aggregator mode to be enabled")
}

basedSeq, err := based.NewBasedSequencer(daClient, nodeConfig, datastore, genesis, logger, executor)
basedSeq, err := based.NewBasedSequencer(ctx, daClient, nodeConfig, datastore, genesis, logger, executor)
if err != nil {
return nil, fmt.Errorf("failed to create based sequencer: %w", err)
}
Expand Down
8 changes: 4 additions & 4 deletions apps/evm/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ module github.com/evstack/ev-node/apps/evm

go 1.25.6

//replace (
// github.com/evstack/ev-node => ../../
// github.com/evstack/ev-node/execution/evm => ../../execution/evm
//)
replace (
github.com/evstack/ev-node => ../../
github.com/evstack/ev-node/execution/evm => ../../execution/evm
)
Comment on lines +5 to +8
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Search for release scripts or documentation about handling replace directives

# Check for release/build scripts
fd -t f -e sh -e bash -e mk 'release|build|publish' --exec echo "File: {}" \; --exec head -20 {}

# Check for documentation about replace directives or release process
rg -n -C3 'replace.*directive|local.*replace|release.*process' --glob '*.md' --glob 'Makefile'

# Check if other go.mod files in the repo have similar patterns
fd -t f 'go.mod' --exec echo "=== {} ===" \; --exec grep -A5 '^replace' {}

Repository: evstack/ev-node

Length of output: 4536


🏁 Script executed:

# Get the specific release process section from RELEASE.md to understand context better
sed -n '180,210p' RELEASE.md

Repository: evstack/ev-node

Length of output: 879


🏁 Script executed:

# Check if RELEASE.md specifies timing for replace directive removal
sed -n '130,190p' RELEASE.md

Repository: evstack/ev-node

Length of output: 2087


Remove local replace directives from go.mod files before rc.5 release.

Per RELEASE.md (lines 186, 404, 417), removing all replace directives from go.mod files is a mandatory step before starting the release process. The local replace directives in apps/evm/go.mod must be removed:

replace (
	github.com/evstack/ev-node => ../../
	github.com/evstack/ev-node/execution/evm => ../../execution/evm
)

These should not be present in rc.5 release artifacts, as they reference local filesystem paths that won't exist for consumers. Update the require block to use the published versions instead, following the documented release process order (core → root ev-node → execution/evm → apps/evm).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/evm/go.mod` around lines 5 - 8, The go.mod in apps/evm currently
contains local replace directives (the replace block referencing
github.com/evstack/ev-node and github.com/evstack/ev-node/execution/evm) which
must be removed before rc.5; delete that entire replace(...) section and update
the module's require statements to reference the published versions (follow
release order: core → root ev-node → execution/evm → apps/evm) so apps/evm's
require entries point to the released semantic versions instead of local paths;
ensure there are no other replace directives remaining in apps/evm/go.mod and
run go mod tidy to verify module graph consistency.


require (
github.com/ethereum/go-ethereum v1.17.1
Expand Down
4 changes: 0 additions & 4 deletions apps/evm/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -407,12 +407,8 @@ github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJ
github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8=
github.com/ethereum/go-ethereum v1.17.1 h1:IjlQDjgxg2uL+GzPRkygGULPMLzcYWncEI7wbaizvho=
github.com/ethereum/go-ethereum v1.17.1/go.mod h1:7UWOVHL7K3b8RfVRea022btnzLCaanwHtBuH1jUCH/I=
github.com/evstack/ev-node v1.0.0 h1:m3e51fo4Dk9Z32XRV56GJKEeAiqvjiJ9n3SRjG7C5n8=
github.com/evstack/ev-node v1.0.0/go.mod h1:85H7BPvvRoA+uPfCiIcyWMBN728Wv1uLNhOsjLifJgw=
github.com/evstack/ev-node/core v1.0.0 h1:s0Tx0uWHme7SJn/ZNEtee4qNM8UO6PIxXnHhPbbKTz8=
github.com/evstack/ev-node/core v1.0.0/go.mod h1:n2w/LhYQTPsi48m6lMj16YiIqsaQw6gxwjyJvR+B3sY=
github.com/evstack/ev-node/execution/evm v1.0.0 h1:UTAdCrnPsLoGzSgsBx4Kv76jkXpMmHBIpNv3MxyzWPo=
github.com/evstack/ev-node/execution/evm v1.0.0/go.mod h1:UrqkiepfTMiot6M8jnswgu3VU8SSucZpaMIHIl22/1A=
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
Expand Down
2 changes: 1 addition & 1 deletion apps/evm/server/force_inclusion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func (m *mockDA) Get(ctx context.Context, ids []da.ID, namespace []byte) ([]da.B
return nil, nil
}

func (m *mockDA) Subscribe(_ context.Context, _ []byte) (<-chan da.SubscriptionEvent, error) {
func (m *mockDA) Subscribe(_ context.Context, _ []byte, _ bool) (<-chan da.SubscriptionEvent, error) {
// Not needed in these tests; return a closed channel.
ch := make(chan da.SubscriptionEvent)
close(ch)
Expand Down
2 changes: 1 addition & 1 deletion apps/grpc/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ func createSequencer(
return nil, fmt.Errorf("based sequencer mode requires aggregator mode to be enabled")
}

basedSeq, err := based.NewBasedSequencer(daClient, nodeConfig, datastore, genesis, logger, executor)
basedSeq, err := based.NewBasedSequencer(ctx, daClient, nodeConfig, datastore, genesis, logger, executor)
if err != nil {
return nil, fmt.Errorf("failed to create based sequencer: %w", err)
}
Expand Down
21 changes: 20 additions & 1 deletion block/internal/common/event.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package common

import "github.com/evstack/ev-node/types"
import (
"context"

"github.com/evstack/ev-node/types"
)

// EventSource represents the origin of a block event
type EventSource string
Expand All @@ -24,3 +28,18 @@ type DAHeightEvent struct {
// Optional DA height hints from P2P. first is the DA height hint for the header, second is the DA height hint for the data
DaHeightHints [2]uint64
}

// EventSink receives parsed DA events with backpressure support.
type EventSink interface {
PipeEvent(ctx context.Context, event DAHeightEvent) error
}

// EventSinkFunc adapts a plain function to the EventSink interface.
// Useful in tests:
//
// sink := common.EventSinkFunc(func(ctx context.Context, ev common.DAHeightEvent) error { return nil })
type EventSinkFunc func(ctx context.Context, event DAHeightEvent) error

func (f EventSinkFunc) PipeEvent(ctx context.Context, event DAHeightEvent) error {
return f(ctx, event)
}
Loading
Loading