How to run a OpenEthereum (ex-parity client) Node

December 29, 2021

What is an Ethereum node or client?

Ethereum nodes are computers participating in Ethereum blockchain network, these nodes are actual computers running software that verifies, stores, and sometimes creates blocks. The actual software is called a "client" and it allows us to interact with the blockchain using the JSON-RPC API, parse and verify the blockchain, and read or write to smart-contracts.

Ethereum is reaching far more developers than ever. With this growth adoption of Ethereum, there has been a flow of multiple Ethereum clients in the industry. Aleth, Geth, and Trinity are the official libraries written and maintained by the Ethereum foundation. Meanwhile, Parity (now known as OpenEthereum) and Hyperledger Besu are two of the most popular third-party clients.

OpenEthereum (ex-parity client) is the second most popular Ethereum client right after Geth, It is aimed to be the fastest, lightest, and most secure Ethereum Client. It’s written in the Rust programming language and maintained by a group of core OpenEthereum developers and other contributors. In this article, we will learn how to run a Parity node.

Why use OpenEthereum (ex-parity client)?

OpenEthereum (ex-parity client) is a lightweight and high-performance client used to interact with the Ethereum network. Running a full node requires knowledge and resources which may not be feasible in everyone's one case.

OpenEthereum is a reliable Ethereum client with the support of multiple types of syncs.

OpenEthereum provides:

  • Modular codebase, so you can customize based on your need
  • Advanced CLI-based client
  • Minimal memory and storage footprint
  • Multiple Synchronization techniques able to sync blockchain in hours

Read more about OpenEthereum, its benefits and features on GitHub.

Disk space and hardware/computational requirements

Running an Ethereum mainnet node requires a lot of computational resources because downloading the blockchain and validating processes needs very high CPU and Disk IO resources.

To run a full node, our basic recommended hardware specs include a multi-core CPU, at least 8GB RAM, and an SSD drive with at least 500GB of free space, mounted locally. Plus a good internet connection is always an uncompromisable factor.

Note: You can use a mounted drive, but may suffer strange performance issues such as dropped blocks or slow syncing.

Node performance can be improved by using caching features, by telling OpenEthereum to access the state from memory instead of from your disk, simply specify the `--cache-size` flag. This will require you to have additional RAM storage equivalent to the state size of the blockchain which is over 8GB, this means you should upgrade to 16GB or even 32GB of RAM.

Storage requirement keeps on increasing everyday as the blockchain increases, the most expensive storage requirement at the time when this guide was written is to run a n archive node with Fat DB enabled which is more than 8TB.

Installing OpenEthereum Client

We can run/install OpenEthereum client from the pre-built binaries, follows the steps below:

Linux

  • Download the latest Linux binary from here
  • Make the openethereum file executable by running

installing openethereum client

Copy
$ chmod u+x openethereum
  • Launch openethereum Ethereum with your favorite flags:

installing openethereum client

Copy
$ ./openethereum --chain dev --jsonrpc-apis personal

Mac

  • Download the latest mac binary from here
  • Open the terminal and navigate to the directory 

installing openethereum client

Copy
$ cd /path/to/binary/folder/
  • Make the binary executable by running 

installing openethereum client

Copy
$ chmod +x openethereum
  • You can now double click on the binary.

- Another option to install OpenEthereum on Mac is through Homebrew:
  • Homebrew is a package manager for macOS, installation instructions for which can be found here
  • To add OpenEthereum to your homebrew packages open the terminal and type the following:

installing openethereum client

Copy
$ brew tap openethereum/openethereum
  • Now to install OpenEthereum with Homebrew

installing openethereum client

Copy
$ brew install openethereum
  • To update OpenEthereum to the latest version you can use:

installing openethereum client

Copy
$ brew upgrade openethereum


Windows

  • For windows simply download the latest binary from here, unpack and install the packages.

Suggested flag configuration

After lots of trials and tribulations, we've found a config that works well that we're willing to share. We have some additional flag explanation in the next section but this is the set of flags that have helped us serve billions of requests per month on a limited number of machines:

suggested flag configuration

Copy
$ openethereum --jsonrpc-hosts all --jsonrpc-apis traces,h,web3,eth,net,parity,rpc --ws-origins=all --ws-hosts=all --chain mainnet --pruning fast --tracing on --jsonrpc-port=8547 --tx-queue-size=16384 --tx-queue-mem-limit=0 --ws-interface=all --jsonrpc-interface=all

