attester

Run a Task Attester node

Usage

otnode run attester [options] <bootnodes>

Arguments:
  bootnodes                               (required) The multiaddr of the bootnodes you would like to connect to

Examples

otnode run attester \
    /ip4/127.0.0.1/tcp/9876/p2p/<BOOTSTRAP_NODE_ID> \
    --avs-webapi http://10.8.0.42 \
    --avs-webapi-port <PORT> \
    --l1-chain holesky \
    --l2-chain amoy

BOOTSTRAP_NODE_ID can be saved in the .env file as per the Bootstrap node configuration.

Options

--avs-webapi required

url

Specifies the URL of the HTTP server used for the AVS Web API.


--avs-webapi-port required

port

Defines the port on which the AVS Web API HTTP server will run.


--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.


--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.


--status-check-interval optional

milliseconds

Interval for checking operator status (default: 5000 ms).

A throttling mechanism has been added to operator status checks to reduce idle RPC usage. Configure this using the optional --status-check-interval <interval> flag, with a default of 5000 milliseconds.

otnode run attester --status-check-interval 8000

--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 Comma-separated addresses the node should announce to the network (useful for NAT/firewall setups).

The announce option in libp2p allows nodes to explicitly define which addresses they advertise to peers, overriding any automatically detected addresses. This is particularly useful when running behind a load balancer or NAT, where the external address needs to be manually set. To enable this option in our CLI, users should start their nodes with the --announced-addresses <multi-address> flag, specifying the desired multiaddr. This ensures that peers connect using the correct external address rather than any internally detected ones.

otnode run attester --announced-addresses /dnsaddr/{dns-name}/tcp/{port1}/p2p/{Peer ID},/ip4/{resolved dns ip}/tcp/{port1}/p2p/{Peer ID}

--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