From d46441270333879671a354cc2ca85493eb4815c6 Mon Sep 17 00:00:00 2001 From: Himess <95512809+Himess@users.noreply.github.com> Date: Mon, 9 Feb 2026 20:23:40 +0300 Subject: [PATCH] feat: add client_bin benchmark variable for testing different client binaries --- runner/benchmark/benchmark.go | 6 ++++++ runner/network/types/types.go | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/runner/benchmark/benchmark.go b/runner/benchmark/benchmark.go index dbffe63..135e546 100644 --- a/runner/benchmark/benchmark.go +++ b/runner/benchmark/benchmark.go @@ -54,6 +54,12 @@ func NewParamsFromValues(assignments map[string]interface{}) (*types.RunParams, } else { return nil, fmt.Errorf("invalid node type %s", v) } + case "client_bin": + if vStr, ok := v.(string); ok { + params.ClientBinPath = vStr + } else { + return nil, fmt.Errorf("invalid client bin %s", v) + } case "validator_node_type": if vStr, ok := v.(string); ok { params.ValidatorNodeType = vStr diff --git a/runner/network/types/types.go b/runner/network/types/types.go index 63f8241..c219c72 100644 --- a/runner/network/types/types.go +++ b/runner/network/types/types.go @@ -88,6 +88,9 @@ type RunParams struct { // NodeArgs are the arguments to be passed to the node binary. NodeArgs []string + + // ClientBinPath is an optional override for the client binary path. + ClientBinPath string } func (p RunParams) ToConfig() map[string]interface{} { @@ -115,6 +118,18 @@ func (p RunParams) ToConfig() map[string]interface{} { // ClientOptions applies any client customization options to the given client options. func (p RunParams) ClientOptions(prevClientOptions config.ClientOptions) config.ClientOptions { prevClientOptions.NodeArgs = p.NodeArgs + if p.ClientBinPath != "" { + switch p.NodeType { + case "reth": + prevClientOptions.RethBin = p.ClientBinPath + case "geth": + prevClientOptions.GethBin = p.ClientBinPath + case "builder": + prevClientOptions.BuilderBin = p.ClientBinPath + case "base-reth-node": + prevClientOptions.BaseRethNodeBin = p.ClientBinPath + } + } return prevClientOptions }