| title | Manual Start mev-commit |
|---|---|
| sidebarTitle | Manual Start mev-commit |
For users who prefer a detailed and hands-on approach to setting up mev-commit, this section allows for deeper customization and a thorough understanding of the setup process.
Pre-requisites:
curl: A command-line tool used for downloading files from the internet.terminal: A command-line interface for executing commands.cast: A command-line tool for Ethereum blockchain interaction. Install it using the following command:
curl -L https://foundry.paradigm.xyz | bashAfter installing cast, run foundryup to ensure it's updated.
-
Step 1. Identify CPU Architecture
Determine your OS type and chip architecture with the following commands:
uname # This will give you the OS type uname -m # This will give you the chip architecture
-
Step 2. Download the Appropriate mev-commit Binary
Based on your CPU architecture, download the necessary binary from:
https://github.com/primevprotocol/mev-commit/releases/tag/v0.2.0
Unzip the binary and add it to your
$PATH.export PATH=$PATH:<path/to/binary>
-
Step 3. Run the node
The mev-commit application allows you to start a node with various configurations:
NAME: mev-commit - Start mev-commit node USAGE: mev-commit [global options] command [command options] VERSION: v0.2.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: "0xa86a41b57Fb73f9118F84847574517258d29eAD0") [$MEV_COMMIT_BIDDER_REGISTRY_ADDR] --provider-registry-contract value address of the provider registry contract (default: "0x5960774AD41D03DAB4916a30bD2190f8b3b3b4b2") [$MEV_COMMIT_PROVIDER_REGISTRY_ADDR] --preconf-contract value address of the preconfirmation commitment store contract (default: "0x7D1a4707e573D260581f3AB3f90f697Ab03fC6Dd") [$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
Most of the options above have default values. The minimum set of arguments required for all nodes are:
--bootnodesThis should point to the bootnode for the Primev testnet network.--settlement-rpc-endpointThis 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
Biddernode. The--peer-typeflag can be used to run a different type of node. This will most likely be theprovidernode.❗ 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-pathand--keystore-password.mev-commit --keystore-path ~/.mev-commit --keystore-password <PASSWORD> \ --bootnodes /dnsaddr/bootnode.testnet.mev-commit.xyz \ --settlement-rpc-endpoint https://chainrpc.testnet.mev-commit.xyz
Once the node is started you can go through the [funding process]/get-started/bidders/fund-node) to start sending bids.
mev-commit --peer-type provider --keystore-path ~/.mev-commit --keystore-password <PASSWORD> \ --bootnodes /dnsaddr/bootnode.testnet.mev-commit.xyz \ --settlement-rpc-endpoint https://chainrpc.testnet.mev-commit.xyz
In order to register as a provider please go through the registration process.