Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
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
7 changes: 7 additions & 0 deletions ansible-devnet/genesis/validator-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ validators:
ip: "46.224.123.223"
quic: 9001
metricsPort: 9095
isAggregator: false
count: 1 # number of indices for this node

- name: "ream_0"
Expand All @@ -25,6 +26,7 @@ validators:
ip: "77.42.27.219"
quic: 9001
metricsPort: 9095
isAggregator: false
devnet: 1
count: 1

Expand All @@ -36,6 +38,7 @@ validators:
ip: "46.224.123.220"
quic: 9001
metricsPort: 9095
isAggregator: false
count: 1

- name: "lantern_0"
Expand All @@ -47,6 +50,7 @@ validators:
ip: "46.224.135.177"
quic: 9001
metricsPort: 9095
isAggregator: false
count: 1

- name: "lighthouse_0"
Expand All @@ -58,6 +62,7 @@ validators:
ip: "46.224.135.169"
quic: 9001
metricsPort: 9095
isAggregator: false
count: 1

- name: "grandine_0"
Expand All @@ -66,6 +71,7 @@ validators:
ip: "37.27.250.20"
quic: 9001
metricsPort: 9095
isAggregator: false
count: 1

- name: "ethlambda_0"
Expand All @@ -74,4 +80,5 @@ validators:
ip: "78.47.44.215"
quic: 9001
metricsPort: 9095
isAggregator: false
count: 1
12 changes: 10 additions & 2 deletions client-cmds/ethlambda-cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,21 @@

binary_path="$scriptDir/../ethlambda/target/release/ethlambda"

# Set aggregator flag based on isAggregator value
aggregator_flag=""
if [ "$isAggregator" == "true" ]; then
aggregator_flag="--is-aggregator"
fi

# Command when running as binary
node_binary="$binary_path \
--custom-network-config-dir $configDir \
--gossipsub-port $quicPort \
--node-id $item \
--node-key $configDir/$item.key \
--metrics-address 0.0.0.0 \
--metrics-port $metricsPort"
--metrics-port $metricsPort \
$aggregator_flag"

# Command when running as docker container
node_docker="ghcr.io/lambdaclass/ethlambda:devnet2 \
Expand All @@ -20,6 +27,7 @@ node_docker="ghcr.io/lambdaclass/ethlambda:devnet2 \
--node-id $item \
--node-key /config/$item.key \
--metrics-address 0.0.0.0 \
--metrics-port $metricsPort"
--metrics-port $metricsPort \
$aggregator_flag"

node_setup="docker"
12 changes: 10 additions & 2 deletions client-cmds/grandine-cmd.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
#!/bin/bash

# Set aggregator flag based on isAggregator value
aggregator_flag=""
if [ "$isAggregator" == "true" ]; then
aggregator_flag="--is-aggregator"
fi

node_binary="$grandine_bin \
--genesis $configDir/config.yaml \
--validator-registry-path $configDir/validators.yaml \
Expand All @@ -11,7 +17,8 @@ node_binary="$grandine_bin \
--metrics \
--http-address 0.0.0.0 \
--http-port $metricsPort \
--hash-sig-key-dir $configDir/hash-sig-keys"
--hash-sig-key-dir $configDir/hash-sig-keys \
$aggregator_flag"

node_docker="sifrai/lean:devnet-2 \
--genesis /config/config.yaml \
Expand All @@ -24,7 +31,8 @@ node_docker="sifrai/lean:devnet-2 \
--metrics \
--http-address 0.0.0.0 \
--http-port $metricsPort \
--hash-sig-key-dir /config/hash-sig-keys"
--hash-sig-key-dir /config/hash-sig-keys \
$aggregator_flag"

# choose either binary or docker
node_setup="docker"
12 changes: 10 additions & 2 deletions client-cmds/lantern-cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ if [ -n "$devnet" ]; then
devnet_flag="--devnet $devnet"
fi

# Set aggregator flag based on isAggregator value
aggregator_flag=""
if [ "$isAggregator" == "true" ]; then
aggregator_flag="--is-aggregator"
fi

# Lantern's repo: https://github.com/Pier-Two/lantern
node_binary="$scriptDir/lantern/build/lantern_cli \
--data-dir $dataDir/$item \
Expand All @@ -22,7 +28,8 @@ node_binary="$scriptDir/lantern/build/lantern_cli \
--metrics-port $metricsPort \
--http-port 5055 \
--log-level debug \
--hash-sig-key-dir $configDir/hash-sig-keys"
--hash-sig-key-dir $configDir/hash-sig-keys \
$aggregator_flag"
Copy link
Member