Additional flag configuration

Here is some other helpful flags you can run OpenEthereum with that may be useful for specific situations:

  • For seeing all other flags and general help:

additional flag configuration

Copy
$ openethereum --help

  • For enabling APIs which aren't enabled by default (APIs: API name):

additional flag configuration

Copy
--jsonrpc-apis APIs

  • For Trace filtering/Trace mode, openethereum must be fully synced and it can be turned on with the following flag:

additional flag configuration

Copy
$ openethereum --tracing on

  • For specifying port of HTTP JSON-RPC API server (default: 8545):

additional flag configuration

Copy
--jsonrpc-port=[PORT]

  • For Disabling HTTP JSON RPC-API server

additional flag configuration

Copy
--no-jsonrpc

  • For specifying port of WebSocket JSON-RPC API server (default: 8546):

additional flag configuration

Copy
--ws-port=[PORT]

  • For Disabling WebSocket JSON RPC-API server:

additional flag configuration

Copy
--no-ws

  • For configuration i.e dev, mining, etc ([dev], [mining]):

additional flag configuration

Copy
--config=[CONFIG]

  • For archive mode:

additional flag configuration

Copy
--pruning archive 

  • To get the node up without ancient blocks:

additional flag configuration

Copy
--no-ancient-blocks    

Conclusion

OpenEthereum is a solid choice for your Ethereum node running purposes.

If you run into problems while installing OpenEthereum, check out the wiki for documentation, or ask for help in the OpenEthereum Discord chat room.

Subscribe to our newsletter for more articles and guide on Ethereum. If you have any feedback, please feel free to reach out to us via Twitter, and you can always chat with us if you have a question via our community server on Discord, thanks :)

Related articles 9

Introduction to Ethereum Rollups
Dec 29, 2021

Ethereum, the most popular blockchain, has seen scaling issues for quite a long time now. With high gas fees due to congestion being the primary pain point. With the increasing cost to use the network, a plethora of scaling solutions have emerged. Today in this guide, we...

Continue reading
How to install and run a Prysm Beacon node
Dec 29, 2021

Even if you're a newbie, rookie, or a pro in Ethereum it really excites all of us to see these developments in Ethereum. Whether it's all the hard forks like Istanbul, Atlantis, etc. or the development of Ethereum 2.0 - there is a lot to keep up with.In this...

Continue reading
How to run Expedition Block Explorer
Apr 12, 2022

In this article, we will talk about how to install and run the Expedition Ethereum Block explorer. While playing with the Ethereum blockchain network one might need to look up transactions, tokens, addresses, or prices. To accomplish these...

Continue reading
How to run Nethermind node
Dec 29, 2021

To run an Ethereum node without any problems, it is essential to choose a good node client. Nethermind is one of the oldest and most trusted Ethereum node clients. In this guide, let’s see how we can launch a Nethermind node.

Continue reading
How to run a Hyperledger Besu node
Dec 29, 2021

As the Ethereum network continues to grow, the need for an enterprise-ready Ethereum client arises. Hyperledger Besu is an enterprise-friendly Ethereum client that can implement both public and private permissioned networks. This guide will cover the requirements to run...

Continue reading
How to Run a Binance Smart Chain Node
Dec 29, 2021

Binance Smart Chain, BSC for short, is a blockchain that seeks to provide both an alternative and extension to the Ethereum Blockchain. It has done this through several clever implementations that took place during the building of the platform. This guide will walk you...

Continue reading
How to install and run a Geth node
Mar 23, 2022

Ethereum nodes are computers participating in Ethereum blockchain network. These nodes are actual computers running software that verifies, stores, and sometimes creates blocks. The actual software is called a "client," and it allows us to interact with the blockchain...

Continue reading
Ethereum full node vs archive node
Apr 12, 2022

If the Ethereum network is to be seen as a globally distributed computer, then nodes provide computational power and resources to this computer. In this guide, we’ll understand more about Ethereum full nodes and archive nodes then explore the difference between them.

Continue reading
How to Use Laika with QuickNode
Apr 22, 2022

Developers spend most of their time writing code, testing, and fixing bugs. A lot of the time spent with these tasks can be simplified by using a tool like Laika. Laika is a Web3 development tool that aims to improve the developer experience when interacting with the...

Continue reading