P2PNet 1.0.0.9-alpha
dotnet add package P2PNet --version 1.0.0.9-alpha
NuGet\Install-Package P2PNet -Version 1.0.0.9-alpha
<PackageReference Include="P2PNet" Version="1.0.0.9-alpha" />
<PackageVersion Include="P2PNet" Version="1.0.0.9-alpha" />
<PackageReference Include="P2PNet" />
paket add P2PNet --version 1.0.0.9-alpha
#r "nuget: P2PNet, 1.0.0.9-alpha"
#addin nuget:?package=P2PNet&version=1.0.0.9-alpha&prerelease
#tool nuget:?package=P2PNet&version=1.0.0.9-alpha&prerelease
P2PNet
A .Net library toolkit for quickly building P2P network applications. P2PNet is fully AOT compatible and aims to be the most reliable, documented, and stable .Net P2P toolchain.
About
P2PNet helps quickly build and facilitate peer-to-peer networking with an array of components for setting up your network. Initial peer discovery can be initiated in the LAN, and facilitated over a WAN utilizing various methods such as bootstrapping and IPv6 ICMP blasting. The PeerNetwork will be able to use a range of interoperable WAN and LAN discovery mechanisms to expand and grow the network, manage peer connections, and distribute data and information. Implementing the P2PNet library will make implementing peer-to-peer functionality in your application more seamless and integrated.
Bootstrap Server Container
Docker image for launching an instance of the bootstrap server:
See live example deployment:
Documentation
Technical overview and API documentation available down below:
Product | Versions 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- ConsoleDebugger (>= 1.0.5)
- DiscUtils (>= 0.16.13)
- PacketDotNet (>= 1.4.8-pre18)
- PgpCore (>= 6.5.0)
- SharpPcap (>= 6.3.0)
-
net9.0
- ConsoleDebugger (>= 1.0.5)
- DiscUtils (>= 0.16.13)
- PacketDotNet (>= 1.4.8-pre18)
- PgpCore (>= 6.5.0)
- SharpPcap (>= 6.3.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on P2PNet:
Package | Downloads |
---|---|
P2PNet.Widescan
A P2PNet component for mass IPv6 address scanning and discovery via ICMP packets and docile packet sniffing. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0.9-alpha | 65 | 2 days ago |
1.0.0.8-alpha | 117 | 10 days ago |
1.0.0.7-alpha | 92 | a month ago |
1.0.0.6-alpha | 63 | a month ago |
Bootstrap implementation, greater NetworkTask handling logic, and other misc improvements
-- PeerNetwork peer management
* Updated `LANDiscoveryChannelBase.cs` to assign `SourceOriginIdentifier` to new peers
* Enhanced `PeerNetwork.cs` with a method to retrieve peers by identifier
* Updated `PeerChannel.cs` and `PeerChannelBase.cs` so that IPeer is held in the base class as opposed to the derived class
-- Bootstrap
* Added identifier setting logic in `BootstrapChannel.cs` for `BootstrapServer`
* Introduced `IsActive` property in `BootstrapChannelBase.cs` to track if channel is actively communicating.
* Improved error handling in `BootstrapChannelBase.cs` with structured responses and swappable delegate.
-- NetworkTasks and related
* Refactored `ValidateNetworkTaskHash` to simplify task creation with lots of new methods (will ensure organization and consistency throughout implementation)
* Implemented `NetworkTaskTrustConfiguration` for managing task trust requirements in the TrustPolicy.PeerNetworkTrustPolicy section. This wraps a TaskType with a collection of TaskTrustParameters, which define the rules and permissions checked before executing a task or not.
* Modified `NetworkTaskHandler.cs` to process incoming tasks with origin info -- this uses a new struct NetworkTaskOriginInfo which has several constructor options for passing relavant information needed for the NetworkTaskTrustConfiguration class in the TrustPolicy section named NetworkTaskTrustSettings. To enqueue incoming NetworkTasks, the Enqueue method will need the NetworkTask -and- a NetworkTaskOriginInfo to be passed as params