5.0 KiB
description: Starting Pantheon
Starting Pantheon
!!! important "Breaking Changes in v0.9" In v0.9, the command line changed to improve usability. These are breaking changes; that is, in many cases the v0.8 command line options no longer work. The examples below and the rest of the documentation has been updated to reflect these changes. The release notes include a mapping of the previous command line options to the new options.
Pantheon nodes can be used for varying purposes as described in the Overview. Nodes can connect to the Ethereum mainnet, public testnets such as Ropsten, or private networks.
Prerequisites
Local Block Data
When connecting to a network other than the network previously connected to, you must either delete the local block data
or use the --data-path
option to specify a different data directory.
To delete the local block data, delete the database
directory in the pantheon/build/distribution/pantheon-<version>
directory.
Genesis Configuration
Pantheon specifies the genesis configuration, and sets the network ID and bootnodes when connecting to Mainnet, Goerli, Rinkeby, and Ropsten.
When --network=dev
is specified, Pantheon uses the
development mode genesis configuration with a fixed low difficulty.
A node started with --network=dev
has an empty bootnodes list by default.
The genesis files defining the genesis configurations are in the Pantheon source files.
To define a genesis configuration, create a genesis file (for example, genesis.json
) and specify the file
using the --genesis-file
option.
Confirm Node is Running
If you have started Pantheon with the --rpc-http-enabled
option, use cURL to
call JSON-RPC API methods to confirm the node is running.
!!!example
* `eth_chainId` returns the chain ID of the network.
```bash
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' localhost:8545
```
* `eth_syncing` returns the starting, current, and highest block.
```bash
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' localhost:8545
```
For example, after connecting to mainnet `eth_syncing` will return something similar to:
```json
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : {
"startingBlock" : "0x0",
"currentBlock" : "0x2d0",
"highestBlock" : "0x66c0"
}
}
```
Run a Node for Testing
To run a node that mines blocks at a rate suitable for testing purposes:
pantheon --network=dev --miner-enabled --miner-coinbase=0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --host-whitelist="all" --rpc-ws-enabled --rpc-http-enabled --data-path=/tmp/tmpDatdir
Alternatively, use the following configuration file on the command line to start a node with the same options as above:
network="dev"
miner-enabled=true
miner-coinbase="0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
rpc-cors-origins=["all"]
host-whitelist=["all"]
rpc-ws-enabled=true
rpc-http-enabled=true
data-path="/tmp/tmpdata-path"
Run a Node on Ropsten Testnet
To run a node on Ropsten:
pantheon --network=ropsten
To run a node on Ropsten with the HTTP JSON-RPC service enabled and allow Remix to access the node:
pantheon --network=ropsten --rpc-http-enabled --rpc-http-cors-origins "http://remix.ethereum.org"
Run a Node on Rinkeby Testnet
To run a node on Rinkeby specifying a data directory:
pantheon --network=rinkeby --data-path=<path>/<rinkebydata-path>
Where <path>
and <rinkebydata-path>
are the path and directory where the Rinkeby chain data is to be saved.
Run a Node on Goerli Testnet
To run a node on Goerli specifying a data directory:
pantheon --network=goerli --data-path=<path>/<goerlidata-path>
Where <path>
and <goerlidata-path>
are the path and directory where the Goerli chain data is to be saved.
Run a Node on Ethereum Mainnet
To run a node on the Ethereum mainnet:
pantheon
To run a node on mainnet with the HTTP JSON-RPC service enabled and available for localhost only:
pantheon --rpc-http-enabled