Running a node

Mishti Testnet and Mishti Mainnet Alpha are currently only open to the 200 operators with the most restaked ETH on Ethereum mainnet. If you are not one of these 200 operators, please wait for an announcement of the permissionless Mishti Mainnet.

Most nodes will be multiplier nodes. To run any type of node, simply

  1. Ask the team for the relevant envirnoment variables, save as .env, and set the missing variables.

  2. Give the team your docker hub email address or username so we can give you access to the docker image.

  3. Setup your operator via docker run -it mishtinetwork/operator othentic-cli operator register. Use the AVS governance contract address 0xe87ff321F5721a9285Ec651d01c0C0B857430c2c

Running a Multiplier node

Register

First register with the Mishti PeerRegistry smart contract.

  • <rpc-url> must be a URL for a Holesky RPC node, used to send the registration transaction to the blockchain.

  • <private-key> should be for the account you have registered as an Othentic operator.

  • <multiaddr> should be the multiaddr address of your Mishti node. For example, if your node's IP address is 100.27.208.30 and it is exposed on port 8080, then your multiaddr is /ip4/100.27.208.30/udp/8080/quic-v1.

  • <rpcaddr> should be the RPC address of your Mishti node. For example, if your node's IP address is 100.27.208.30 and it is exposed on port 8080, then your RPC address is http://100.27.208.30:8080.

docker run --env-file .env mishtinetwork/operator ./registry_iface register --rpc-url <rpc-url> --private-key <private-key> --multiaddr <multiaddr> --rpcaddr <rpcaddr>

If the call is successful, you will see a transaction receipt.

When populating your environment variables, make sure your multiaddr and rpcaddr match what you registered.

Run

Set the NODE_TYPE environment variable to Prover. Then run the node.

docker run -p 8080:8080 -p 8080:8080/udp --env-file .env --restart="always" mishtinetwork/operator sh -c "redis-server --daemonize yes; ./mishti_node --bootstrap-peer-id 16Uiu2HAm3n6sZQM9C4YvjnEMTXJ9EjRXDH9Aa8WAJQir72cvstBW --bootstrap-multiaddr /ip4/100.27.208.30/udp/8080/quic-v1 --relay-peer-id 16Uiu2HAkua1vHg92MWXPx35FtA8neV6fyHsYZgoNmS825qWjUyBQ --relay-multiaddr /ip4/100.27.208.30/udp/8081/quic-v1 --port 8080 --redis redis://127.0.0.1:6379/0 | bunyan"

Running an AVSWebAPI/Verifier/Attestor node

You will need two docker images running locally:

docker run --env-file .env --restart="always" mishtinetwork/operator sh -c 'redis-server --daemonize yes; ./verifier'
docker run --env-file .env --restart="always" mishtinetwork/operator othentic-cli node attester /ip4/<bootstrap node IP address>/tcp/9876/p2p/<Othentic bootstrap ID> --avs-webapi http://0.0.0.0

For testnet, the bootstrap node IP address is 100.27.208.30 and bootstrap ID is 12D3KooWCvMcbwgVsf6TgCGLN5o64WBWrJnuZLJYizy4hHkRAma5.

Running the Aggregator node

docker run --env-file .env --restart="always" -p 8545:8545 -p 9876:9876 mishtinetwork/operator othentic-cli node aggregator --json-rpc

Running the Relay node

Follow the steps in "Running a Prover node", but set the NODE_TYPE environment variable to Relay.

Last updated