This commit is contained in:
Sudo-Ivan
2024-12-31 14:12:55 -06:00
parent f15d8f6a84
commit 80eac50632
4 changed files with 139 additions and 121 deletions

202
README.md
View File

@@ -1,118 +1,118 @@
# Reticulum-Go # Reticulum-Go
Reticulum Network Stack in Go. Reticulum Network Stack in Go.
To-Do List ## To-Do List
Core Components ### Core Components
[✓] Basic Configuration System - [x] Basic Configuration System
[✓] Basic config structure - [x] Basic config structure
[✓] Default settings - [x] Default settings
[✓] Config file loading/saving - [x] Config file loading/saving
[✓] Path management - [x] Path management
[✓] Constants Definition - [x] Constants Definition
[✓] Packet constants - [x] Packet constants
[✓] MTU constants - [x] MTU constants
[✓] Header types - [x] Header types
[✓] Additional protocol constants - [x] Additional protocol constants
[✓] Identity Management - [x] Identity Management
[✓] Identity creation - [x] Identity creation
[✓] Key pair generation - [x] Key pair generation
[✓] Identity storage/recall - [x] Identity storage/recall
[✓] Public key handling - [x] Public key handling
[✓] Signature verification - [x] Signature verification
[✓] Hash functions - [x] Hash functions
[✓] Cryptographic Primitives - [x] Cryptographic Primitives
[✓] Ed25519 - [x] Ed25519
[✓] Curve25519 - [x] Curve25519
[✓] AES-GCM - [x] AES-GCM
[✓] SHA-256 - [x] SHA-256
[✓] HKDF - [x] HKDF
[✓] Secure random number generation - [x] Secure random number generation
[✓] HMAC - [x] HMAC
[✓] Packet Handling - [x] Packet Handling
[✓] Packet creation - [x] Packet creation
[✓] Packet validation - [x] Packet validation
[✓] Basic proof system - [x] Basic proof system
[✓] Packet encryption - [x] Packet encryption
[✓] Signature verification - [x] Signature verification
[ ] Testing of packet encrypt/decrypt/sign/proof - [ ] Testing of packet encrypt/decrypt/sign/proof
[✓] Transport Layer - [x] Transport Layer
[✓] Path management - [x] Path management
[✓] Basic packet routing - [x] Basic packet routing
[✓] Announce handling - [x] Announce handling
[✓] Link management - [x] Link management
[✓] Resource cleanup - [x] Resource cleanup
[✓] Network layer integration - [x] Network layer integration
[ ] Testing announce from go client to python client - [ ] Testing announce from go client to python client
[ ] Testing path finding and caching - [ ] Testing path finding and caching
[✓] Interface Implementation ### Interface Implementation
[✓] UDP Interface - [x] UDP Interface
[✓] TCP Interface - [x] TCP Interface
[✓] Auto Interface - [x] Auto Interface
[ ] Local Interface (In Progress) - [ ] Local Interface (In Progress)
[ ] I2P Interface - [ ] I2P Interface
[ ] Pipe Interface - [ ] Pipe Interface
[ ] RNode Interface - [ ] RNode Interface
[ ] RNode Multiinterface - [ ] RNode Multiinterface
[ ] Serial Interface - [ ] Serial Interface
[ ] AX25KISS Interface - [ ] AX25KISS Interface
[ ] Interface Discovery - [ ] Interface Discovery
[ ] Interface Modes - [ ] Interface Modes
- [ ] Full mode - [ ] Full mode
- [ ] Gateway mode - [ ] Gateway mode
- [ ] Access point mode - [ ] Access point mode
- [ ] Roaming mode - [ ] Roaming mode
- [ ] Boundary mode - [ ] Boundary mode
[✓] Destination System ### Destination System
[✓] Destination creation - [x] Destination creation
[✓] Destination types (IN/OUT) - [x] Destination types (IN/OUT)
[✓] Destination aspects - [x] Destination aspects
[✓] Announce implementation - [x] Announce implementation
[✓] Ratchet support - [x] Ratchet support
[✓] Request handlers - [x] Request handlers
[✓] Link System ### Link System
[✓] Link establishment - [x] Link establishment
[✓] Link teardown - [x] Link teardown
[✓] Basic packet transfer - [x] Basic packet transfer
[✓] Encryption/Decryption - [x] Encryption/Decryption
[✓] Identity verification - [x] Identity verification
[✓] Request/Response handling - [x] Request/Response handling
[✓] Session key management - [x] Session key management
[✓] Link state tracking - [x] Link state tracking
[✓] Resource System ### Resource System
[✓] Resource creation - [x] Resource creation
[✓] Resource transfer - [x] Resource transfer
[✓] Compression - [x] Compression
[✓] Progress tracking - [x] Progress tracking
[✓] Segmentation - [x] Segmentation
[✓] Cleanup routines - [x] Cleanup routines
[ ] Testing & Validation ### Testing & Validation
[ ] Unit tests for all components (Link, Resource, Destination, Identity, Packet, Transport, Interface) - [ ] Unit tests for all components (Link, Resource, Destination, Identity, Packet, Transport, Interface)
[ ] Integration tests - [ ] Integration tests
[ ] Cross-client compatibility tests - [ ] Cross-client compatibility tests
[ ] Performance benchmarks - [ ] Performance benchmarks
[ ] Security auditing (When Reticulum is 1.0 / stable) - [ ] Security auditing (When Reticulum is 1.0 / stable)
[ ] Documentation ### Documentation
[ ] API documentation - [ ] API documentation
[ ] Usage examples - [ ] Usage examples
[ ] Other ### Other
[ ] Rate limiting - [ ] Rate limiting
[ ] QoS implementation? - [ ] QoS implementation?
[ ] Ivans Future Addon Packages ### Ivans Future Addon Packages
[ ] Post-quantum cryptographic primitives (seperate package) - [ ] Post-quantum cryptographic primitives (separate package)
[ ] Hardware security module (HSM) support (seperate package) - [ ] Hardware security module (HSM) support (separate package)
[ ] Encrypted storage for identities (seperate package) - [ ] Encrypted storage for identities (separate package)