@g11tech g11tech Feb 8, 2026

Choose a reason for hiding this comment

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

node is not an agrregator based on the flag but based on the validator id which is an aggregator which is parsed via the validator-config to annotated_validaors.yaml

but the main question is how do we assign aggregator to the validator of which of the nodes.

the solution for that is: all the nodes who want to run the aggregator as reflected via validator-config, one of their validator ids need to be picked and flagged true as ggregator in anootated validators

also validator-config needs to now carrynum subnets, which will also need to be inserted in config.yaml

for now this number is 1

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, but this flag is determined/initialised from the validator-config.yaml. Having said that, this PR is still in draft and I am waiting for the zeam PR to be merged before I can work and complete this.


node_docker="$LANTERN_IMAGE --data-dir /data \
--genesis-config /config/config.yaml \
Expand All @@ -36,7 +43,8 @@ node_docker="$LANTERN_IMAGE --data-dir /data \
--metrics-port $metricsPort \
--http-port 5055 \
--log-level debug \
--hash-sig-key-dir /config/hash-sig-keys"
--hash-sig-key-dir /config/hash-sig-keys \
$aggregator_flag"

# choose either binary or docker
node_setup="docker"
12 changes: 10 additions & 2 deletions client-cmds/lighthouse-cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
# Metrics enabled by default
metrics_flag="--metrics"

# Set aggregator flag based on isAggregator value
aggregator_flag=""
if [ "$isAggregator" == "true" ]; then
aggregator_flag="--is-aggregator"
fi

node_binary="$lighthouse_bin lean_node \
--datadir \"$dataDir/$item\" \
--config \"$configDir/config.yaml\" \
Expand All @@ -14,7 +20,8 @@ node_binary="$lighthouse_bin lean_node \
--socket-port $quicPort\
$metrics_flag \
--metrics-address 0.0.0.0 \
--metrics-port $metricsPort"
--metrics-port $metricsPort \
$aggregator_flag"

node_docker="hopinheimer/lighthouse:latest lighthouse lean_node \
--datadir /data \
Expand All @@ -27,6 +34,7 @@ node_docker="hopinheimer/lighthouse:latest lighthouse lean_node \
--socket-port $quicPort\
$metrics_flag \
--metrics-address 0.0.0.0 \
--metrics-port $metricsPort"
--metrics-port $metricsPort \
$aggregator_flag"

node_setup="docker"
9 changes: 9 additions & 0 deletions client-cmds/qlean-cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
#-----------------------qlean setup----------------------
# expects "qlean" submodule or symlink inside "lean-quickstart" root directory
# https://github.com/qdrvm/qlean-mini

# Set aggregator flag based on isAggregator value
aggregator_flag=""
if [ "$isAggregator" == "true" ]; then
aggregator_flag="--is-aggregator"
fi

node_binary="$scriptDir/qlean/build/src/executable/qlean \
--modules-dir $scriptDir/qlean/build/src/modules \
--genesis $configDir/config.yaml \
Expand All @@ -15,6 +22,7 @@ node_binary="$scriptDir/qlean/build/src/executable/qlean \
--node-id $item --node-key $configDir/$privKeyPath \
--listen-addr /ip4/0.0.0.0/udp/$quicPort/quic-v1 \
--prometheus-port $metricsPort \
$aggregator_flag \
-ldebug \
-ltrace"

Expand All @@ -29,6 +37,7 @@ node_docker="qdrvm/qlean-mini:devnet-2 \
--node-id $item --node-key /config/$privKeyPath \
--listen-addr /ip4/0.0.0.0/udp/$quicPort/quic-v1 \
--prometheus-port $metricsPort \
$aggregator_flag \
-ldebug \
-ltrace"

Expand Down
12 changes: 10 additions & 2 deletions client-cmds/ream-cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@
# Metrics enabled by default
metrics_flag="--metrics"

# Set aggregator flag based on isAggregator value
aggregator_flag=""
if [ "$isAggregator" == "true" ]; then
aggregator_flag="--is-aggregator"
fi

# modify the path to the ream binary as per your system
node_binary="$scriptDir/../ream/target/release/ream --data-dir $dataDir/$item \
lean_node \
Expand All @@ -15,7 +21,8 @@ node_binary="$scriptDir/../ream/target/release/ream --data-dir $dataDir/$item \
$metrics_flag \
--metrics-address 0.0.0.0 \
--metrics-port $metricsPort \
--http-address 0.0.0.0"
--http-address 0.0.0.0 \
$aggregator_flag"

