Giter Club home page Giter Club logo

nethermind's Introduction

.NET Core Ethereum client

Nethermind is a is a high-performance, highly configurable full Ethereum protocol client built on .NET Core that runs on Linux, Windows and MacOS, and supports Clique, AuRa, Ethash and Proof of Stake consensus algorithms. Nethermind offers very fast sync speeds and support for external plug-ins. Enjoy reliable access to rich on-chain data thanks to high performance JSON-RPC based on Kestrel web server. Healthy node monitoring is secured with a Grafana dashboard and Seq enterprise logging.

Documentation Releases Docker Pulls Codecov Website

๐Ÿ—ฃ๏ธ Chats

Discord Gitter

๐Ÿ“ข Social

Twitter Follow LinkedIn Follow Medium Follow

Download and run

Windows Linux MacOS

โ›“๏ธ Currently supported list of networks

Network name
Mainnet
Goerli
Rinkeby
Ropsten
Sepolia
xDai (Gnosis)
Poacore
Sokol
EnergyWeb
Volta
Kovan

Using PPA

(Tested on Ubuntu Series: Focal, Bionic, Xenial and Trusty)

  1. sudo add-apt-repository ppa:nethermindeth/nethermind
  2. sudo apt install nethermind
  3. To execute the launcher nethermind
  4. To execute the runner nethermind --config mainnet_pruned

Using Homebrew

  1. brew tap nethermindeth/nethermind
  2. brew install nethermind
  3. To execute the launcher nethermind-launcher
  4. To execute the runner nethermind --config mainnet_pruned

Build from Source

๐Ÿšง Prerequisites

.NET SDK

Windows

Linux

Ubuntu

sudo apt-get install libsnappy-dev libc6-dev libc6

# Link libraries (only for Ubuntu >= 21.04)
amd64 architecture: sudo ln -s /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so
arm64/aarch64 architecture: sudo ln -s /usr/lib/aarch64-linux-gnu/libdl.so.2 /usr/lib/aarch64-linux-gnu/libdl.so

# Extra dependency for arm64/aarch64
sudo apt-get install libgflags-dev

Tested on Ubuntu 21.04, 20.04 and 18.04 LTS and 21.10

Debian

sudo apt-get install libsnappy-dev libc6-dev libc6

Tested on Debian 10 (9 not working)

CentOS

sudo yum install -y glibc-devel bzip2-devel libzstd

# Link libraries
sudo ln -s `find /usr/lib64/ -type f -name "libbz2.so.1*"` /usr/lib64/libbz2.so.1.0 && \
sudo ln -s `find /usr/lib64/ -type f -name "libsnappy.so.1*"` /usr/lib64/libsnappy.so

Tested on CentOS 8

Fedora

sudo yum install -y glibc-devel snappy libzstd

# Link libraries
sudo ln -s `find /usr/lib64/ -type f -name "libbz2.so.1*"` /usr/lib64/libbz2.so.1.0 && \
sudo ln -s `find /usr/lib64/ -type f -name "libsnappy.so.1*"` /usr/lib64/libsnappy.so
# also required for Fedora 35
sudo ln -s `find /usr/lib64/ -type f -name "libdl.so.2*"` /usr/lib64/libdl.so

Tested on Fedora 32

MacOS

brew install rocksdb gmp snappy lz4 zstd
  • Apple Silicon (M1) users only: create symlink for homebrew dependencies
sudo ln -s `find /opt/homebrew/Cellar/snappy -name "libsnappy.dylib"` /usr/local/lib/libsnappy.dylib

๐Ÿ—๏ธ Build and Run

git clone https://github.com/NethermindEth/nethermind --recursive
cd nethermind/src/Nethermind
dotnet build Nethermind.sln -c Release
cd Nethermind.Runner
dotnet run -c Release --no-build --config mainnet

๐Ÿณ Docker Image

Official Nethermind docker images are available on Docker Hub.

Get digest of docker image

In case of any docker image need to be updated in the repository, you can update the digest of this images with the next commands

docker inspect --format='{{index .RepoDigests 0}}' <image_name>

The output must show the image digest, and then you can copy that output in the FROM tag inside the Dockerfile

๐Ÿงช Test

If you want to run the Nethermind or Ethereum Foundation tests, then:

dotnet build Nethermind.sln -c Debug
dotnet test Nethermind.sln

dotnet build EthereumTests.sln -c Debug
dotnet test EthereumTests.sln

๐Ÿงฑ IDE

JetBrains Rider Visual Studio Code Visual Studio

๐Ÿ‘ฃ Contributors welcome

GitHub Issues GitHub Contributors

License

GitHub

nethermind's People

Contributors

tkstanczak avatar lukaszrozmej avatar github-actions[bot] avatar matilote avatar spetz avatar marekm25 avatar glesniakiewicz avatar marcindsobczak avatar sebastiandremo avatar kasiagankiewicz avatar sgryphon avatar asdacap avatar dceleda avatar kjazgar avatar micahzoltu avatar scooletz avatar one-three-three-seven avatar kristofgazso avatar rlanga avatar flcl42 avatar jmederosalvarado avatar varasev avatar falcoxyz avatar alexssd7 avatar 1swaraj avatar kchowanski avatar dockboss avatar antid2ta avatar tanishqjasoria avatar kkokosa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.