Skip to content

Latest commit

 

History

History
57 lines (34 loc) · 3.46 KB

File metadata and controls

57 lines (34 loc) · 3.46 KB
description
Private networks of Nethermind Client

Private Networks

It is possible to configure a private network (private blockchain) using Nethermind nodes. Before you setup a private network you will need to make a few decisions. One of them is choosing a consensus protocol that will be used for securing the network.

Consensus Algorithms

Nethermind supports the following consensus algorithms:

  • ethash (PoW)
  • AuRa (PoA)
  • Clique (PoA)
  • NethDev (debug / dev)

PoW

In the proof of work consensus algorithm some of the nodes participate in a race to mine a new block by solving a mathematical puzzle. The difficulty of the puzzle (the amount of computation needed to find a solution) is adjusted so as to make blocks appear with some average frequency (every 15 seconds on the Ethereum mainnet). PoW is currently used to secure the public Ethereum mainnet and the Ropsten testnet. The only mining algorithm used for PoW in Ethereum is called ethash and is designed to be strict memory hard (see Strict Memory Hard Hashing Functions).

Clique

Clique is an implementation of the Proof of Authority (PoA) consensus algorithm. The idea behind PoA is to choose a group of nodes within the network with authority to create (seal) new blocks. In Clique such nodes are called signers and after the initial setup signers can vote to add new signers to the group or to remove any of the existing signers. Clique is currently supported by Geth, Parity, Nethermind and Pantheon and is used to secure the Goerli and Rinkeby testnets.

AuRa

AuRa is another implementation of the Proof of Authority consensus algorithm. It is currently only supported by Nethermind and Parity Ethereum client. Aura is used to secure the Kovan testnet and the POA Network.

NethDev (we also call it Spaceneth)

NethDev is a very simple consensus algorithm (or to better describe it - lack of consensus algorithm). NethDev can be used for setting up nodes for development and testing purposes. On the NethDev network any node can create a block with transactions and as long as it is a valid Ethereum block all other nodes will accept it.

Configuration

Nethermind uses the same format chainspec files that can be used for setting up private networks in Parity. Most of the elements of the chainspec files are supported by Nethermind:

  • consensus engine and its parameters (to choose between Ethash, Clique, AuRa or NethDev)
  • genesis block spec
  • EIP transitions
  • initial account allocations
  • bootnodes

The following elements are NOT supported at the moment:

  • hardcoded sync block hashes
  • precompile definitions and precompile activation blocks

You can find below links to some of the chainspec files used to define various Ethereum networks:

  • foundation - the public Ethereum mainnet
  • rinkeby - the original Clique based testnet
  • goerli - the new Clique based testnet
  • spaceneth - a private network example with NethDev