node_docker="ghcr.io/reamlabs/ream:latest-devnet2 --data-dir /data \
lean_node \
Expand All @@ -27,7 +34,8 @@ node_docker="ghcr.io/reamlabs/ream:latest-devnet2 --data-dir /data \
$metrics_flag \
--metrics-address 0.0.0.0 \
--metrics-port $metricsPort \
--http-address 0.0.0.0"
--http-address 0.0.0.0 \
$aggregator_flag"

# choose either binary or docker
node_setup="docker"
12 changes: 10 additions & 2 deletions client-cmds/zeam-cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,29 @@
# Metrics enabled by default
metrics_flag="--metrics_enable"

# Set aggregator flag based on isAggregator value
aggregator_flag=""
if [ "$isAggregator" == "true" ]; then
aggregator_flag="--is-aggregator"
fi

node_binary="$scriptDir/../zig-out/bin/zeam node \
--custom_genesis $configDir \
--validator_config $validatorConfig \
--data-dir $dataDir/$item \
--node-id $item --node-key $configDir/$item.key \
$metrics_flag \
--api-port $metricsPort"
--api-port $metricsPort \
$aggregator_flag"

node_docker="--security-opt seccomp=unconfined blockblaz/zeam:devnet2 node \
--custom_genesis /config \
--validator_config $validatorConfig \
--data-dir /data \
--node-id $item --node-key /config/$item.key \
$metrics_flag \
--api-port $metricsPort"
--api-port $metricsPort \
$aggregator_flag"

# choose either binary or docker
node_setup="docker"
7 changes: 7 additions & 0 deletions local-devnet/genesis/validator-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ validators:
ip: "127.0.0.1"
quic: 9001
metricsPort: 8081
isAggregator: false
count: 1 # number of indices for this node

- name: "ream_0"
Expand All @@ -25,6 +26,7 @@ validators:
ip: "127.0.0.1"
quic: 9002
metricsPort: 8082
isAggregator: false
devnet: 1
count: 1

Expand All @@ -36,6 +38,7 @@ validators:
ip: "127.0.0.1"
quic: 9003
metricsPort: 8083
isAggregator: false
count: 1

- name: "lantern_0"
Expand All @@ -47,6 +50,7 @@ validators:
ip: "127.0.0.1"
quic: 9004
metricsPort: 8084
isAggregator: false
count: 1

- name: "lighthouse_0"
Expand All @@ -58,6 +62,7 @@ validators:
ip: "127.0.0.1"
quic: 9005
metricsPort: 8085
isAggregator: false
count: 1

- name: "grandine_0"
Expand All @@ -66,6 +71,7 @@ validators:
ip: "127.0.0.1"
quic: 9006
metricsPort: 8086
isAggregator: false
count: 1

- name: "ethlambda_0"
Expand All @@ -77,4 +83,5 @@ validators:
ip: "127.0.0.1"
quic: 9007
metricsPort: 8087
isAggregator: false
count: 1
8 changes: 8 additions & 0 deletions parse-vc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@ if [ -z "$devnet" ] || [ "$devnet" == "null" ]; then
devnet=""
fi

# Automatically extract isAggregator flag using yq (defaults to false if not set)
isAggregator=$(yq eval ".validators[] | select(.name == \"$item\") | .isAggregator // false" "$validator_config_file")
if [ -z "$isAggregator" ] || [ "$isAggregator" == "null" ]; then
isAggregator="false"
fi

# Automatically extract private key using yq
privKey=$(yq eval ".validators[] | select(.name == \"$item\") | .privkey" "$validator_config_file")

Expand Down Expand Up @@ -99,10 +105,12 @@ if [ "$keyType" == "hash-sig" ] && [ "$hashSigKeyIndex" != "null" ] && [ -n "$ha
echo "Hash-Sig Key Index: $hashSigKeyIndex"
echo "Hash-Sig Public Key: $hashSigPkPath"
echo "Hash-Sig Secret Key: $hashSigSkPath"
echo "Is Aggregator: $isAggregator"
else
echo "Node: $item"
echo "QUIC Port: $quicPort"
echo "Metrics Port: $metricsPort"
echo "Devnet: ${devnet:-<not set>}"
echo "Private Key File: $privKeyPath"
echo "Is Aggregator: $isAggregator"
fi