aggregator

Run a Task Aggregator node

Usage

otnode run aggregator [options] 

Examples

otnode run aggregator \
  --json-rpc \
  --l1-chain holesky \
  --l2-chain amoy,base-sepolia \
  --internal-tasks \
  --metrics \
  --delay 1500

Options

--json-rpc required

flag

Enables the JSON-RPC API for the node. Disabled by default.


--json-rpc.port optional

number

Port number for the JSON-RPC server (default: 8545).


--json-rpc.custom-message-enabled optional

flag

Enables custom message support via the p2p communication layer. Useful for advanced messaging scenarios.


--p2p.port optional

number

Port used for low-level peer-to-peer (p2p) communication.


--p2p.datadir optional

file path

Path to the directory for persistent p2p data storage. If the directory doesn't exist, it will be created automatically using LevelDatastore.


--p2p.discovery-interval optional.

number (in ms) Time interval for the p2p discovery mechanism, specified in milliseconds.


--internal-tasks optional

flag Enables internal tasks on the node, usually related to maintenance or operations.


--metrics optional

flag

Enables the metrics exporter for the node. Disabled by default.


--metrics.port optional

number

Port number for the metrics HTTP server.


--metrics.export-url optional

url

URL to export metrics to Prometheus Pushgateway for external monitoring.


--aggregator.simulate-transactions optional

boolean

Enables transaction simulation before submitting by the aggregator (default: false).


--delay optional

number (in ms)

This flag enables you to specify an additional waiting period after achieving 2/3 of the voting power, allowing more attestations to arrive before submitting the transaction. The aggregator will wait for the specified delay before submitting the transaction on-chain. (default: 0).

When operating multiple Aggregator nodes, transaction simulation and delayed submission help mitigate race conditions. If two aggregators submit the same task, the first transaction accepted on-chain will succeed, while the second will fail.


--announced-addresses optional

--p2p.public-ip optional

string

Public-facing IP address of the node.

Used to automatically construct the announced libp2p multiaddress as /ip4/<public-ip>/tcp/<port>/p2p/<PeerID>. This is useful when the node is behind NAT or a firewall, and its actual reachable IP needs to be explicitly advertised.

If this flag is not provided, the node will attempt to auto-detect the public IP.

othentic-cli node attester --p2p.public-ip 203.0.113.1

--p2p.dns-url optional

string

DNS address that resolves to the public IP of the node.

Used to generate an additional announced libp2p address in the format /dnsaddr/<dns-url>/tcp/<port>/p2p/<PeerID>. This is useful when nodes are hosted behind a domain name or behind a load balancer.

If this flag is not provided, no DNS-based address will be added.

othentic-cli node attester --p2p.dns-url attester.example.com

--announced-addresses optional

string

Addresses the node will announce to the network (useful for NAT or firewall configurations).


--slashing-challenger optional

flag

Enable Challenger system watchdog and automatically submit challenge transactions for slashable offenses


--keystore optional

file path

The path to the keystore file used for signing the transaction.


--keystore-password optional

file path

The path to the file containing the keystore password.


--silent, --s, --no-prompt optional

flag

Run in non-interactive mode using .env and provided arguments, without user prompts.


-h, --help optional

flag

Display help information for this command.

Last updated