0
To-Do
View File

View File

@@ -6,17 +6,26 @@ panic_on_interface_error = false
loglevel = 4 loglevel = 4
[interfaces] [interfaces]
[interfaces."Local TCP"] [[Local UDP]]
type = "UDPInterface"
interface_enabled = true
address = "0.0.0.0"
port = 37697
[[Auto Discovery]]
type = "AutoInterface"
interface_enabled = true
discovery_port = 29717
data_port = 42672
[interfaces."RNS Testnet Amsterdam"]
type = "TCPClientInterface" type = "TCPClientInterface"
enabled = true enabled = true
target_host = "rns.quad4.io" target_host = "amsterdam.connect.reticulum.network"
target_port = 4242 target_port = 4965
[interfaces."Local UDP"] [interfaces."RNS Testnet BetweenTheBorders"]
type = "UDPInterface" type = "TCPClientInterface"
enabled = true enabled = true
interface = "lo" target_host = "reticulum.betweentheborders.com"
address = "127.0.0.1" target_port = 4242
port = 37428
target_address = "127.0.0.1"
target_port = 37430

View File

@@ -6,17 +6,26 @@ panic_on_interface_error = false
loglevel = 4 loglevel = 4
[interfaces] [interfaces]
[interfaces."Local TCP"] [interfaces."RNS Testnet Amsterdam"]
type = "TCPClientInterface" type = "TCPClientInterface"
enabled = true enabled = true
target_host = "rns.quad4.io" target_host = "amsterdam.connect.reticulum.network"
target_port = 4243 target_port = 4965
[interfaces."Local UDP"] [interfaces."RNS Testnet BetweenTheBorders"]
type = "UDPInterface" type = "TCPClientInterface"
enabled = true enabled = true
interface = "lo" target_host = "reticulum.betweentheborders.com"
address = "127.0.0.1" target_port = 4242
port = 37430
target_address = "127.0.0.1" [[Local UDP]]
target_port = 37428 type = "UDPInterface"
interface_enabled = true
address = "0.0.0.0"
port = 37698
[[Auto Discovery]]
type = "AutoInterface"
interface_enabled = true
discovery_port = 29718
data_port = 42673