* Sharing block header data around in a Portal history network (PoC) - Rework PortalStream to have an instance per PortalProtocol (this needs to be improved eventually). Each instance uses the same UtpDiscv5Protocol instance. - Add processContent on receival of accepted data - Add dumb neighborhoodGossip: dumb in the sense that it only offers one piece of content at a time. - Add to / adjust populate_db to also allow for propagation of the data and add debug rpc call: portal_history_propagate - Add eth_rpc_client - Add eth_getBlockbyHash (no txs or uncles) to eth API - Add additional test to test_portal_testnet which loads 5 block headers to 1 node, and offers this data to few nodes, which should propagate it over the network further. Next query every node for this data. * Adjust paths on which Fluffy CI is triggered * Add documentation on the local testnet
3.3 KiB
Fluffy: The Nimbus Portal Network Client
Introduction
This folder holds the development of the Nimbus client implementation supporting the Portal Network: fluffy. The Portal Network is a project still heavily in research phase and fully in flux. This client is thus still highly experimental.
Current status of specifications can be found in the portal-network-specs repository.
Development Updates
To keep up to date with changes and development progress, follow the Nimbus blog.
Monthly development updates are shared here.
How to Build & Run
Prerequisites
- GNU Make, Bash and the usual POSIX utilities. Git 2.9.4 or newer.
Build fluffy client
git clone git@github.com:status-im/nimbus-eth1.git
cd nimbus-eth1
make fluffy
# See available command line options
./build/fluffy --help
# Example command: Run the client and connect to a bootstrap node.
./build/fluffy --bootstrap-node:enr:<base64 encoding of ENR>
Update and rebuild fluffy client
# From the nimbus-eth1 repository
git pull
# To bring the git submodules up to date
make update
make fluffy
Run fluffy test suite
# From the nimbus-eth1 repository
make fluffy-test
Run fluffy local testnet
./fluffy/scripts/launch_local_testnet.sh
Find more details on the usage and workings of the local testnet script here.
Windows support
Follow the steps outlined here to build fluffy on Windows.
For Developers
When working on this repository, you can run the env.sh
script to run a
command with the right environment variables set. This means the vendored
Nim and Nim modules will be used, just as when you use make
.
E.g.:
# start a new interactive shell with the right env vars set
./env.sh bash
More development tips can be found on the general nimbus-eth1 readme.
The code follows the Status Nim Style Guide.
Detailed document showing commands to test client protocol interoperability.
License
Licensed and distributed under either of
- MIT license: LICENSE-MIT or http://opensource.org/licenses/MIT
or
- Apache License, Version 2.0, (LICENSE-APACHEv2 or http://www.apache.org/licenses/LICENSE-2.0)
at your option. These files may not be copied, modified, or distributed except according to those terms.