PierTwo.Lantern.Discv5.WireProtocol 1.0.0-preview.5

This is a prerelease version of PierTwo.Lantern.Discv5.WireProtocol.
dotnet add package PierTwo.Lantern.Discv5.WireProtocol --version 1.0.0-preview.5                
NuGet\Install-Package PierTwo.Lantern.Discv5.WireProtocol -Version 1.0.0-preview.5                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PierTwo.Lantern.Discv5.WireProtocol" Version="1.0.0-preview.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PierTwo.Lantern.Discv5.WireProtocol --version 1.0.0-preview.5                
#r "nuget: PierTwo.Lantern.Discv5.WireProtocol, 1.0.0-preview.5"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PierTwo.Lantern.Discv5.WireProtocol as a Cake Addin
#addin nuget:?package=PierTwo.Lantern.Discv5.WireProtocol&version=1.0.0-preview.5&prerelease

// Install PierTwo.Lantern.Discv5.WireProtocol as a Cake Tool
#tool nuget:?package=PierTwo.Lantern.Discv5.WireProtocol&version=1.0.0-preview.5&prerelease                

<center>Lantern.Discv5</center>

Lantern.Discv5, written in C#, is a library that provides an implementation of the Node Discovery V5 protocol.

This implementation provides relevant functionalities to allow peer-to-peer communication and facilitate node discovery in applications built on the .NET platform.

Features

The provided implementation has the following features available:

  • Enables discovery of nodes that support the ENR (Ethereum Node Record) format
  • Encrypted communication between peers using Secp256k1 and Diffie-Hellman key exchange protocol
  • Provides functionality to enumerate the entire DHT in the network, leveraging lookup features for targeted nodes via independent path buckets
  • Support for implementing custom handling of application-level request and response using TALKREQ and TALKRESP messages

Installation

Note: These instructions assume you are familiar with the .NET Core development environment. If not, please refer to the official documentation to get started.

  1. Install .NET Core SDK on your system if you haven't already.

  2. Clone the repository:

    git clone https://github.com/Pier-Two/Lantern.Discv5.git
    
  3. Change to the Lantern.Discv5 directory:

    cd Lantern.Discv5
    
  4. Build the project:

    dotnet build
    
  5. Execute tests:

    dotnet test
    

Quick Usage

This library can be used in any C# project using the following import statement:

using Lantern.Discv5.WireProtocol;

You can initialize the protocol by providing an array of bootstrap ENR (Ethereum Node Record) strings:

Discv5Protocol discv5 = Discv5Builder.CreateDefault(bootstrapEnrs);

Please refer to the Usage guide for more information and examples of the bootstrap ENRs as well as a comprehensive understanding of the available functionalities and configuration options.

Contributing

We welcome contributions to the Lantern.Discv5 project. To get involved, please read our Contributing Guidelines for the process for submitting pull requests to this repository.

License

This project is licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on PierTwo.Lantern.Discv5.WireProtocol:

Repository Stars
NethermindEth/nethermind
A robust execution client for Ethereum node operators.
Version Downloads Last updated
1.0.0-preview.5 43 12/4/2024
1.0.0-preview.4 84,381 6/26/2024
1.0.0-preview.3 10,017 6/25/2024