Skip to content

Latest commit

 

History

History
114 lines (85 loc) · 6.33 KB

File metadata and controls

114 lines (85 loc) · 6.33 KB
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 | bash

After installing cast, run foundryup to ensure it's updated.

Download the Binary

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

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

    Starting as a Bidder Node

    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.

    Starting as a Provider Node

    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.