Update repository URLs and finalize CHANGELOG for v0.1.0 release

Update all fips-network/fips references to jmcorgan/fips across
Cargo.toml, README, CONTRIBUTING, packaging, and config files.
Merge CHANGELOG Unreleased and 0.1.0-alpha sections into a single
0.1.0 release entry. Update README roadmap.
This commit is contained in:
Johnathan Corgan
2026-03-12 16:51:34 +00:00
parent 46ccd9744e
commit 1898a7c390
7 changed files with 70 additions and 59 deletions
+62 -51
View File
@@ -7,64 +7,75 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Added ## [0.1.0] - 2026-03-12
- Ethernet transport with beacon discovery and auto-connect ### Added (Initial Release)
- TCP transport with configurable bind address and static peer support
- Docker sidecar deployment for containerized services #### Session Layer (FSP)
- Comprehensive node and transport statistics via control socket
- fipstop TUI monitoring tool with smoothed metrics and quality indices - End-to-end encrypted datagram service between mesh nodes addressed by Nostr npub
- fipstop peers display: transport type, direction, and tree roles - Noise XK sessions with mutual authentication, replay protection, and forward secrecy
- Estimated mesh size from bloom filter cardinality - Automatic session rekeying with configurable time/message thresholds and drain window for in-flight packets
- ECN congestion signaling and transport congestion detection - Port multiplexing for multiple services over a single session
- Persistent identity with key file management (`fipsctl keygen`) - Session-layer metrics: sender/receiver reports with RTT, jitter, delivery ratio, and burst loss tracking
- Periodic Noise rekey with fresh DH for forward secrecy (FMP + FSP) - Passive RTT measurement via spin bit
- Host-to-npub static mapping: resolve `hostname.fips` via host map
#### IPv6 Adapter
- IPv6 adapter interface allowing tunneling TCP/IPv6 through FIPS mesh
for traditional IP applications (TUN interface)
- DNS resolver allowing IP applications to reach nodes by npub.fips name
- Host-to-npub static mappings: resolve `hostname.fips` via host map
populated from peer config aliases and `/etc/fips/hosts` file populated from peer config aliases and `/etc/fips/hosts` file
- DNS responder auto-reloads hosts file on modification (no restart needed)
#### Mesh Layer (FMP)
- Self-organized core mesh routing protocol with adaptive least cost forwarding
- Noise IK hop-by-hop link encryption with mutual authentication and replay protection between peer nodes
- Distributed spanning tree construction with cost-based parent selection and adaptive reconfiguration
- Destination route discovery via bloom filter-based directed search protocol
- Path MTU discovery with per-link MTU tracking and MtuExceeded error signaling
- Link-layer MMP: SRTT, jitter, one-way delay trends, packet loss, and ETX metrics
- Link-layer heartbeat with configurable liveness timeout for dead peer detection
- Epoch-based peer restart detection
- Automatic link rekeying with K-bit epoch coordination and drain window
- Static peer auto-reconnect with exponential backoff
- Multi-address peers with transport priority-based failover
- Msg1 rate limiting for handshake DoS protection
#### Mesh Peer Transports
- UDP overlay transport with inbound and static outbound peer configuration
- TCP overlay transport with listening port and static outbound peer support
- Ethernet/WiFi transport (MAC address based, no IP stack) with optional automatic peer discovery and auto-connect
#### Operator Tooling
- Ephemeral or persistent node identity with key file management
- Unix domain control socket for runtime observability
- `fipsctl` CLI tool for control socket interaction and node management
- Comprehensive node and transport statistics via control socket
- `fipstop` TUI monitoring tool with real-time session, peer, and transport configuration and metrics display
#### Packaging and Deployment
- Debian/Ubuntu `.deb` packaging via cargo-deb - Debian/Ubuntu `.deb` packaging via cargo-deb
- Systemd service packaging with tarball installer - Systemd service packaging with tarball installer
- OpenWRT package with opkg feed and init script
- Docker sidecar deployment for containerized services
- Build version metadata: git commit hash, dirty flag, and target triple - Build version metadata: git commit hash, dirty flag, and target triple
embedded in all binaries via `--version` embedded in all binaries via `--version`
- Local CI runner script (`testing/ci-local.sh`)
- TCP transport node-level integration tests
- CI: expanded integration matrix, nextest JUnit reporting, workflow_dispatch
- CHANGELOG.md following Keep a Changelog format
### Fixed #### Testing and CI
- Spanning tree coordinate loop: reject parents whose ancestry contains us - Comprehensive unit and integration tests covering all protocol layers and transports
- PMTUD per-destination path MTU check and ICMPv6 MTU field width
- Ethernet AEAD decryption failures caused by minimum-frame padding
- Link-dead detection skipping peers that never send data
- FMP version check added to TCP stream reader
- Control socket path mismatch between daemon and clients
- fips-dns.service pulling in systemd-resolved and hanging on missing fips0
### Changed
- GitHub repository moved from `jmcorgan/fips` to `fips-network/fips`
## [0.1.0-alpha] - 2026-02-24
### Added
- Core mesh routing protocol with greedy coordinate-based forwarding
- Noise IK handshake at FMP (link layer) and Noise XK at FSP (session layer)
- UDP transport with configurable bind address and static peers
- TUN-based virtual network interface (fips0) with ICMPv6 Packet Too Big
- DNS resolver for .fips domain names (port 5354)
- Spanning tree construction with cost-based parent selection and
flap dampening
- Bloom filter-based identity discovery protocol with reverse-path routing
- MMP (Mesh Management Protocol) for link and session layer measurement
- Hybrid coordinate warmup (CoordsWarmup message and proactive fallback)
- Handshake retry with exponential backoff (link and session layer)
- Link-layer heartbeat and liveness timeout for dead peer detection
- Epoch-based peer restart detection
- Per-link MTU support and reactive MtuExceeded error signal
- Session idle timeout and identity cache expiry
- Unix domain control socket for runtime observability (fipsctl)
- Docker test harness with static and stochastic topologies - Docker test harness with static and stochastic topologies
- CI with GitHub Actions (x86_64 and aarch64, unit and integration tests) - Chaos testing with simulated severe network conditions: latency, packet loss, reordering, and peer churn
- CI with GitHub Actions: x86_64 and aarch64, integration test matrix, nextest JUnit reporting
- Local CI runner script (`testing/ci-local.sh`)
#### Project
- Design documentation suite covering all protocol layers - Design documentation suite covering all protocol layers
- CHANGELOG.md following Keep a Changelog format
- Repository mirrored to [ngit](https://gitworkshop.dev/npub1y0gja7r4re0wyelmvdqa03qmjs62rwvcd8szzt4nf4t2hd43969qj000ly/relay.ngit.dev/fips)
+1 -1
View File
@@ -5,7 +5,7 @@
Clone the repo and verify your setup: Clone the repo and verify your setup:
``` ```
git clone https://github.com/fips-network/fips.git git clone https://github.com/jmcorgan/fips.git
cd fips cd fips
cargo build cargo build
cargo test cargo test
+1 -1
View File
@@ -5,7 +5,7 @@ edition = "2024"
description = "A distributed, decentralized network routing protocol for mesh nodes connecting over arbitrary transports" description = "A distributed, decentralized network routing protocol for mesh nodes connecting over arbitrary transports"
license = "MIT" license = "MIT"
authors = ["Johnathan Corgan <jcorgan@corganlabs.com>"] authors = ["Johnathan Corgan <jcorgan@corganlabs.com>"]
repository = "https://github.com/fips-network/fips" repository = "https://github.com/jmcorgan/fips"
readme = "README.md" readme = "README.md"
[features] [features]
+2 -2
View File
@@ -59,7 +59,7 @@ endpoints.
## Building ## Building
```bash ```bash
git clone https://github.com/fips-network/fips.git git clone https://github.com/jmcorgan/fips.git
cd fips cd fips
cargo build --release cargo build --release
``` ```
@@ -264,13 +264,13 @@ UDP, TCP, and Ethernet but has not been tested beyond small meshes.
- Additional transports (Bluetooth, Tor) - Additional transports (Bluetooth, Tor)
- Improved routing resilience under churn - Improved routing resilience under churn
- Security audit of cryptographic protocols - Security audit of cryptographic protocols
- CI pipeline and published crate
### Longer-term ### Longer-term
- Mobile platform support - Mobile platform support
- Bandwidth-aware routing and QoS - Bandwidth-aware routing and QoS
- Protocol stability and versioned wire format - Protocol stability and versioned wire format
- Published crate
## License ## License
+1 -1
View File
@@ -1,7 +1,7 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: fips Upstream-Name: fips
Upstream-Contact: Johnathan Corgan <jcorgan@corganlabs.com> Upstream-Contact: Johnathan Corgan <jcorgan@corganlabs.com>
Source: https://github.com/fips-network/fips Source: https://github.com/jmcorgan/fips
Files: * Files: *
Copyright: 2026 Johnathan Corgan Copyright: 2026 Johnathan Corgan
+2 -2
View File
@@ -7,7 +7,7 @@ PKG_RELEASE:=1
# Pin to a specific commit for reproducible builds. # Pin to a specific commit for reproducible builds.
# Update PKG_SOURCE_VERSION and PKG_MIRROR_HASH when upgrading. # Update PKG_SOURCE_VERSION and PKG_MIRROR_HASH when upgrading.
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/fips-network/fips.git PKG_SOURCE_URL:=https://github.com/jmcorgan/fips.git
PKG_SOURCE_VERSION:=master PKG_SOURCE_VERSION:=master
PKG_MIRROR_HASH:=skip PKG_MIRROR_HASH:=skip
@@ -48,7 +48,7 @@ define Package/fips
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
TITLE:=FIPS Mesh Network Daemon TITLE:=FIPS Mesh Network Daemon
URL:=https://github.com/fips-network/fips URL:=https://github.com/jmcorgan/fips
DEPENDS:=+kmod-tun +kmod-br-netfilter DEPENDS:=+kmod-tun +kmod-br-netfilter
endef endef
+1 -1
View File
@@ -76,7 +76,7 @@ ln -s /path/to/fips/packaging/openwrt package/fips
Or add the FIPS repository as a feed in `feeds.conf`: Or add the FIPS repository as a feed in `feeds.conf`:
``` ```
src-git-full fips https://github.com/fips-network/fips.git src-git-full fips https://github.com/jmcorgan/fips.git
``` ```
Then update and install feeds: Then update and install feeds: