• JetBrains Rider https://www.jetbrains.com/rider/
• VS Code https://code.visualstudio.com/docs/other/dotnet
• Windows https://www.microsoft.com/net/download?initial-os=windows
• Linux https://www.microsoft.com/net/download?initial-os=linux (make sure to select the right distribution)
• Mac https://www.microsoft.com/net/download?initial-os=macos
on Linux:
sudo apt-get update
sudo apt-get install libsnappy-dev
sudo apt-get install libc6-dev
sudo apt-get install libc6
then (any platform):
git clone https://github.com/tkstanczak/nethermind.git
cd nethermind/src/Nethermind
git submodule update --init
dotnet build
mainnet sync (networking is very unstable, current version should not be considered secure or correct, do not use for anything but experimenting with the source code)
//change paths in config.json to run on Linux / MacOS
//change test node key to something random in config.json
cd src/Nethermind/Nethermind.Runner
dotnet run --config configs//ropsten_windows_discovery.config.json
At Nethermind we are building an Open Source multiplatform Ethereum client implementation in .NET Core (running seamlessly both on Linux and Windows). Simultaneously our team works on Nethermind trading tools, analytics and decentralized exchange (0x relay).
Nethermind client can be used in your projects, when setting up private Ethereum networks or dApps. Nethermind is under development and below is the long list of items that are still to be implemented (and we would love to see open source contributions here). A full and up to date list will be maintained via issues
- Implement light client implementation (LES protocol)
- Implement Warp sync protocol (from Parity - PAR protocol)
- Reverse engineer and implement discovery v5 protocol from Geth
- Implement eth63 sync protocol (geth fast sync)
consensus (both are funded on Gitcoin)
- Implement Clique (PoA as in Rinkeby by Geth)
- Implement PoA as in Parity (integrate with Kivan network)
- Test sync processes with Hive tests
- Tune RocksDB to limit memory usage (possibly remove dependency on RocksDB sharp and add our own wrapper around C++ library with PInvoke just for the functions we use)
- Further improve performance of RLP decoding / encoding by using Recyclable Memory Streams everywhere
- Implement pruning
- implement sharding
- implement Casper
- support plasma cash
- state channels