Skip to content

WIP#338

Draft
alpe wants to merge 4 commits intojulien/bump-evabcifrom
alex/julien/bump-evabci_fix
Draft

WIP#338
alpe wants to merge 4 commits intojulien/bump-evabcifrom
alex/julien/bump-evabci_fix

Conversation

@alpe
Copy link
Contributor

@alpe alpe commented Feb 13, 2026

Overview

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @alpe, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a series of updates and refactorings aimed at enhancing the stability, modularity, and testability of the EV-ABCI application. Key changes include comprehensive dependency version upgrades, a more resilient P2P gossiper initialization process, and modifications to the core executor interface to support new execution information and transaction filtering capabilities. Additionally, the way internal stores are accessed has been simplified, and the sequencer creation logic has been refined for better integration. A new script has also been added to streamline migration testing workflows.

Highlights

  • Dependency Updates: Updated EVNODE_VERSION in the Dockerfile and go.mod to v1.0.0-rc.4.0.20260212142321-387c3fb9dc67. The Go version was updated to 1.25.6, and various direct and indirect Go module dependencies, including celestiaorg/go-header, cometbft, golang.org/x/net, and google.golang.org/genproto/googleapis/api, received version bumps. Old replace directives in go.mod were removed.
  • P2P Gossiper Initialization Refinement: The Adapter's Start method now includes a robust retry mechanism to ensure the P2P host and PubSub components are fully initialized and ready before attempting to start the transaction gossiper. This prevents potential issues with asynchronous P2P setup.
  • Executor Interface Enhancements: The InitChain and ExecuteTxs methods in the Adapter have been streamlined to return only the application hash and an error, removing the MaxBytes return value. Two new methods, GetExecutionInfo and FilterTxs, were added to the execution.Executor interface, providing more granular control and information about execution parameters and transaction filtering.
  • Rollkit Store Access Simplification: The method for accessing the EV-Node KV store has been refactored across pkg/adapter/adapter.go, server/migration_cmd.go, and server/rollback_cmd.go. The previous kt.Wrap with kt.PrefixTransform has been replaced by a more direct rstore.NewEvNodeKVStore(store) call, simplifying store initialization.
  • Sequencer Creation Logic Update: The createSequencer function in server/start.go has been updated. It no longer directly accepts a context.Context or fiRetriever, and now takes an execution.Executor as an argument. The internal calls to basedsequencer.NewBasedSequencer and singlesequencer.NewSequencer have been adjusted to reflect these new parameters and dependencies.
  • New Migration Test Script: A new shell script, scripts/run_migration_test.sh, has been added to automate the process of running migration tests. This script handles building Docker images and executing specific Go tests, mirroring the workflow's migration testing job.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • Dockerfile
    • Updated EVNODE_VERSION to v1.0.0-rc.4.0.20260212142321-387c3fb9dc67.
  • go.mod
    • Updated Go language version to 1.25.6.
    • Removed replace directives for github.com/evstack/ev-node and github.com/evstack/ev-node/core.
    • Updated github.com/celestiaorg/go-header to v0.8.1.
    • Updated github.com/cometbft/cometbft to v0.38.21.
    • Updated github.com/evstack/ev-node to v1.0.0-rc.4.0.20260212142321-387c3fb9dc67.
    • Updated github.com/evstack/ev-node/core to v1.0.0-rc.1.0.20260212142321-387c3fb9dc67.
    • Updated golang.org/x/net to v0.50.0.
    • Updated google.golang.org/genproto/googleapis/api to v0.0.0-20260128011058-8636f8732409.
    • Updated various indirect dependencies including github.com/armon/go-metrics, github.com/boltdb/bolt, github.com/cenkalti/backoff/v5, github.com/fatih/color, github.com/filecoin-project/go-jsonrpc, github.com/goccy/go-yaml, github.com/google/flatbuffers, github.com/grpc-ecosystem/grpc-gateway/v2, github.com/hashicorp/go-msgpack, github.com/hashicorp/go-msgpack/v2, github.com/hashicorp/raft, github.com/hashicorp/raft-boltdb, github.com/ipfs/go-log/v2, github.com/libp2p/go-libp2p-kad-dht, github.com/libp2p/go-netroute, go.opentelemetry.io/otel, go.opentelemetry.io/otel/exporters/otlp/otlptrace, go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp, go.opentelemetry.io/otel/metric, go.opentelemetry.io/otel/sdk, go.opentelemetry.io/otel/trace, go.opentelemetry.io/proto/otlp, golang.org/x/crypto, golang.org/x/exp, golang.org/x/mod, golang.org/x/sys, golang.org/x/telemetry, golang.org/x/term, golang.org/x/text, golang.org/x/tools, and gonum.org/v1/gonum.
  • go.sum
    • Updated checksums for numerous Go modules to reflect version changes and new dependencies.
  • pkg/adapter/adapter.go
    • Removed kt and rollnode imports.
    • Replaced kt.Wrap(store, &kt.PrefixTransform{...}) with rstore.NewEvNodeKVStore(store).
    • Added nil checks for P2PClient, Host(), and PubSub() before starting the gossiper.
    • Implemented a retry loop with maxRetries and retryInterval to wait for P2P host and pubsub to be ready.
    • Modified InitChain function signature to return ([]byte, error) instead of ([]byte, uint64, error).
    • Modified ExecuteTxs function signature to return ([]byte, error) instead of ([]byte, uint64, error).
    • Added new method GetExecutionInfo to implement execution.Executor interface.
    • Added new method FilterTxs to implement execution.Executor interface.
  • pkg/adapter/adapter_test.go
    • Updated call to adapter.ExecuteTxs to match the new return signature (removed uint64 parameter).
  • pkg/adapter/convert.go
    • Added error handling for currentState.MakeBlock call.
  • pkg/adapter/signature_compatibility_test.go
    • Modified test setup to initialize and save a TestingStateFixture to the store before using validator addresses.
    • Removed redundant require.NoError(t, err) call.
  • pkg/p2p/gossip.go
    • Added nil checks for ps (pubsub) and host in NewGossiper function.
  • scripts/run_migration_test.sh
    • Added new shell script to run migration tests, including Docker image building and Go test execution.
  • server/migration_cmd.go
    • Removed ds, ktds, and rollkitnode imports.
    • Replaced ktds.Wrap(store, &ktds.PrefixTransform{...}) with rollkitstore.NewEvNodeKVStore(store).
  • server/rollback_cmd.go
    • Removed ds, kt, and node imports.
    • Replaced kt.Wrap(rawEvolveDB, &kt.PrefixTransform{...}) with store.NewEvNodeKVStore(rawEvolveDB).
  • server/start.go
    • Removed time import.
    • Updated imports for execution and moved sequencer packages.
    • Removed explicit time.Sleep(1 * time.Second) before starting the executor.
    • Refactored createSequencer function signature to remove ctx and fiRetriever, and added executor.
    • Updated calls to basedsequencer.NewBasedSequencer and singlesequencer.NewSequencer with new parameter lists.
  • tests/integration/docker/Dockerfile.gm
    • Updated EVNODE_VERSION build argument to v1.0.0-rc.4.0.20260212142321-387c3fb9dc67-.
Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/integration_test.yml
    • .github/workflows/migration_test.yml
