diff --git a/.github/workflows/nlpn.yml b/.github/workflows/nlpn.yml index 60e9cca16..695046af9 100644 --- a/.github/workflows/nlpn.yml +++ b/.github/workflows/nlpn.yml @@ -2,10 +2,10 @@ name: nlpn CI on: push: paths: ['nlpn/**', '.github/workflows/nlpn.yml', 'vendor/**', 'Makefile', - 'nimbus.nimble'] + 'nimbus.nimble', '!nlpn/**/*.md'] pull_request: paths: ['nlpn/**', '.github/workflows/nlpn.yml', 'vendor/**', 'Makefile', - 'nimbus.nimble'] + 'nimbus.nimble', '!nlpn/**/*.md'] jobs: build: diff --git a/nlpn/README.md b/nlpn/README.md new file mode 100644 index 000000000..1ec447ddd --- /dev/null +++ b/nlpn/README.md @@ -0,0 +1,87 @@ +# Nimbus Light Portal Network Client + +[![nlpn CI](https://github.com/status-im/nimbus-eth1/actions/workflows/nlpn.yml/badge.svg)](https://github.com/status-im/nimbus-eth1/actions/workflows/nlpn.yml) +![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg) +[![License: Apache](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) + +[![Discord: Nimbus](https://img.shields.io/badge/Discord-Nimbus-blue.svg)](https://discord.gg/XRxWahP) +[![Status: #nimbus-general](https://img.shields.io/badge/Status-nimbus--general-blue.svg)](https://join.status.im/nimbus-general) + +## Introduction +This folder holds the development of the Nimbus client implementation supporting +the Portal Network. 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 +[stateless-ethereum-specs repository](https://github.com/ethereum/stateless-ethereum-specs/blob/master/portal-network.md). + + +## Development Updates + +To keep up to date with changes and development progress, follow the +[Nimbus blog](https://our.status.im/tag/nimbus/). + +## How to Build & Run + +### Prerequisites +- GNU Make, Bash and the usual POSIX utilities. Git 2.9.4 or newer. + +### Build nlpn client +```bash +git clone git@github.com:status-im/nimbus-eth1.git +cd nimbus-eth1 +make nlpn + +# See available command line options +./build/nlpn --help + +# Example command: Run the client and connect to a bootnode. +./build/nlpn --log-level:debug --bootnode:enr: +``` + +### Update and rebuild nlpn client +```bash +# From the nimbus-eth1 repository +git pull +# To bring the git submodules up to date +make update + +make nlpn +``` + +### Windows support + +Follow the steps outlined [here](../README.md#windows) to build nlpn 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.: + +```bash +# start a new interactive shell with the right env vars set +./env.sh bash +``` + +More [development tips](../README.md#devel-tips) +can be found on the general nimbus-eth1 readme. + +The code follows the +[Status Nim Style Guide](https://status-im.github.io/nim-style-guide/). + +## License + +Licensed and distributed under either of + +* MIT license: [LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT + +or + +* Apache License, Version 2.0, ([LICENSE-APACHEv2](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.