PierTwo.Lantern.Discv5.Enr 1.0.0-preview.3

This is a prerelease version of PierTwo.Lantern.Discv5.Enr.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package PierTwo.Lantern.Discv5.Enr --version 1.0.0-preview.3                
NuGet\Install-Package PierTwo.Lantern.Discv5.Enr -Version 1.0.0-preview.3                
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.Enr" Version="1.0.0-preview.3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PierTwo.Lantern.Discv5.Enr --version 1.0.0-preview.3                
#r "nuget: PierTwo.Lantern.Discv5.Enr, 1.0.0-preview.3"                
#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.Enr as a Cake Addin
#addin nuget:?package=PierTwo.Lantern.Discv5.Enr&version=1.0.0-preview.3&prerelease

// Install PierTwo.Lantern.Discv5.Enr as a Cake Tool
#tool nuget:?package=PierTwo.Lantern.Discv5.Enr&version=1.0.0-preview.3&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 (1)

Showing the top 1 NuGet packages that depend on PierTwo.Lantern.Discv5.Enr:

Package Downloads
PierTwo.Lantern.Discv5.WireProtocol

C# implementation of the Node Discovery Protocol v5.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0-preview.5 41 12/4/2024
1.0.0-preview.4 64,725 6/26/2024
1.0.0-preview.3 10,004 6/25/2024