Manual Node Setup
Below, you’ll find a guide tailored for those who prefer a more customized installation approach.
Install cast
We use the cast CLI tool for making Ethereum RPC calls.
If it’s not already installed on your system, you can set up the entire Foundry toolchain, including cast
, with the following command:
curl -L https://foundry.paradigm.xyz | bash
After installation, execute foundryup
to update to the latest versions of Foundry’s suite of tools:
forge
, cast
, anvil
, and chisel
:
foundryup
For detailed guidance, refer to the official Foundry Book installation instructions.
Check your CPU architecture
Run the following command which will identify your OS, and chip architecture:
uname -sm
This command will output something like Linux x86_64
or Darwin arm64
, depending on your system.
Get the mev-commit binary
Navigate to the mev-commit repo
and select the mev-commit binary tailored to your system.
For example, if uname -sm
yields Linux x86_64
, opt for mev-commit_Linux_x86_64.tar.gz
.
Download, then extract the binary into your preferred root directory to continue with setup.
You can use the following command which automatically downloads and extracts the appropriate mev-commit binary for your system into your home directory:
FILENAME="mev-commit_$(uname -s)_$(uname -m).tar.gz"
curl -L \
"https://github.com/primev/mev-commit/releases/download/v0.3.0/$FILENAME" \
| tar -xz -C $HOME
Starting up your Node
Execute the script to initiate your node, selecting either a bidder or provider configuration based on your role in the network.
Bidders
Providers
--bootnodes
This should point to the bootnode for the Primev testnet network.--settlement-rpc-endpoint
This should point to the Primev Settlement Chain RPC endpoint. At present this is managed by the Primev team.
❗ By default, the node is started as a Bidder
node. The --peer-type
flag can be used to run a different type of node. This will most likely be the provider
node.
❗ The default contract addresses point to the Primev testnet at the moment. All the options can be provided using a YAML config file or environment variables as described in the above help output.
❗ The mev-commit node, when started for the first time will create a private key for the node at ~/.mev-commit/key
. This is a plain-text key. In order to store encrypted keys, users need to use the keystore. This can be configured using the --keystore-path
and --keystore-password
.
CLI Reference
NAME:
mev-commit - Start mev-commit node
USAGE:
mev-commit [global options] command [command options]
VERSION:
v0.3.0
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--config value path to config file [$MEV_COMMIT_CONFIG]
--peer-type value peer type to use, options are 'bidder', 'provider' or 'bootnode' (default: "bidder") [$MEV_COMMIT_PEER_TYPE]
--priv-key-file value path to private key file (default: "~/.mev-commit/key") [$MEV_COMMIT_PRIVKEY_FILE]
--keystore-password value use to access keystore [$MEV_COMMIT_KEYSTORE_PASSWORD]
--keystore-path value path to keystore location (default: "~/.mev-commit/keystore") [$MEV_COMMIT_KEYSTORE_PATH]
--p2p-port value port to listen for p2p connections (default: 13522) [$MEV_COMMIT_P2P_PORT]
--p2p-addr value address to bind for p2p connections (default: "0.0.0.0") [$MEV_COMMIT_P2P_ADDR]
--http-port value port to listen for http connections (default: 13523) [$MEV_COMMIT_HTTP_PORT]
--http-addr value address to bind for http connections [$MEV_COMMIT_HTTP_ADDR]
--rpc-port value port to listen for rpc connections (default: 13524) [$MEV_COMMIT_RPC_PORT]
--rpc-addr value address to bind for RPC connections [$MEV_COMMIT_RPC_ADDR]
--bootnodes value [ --bootnodes value ] list of bootnodes to connect to [$MEV_COMMIT_BOOTNODES]
--secret value secret to use for signing (default: "secret") [$MEV_COMMIT_SECRET]
--log-fmt value log format to use, options are 'text' or 'json' (default: "text") [$MEV_COMMIT_LOG_FMT]
--log-level value log level to use, options are 'debug', 'info', 'warn', 'error' (default: "info") [$MEV_COMMIT_LOG_LEVEL]
--bidder-registry-contract value address of the bidder registry contract (default: "0x7ffa86fF89489Bca72Fec2a978e33f9870B2Bd25") [$MEV_COMMIT_BIDDER_REGISTRY_ADDR]
--provider-registry-contract value address of the provider registry contract (default: "0x4FC9b98e1A0Ff10de4c2cf294656854F1d5B207D") [$MEV_COMMIT_PROVIDER_REGISTRY_ADDR]
--preconf-contract value address of the preconfirmation commitment store contract (default: "0xCAC68D97a56b19204Dd3dbDC103CB24D47A825A3") [$MEV_COMMIT_PRECONF_ADDR]
--settlement-rpc-endpoint value rpc endpoint of the settlement layer (default: "http://localhost:8545") [$MEV_COMMIT_SETTLEMENT_RPC_ENDPOINT]
--nat-addr value external address of the node [$MEV_COMMIT_NAT_ADDR]
--nat-port value externally mapped port for the node (default: 13522) [$MEV_COMMIT_NAT_PORT]
--server-tls-certificate value Path to the server TLS certificate [$MEV_COMMIT_SERVER_TLS_CERTIFICATE]
--server-tls-private-key value Path to the server TLS private key [$MEV_COMMIT_SERVER_TLS_PRIVATE_KEY]
--help, -h show help
--version, -v print the version