Activity
  • The pull request is marked as 'WIP' (Work In Progress), indicating that the author is still actively developing or refining the changes.
  • The pull request description is empty, suggesting that detailed information or context is yet to be provided by the author.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request primarily updates dependencies, most notably ev-node. The code changes are adaptations to the new APIs from these updated dependencies, which is well-executed. Key improvements include a fix for a race condition during the gossiper startup by implementing a robust polling mechanism, and refactoring store creation to use a new helper function, which improves encapsulation. I've found one minor issue that needs to be addressed.

ARG IGNITE_VERSION=v29.3.1
ARG IGNITE_EVOLVE_APP_VERSION=main
ARG EVNODE_VERSION=v1.0.0-beta.10.0.20251216132820-afcd6bd9b354
ARG EVNODE_VERSION=v1.0.0-rc.4.0.20260212142321-387c3fb9dc67-
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There appears to be a typo in the EVNODE_VERSION. The version string has a trailing hyphen, which is inconsistent with the version specified in other files like go.mod and the root Dockerfile. This could lead to build failures or the use of an incorrect version during integration tests.

ARG EVNODE_VERSION=v1.0.0-rc.4.0.20260212142321-387c3fb9dc67

@alpe alpe force-pushed the alex/julien/bump-evabci_fix branch 2 times, most recently from d4f377b to fdee92a Compare February 13, 2026 10:01
@alpe alpe force-pushed the alex/julien/bump-evabci_fix branch from fdee92a to c532e1b Compare February 13, 2026 10:27
@alpe alpe changed the base branch from main to julien/bump-evabci February 13, 2026 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant