Skip to content

P2PNetwork

A Go network stack with a bootstrap node, a peer node, and a Fyne desktop client.

P2PNetwork is a Go module named fgov/network. It uses libp2p and a Kademlia DHT to let nodes discover each other, connect directly, and exchange a display name over a small /fgov stream protocol.

The current codebase ships three entrypoints:

  • cmd/bootstrap - starts the bootstrap node on port 52837
  • cmd/peer - starts a peer node, reads bs-nodes if present, and discovers peers
  • cmd/gui - starts a Fyne desktop app that wraps the same node package

Getting Started

Build the project and run your first nodes in Getting Started.

How to Use

Learn the exact CLI flow for bootstrap and peer nodes in How to Use.

GUI

See how the desktop app uses the same node package in GUI.

Architecture

Understand the runtime layout, node data model, and how peers are tracked in Architecture.

Services

Review discovery, connection, and name-sync behavior in Services.

Network Protocol

See the actual topics, stream handlers, and address formats in Network Protocol.

Downloads

Check the release artifacts and build options in Downloads.


Bootstrap node

Prompts for a name, starts on 52837, prints its multiaddr, and writes the first address to bs-nodes.

Peer node

Prompts for a name, reads bs-nodes if available, advertises on fgov-network, and discovers peers in the DHT.

Peer naming

Uses the /fgov stream protocol to exchange names and keep a readable peer list.

Desktop GUI

The Fyne app shows running state, connected peers, and the current node name.

The repository already includes Windows release binaries under Releases/:

  • bootstrap-v1.0.exe
  • peer-node-v1.0.exe
  • bootstrap-v1.1.exe
  • peer-v1.1.exe
  • gui-v1.1.exe

Use Downloads for build commands and Release Notes for the current release inventory.

Loading live data from GitHub...

Repository

Name: -

Description: -

Stars: -

Language: -

Last push: -

Open Issues

Count: -

    Open Milestones

    Count: -

      Read Getting Started first, then How to Use. That is the fastest path to a working network.