diff --git a/README.md b/README.md index 9ba88c6..f35b459 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,118 @@ # Reticulum-Go -Reticulum Network Stack in Go. +Reticulum Network Stack in Go. -To-Do List +## To-Do List -Core Components -[✓] Basic Configuration System - [✓] Basic config structure - [✓] Default settings - [✓] Config file loading/saving - [✓] Path management +### Core Components +- [x] Basic Configuration System + - [x] Basic config structure + - [x] Default settings + - [x] Config file loading/saving + - [x] Path management -[✓] Constants Definition - [✓] Packet constants - [✓] MTU constants - [✓] Header types - [✓] Additional protocol constants +- [x] Constants Definition + - [x] Packet constants + - [x] MTU constants + - [x] Header types + - [x] Additional protocol constants -[✓] Identity Management - [✓] Identity creation - [✓] Key pair generation - [✓] Identity storage/recall - [✓] Public key handling - [✓] Signature verification - [✓] Hash functions +- [x] Identity Management + - [x] Identity creation + - [x] Key pair generation + - [x] Identity storage/recall + - [x] Public key handling + - [x] Signature verification + - [x] Hash functions -[✓] Cryptographic Primitives - [✓] Ed25519 - [✓] Curve25519 - [✓] AES-GCM - [✓] SHA-256 - [✓] HKDF - [✓] Secure random number generation - [✓] HMAC +- [x] Cryptographic Primitives + - [x] Ed25519 + - [x] Curve25519 + - [x] AES-GCM + - [x] SHA-256 + - [x] HKDF + - [x] Secure random number generation + - [x] HMAC -[✓] Packet Handling - [✓] Packet creation - [✓] Packet validation - [✓] Basic proof system - [✓] Packet encryption - [✓] Signature verification - [ ] Testing of packet encrypt/decrypt/sign/proof +- [x] Packet Handling + - [x] Packet creation + - [x] Packet validation + - [x] Basic proof system + - [x] Packet encryption + - [x] Signature verification + - [ ] Testing of packet encrypt/decrypt/sign/proof -[✓] Transport Layer - [✓] Path management - [✓] Basic packet routing - [✓] Announce handling - [✓] Link management - [✓] Resource cleanup - [✓] Network layer integration - [ ] Testing announce from go client to python client - [ ] Testing path finding and caching +- [x] Transport Layer + - [x] Path management + - [x] Basic packet routing + - [x] Announce handling + - [x] Link management + - [x] Resource cleanup + - [x] Network layer integration + - [ ] Testing announce from go client to python client + - [ ] Testing path finding and caching -[✓] Interface Implementation - [✓] UDP Interface - [✓] TCP Interface - [✓] Auto Interface - [ ] Local Interface (In Progress) - [ ] I2P Interface - [ ] Pipe Interface - [ ] RNode Interface - [ ] RNode Multiinterface - [ ] Serial Interface - [ ] AX25KISS Interface - [ ] Interface Discovery - [ ] Interface Modes - - [ ] Full mode - - [ ] Gateway mode - - [ ] Access point mode - - [ ] Roaming mode - - [ ] Boundary mode +### Interface Implementation +- [x] UDP Interface +- [x] TCP Interface +- [x] Auto Interface +- [ ] Local Interface (In Progress) +- [ ] I2P Interface +- [ ] Pipe Interface +- [ ] RNode Interface +- [ ] RNode Multiinterface +- [ ] Serial Interface +- [ ] AX25KISS Interface +- [ ] Interface Discovery +- [ ] Interface Modes + - [ ] Full mode + - [ ] Gateway mode + - [ ] Access point mode + - [ ] Roaming mode + - [ ] Boundary mode -[✓] Destination System - [✓] Destination creation - [✓] Destination types (IN/OUT) - [✓] Destination aspects - [✓] Announce implementation - [✓] Ratchet support - [✓] Request handlers +### Destination System +- [x] Destination creation +- [x] Destination types (IN/OUT) +- [x] Destination aspects +- [x] Announce implementation +- [x] Ratchet support +- [x] Request handlers -[✓] Link System - [✓] Link establishment - [✓] Link teardown - [✓] Basic packet transfer - [✓] Encryption/Decryption - [✓] Identity verification - [✓] Request/Response handling - [✓] Session key management - [✓] Link state tracking +### Link System +- [x] Link establishment +- [x] Link teardown +- [x] Basic packet transfer +- [x] Encryption/Decryption +- [x] Identity verification +- [x] Request/Response handling +- [x] Session key management +- [x] Link state tracking -[✓] Resource System - [✓] Resource creation - [✓] Resource transfer - [✓] Compression - [✓] Progress tracking - [✓] Segmentation - [✓] Cleanup routines +### Resource System +- [x] Resource creation +- [x] Resource transfer +- [x] Compression +- [x] Progress tracking +- [x] Segmentation +- [x] Cleanup routines -[ ] Testing & Validation - [ ] Unit tests for all components (Link, Resource, Destination, Identity, Packet, Transport, Interface) - [ ] Integration tests - [ ] Cross-client compatibility tests - [ ] Performance benchmarks - [ ] Security auditing (When Reticulum is 1.0 / stable) +### Testing & Validation +- [ ] Unit tests for all components (Link, Resource, Destination, Identity, Packet, Transport, Interface) +- [ ] Integration tests +- [ ] Cross-client compatibility tests +- [ ] Performance benchmarks +- [ ] Security auditing (When Reticulum is 1.0 / stable) -[ ] Documentation - [ ] API documentation - [ ] Usage examples +### Documentation +- [ ] API documentation +- [ ] Usage examples -[ ] Other - [ ] Rate limiting - [ ] QoS implementation? +### Other +- [ ] Rate limiting +- [ ] QoS implementation? -[ ] Ivans Future Addon Packages - [ ] Post-quantum cryptographic primitives (seperate package) - [ ] Hardware security module (HSM) support (seperate package) - [ ] Encrypted storage for identities (seperate package) \ No newline at end of file +### Ivans Future Addon Packages +- [ ] Post-quantum cryptographic primitives (separate package) +- [ ] Hardware security module (HSM) support (separate package) +- [ ] Encrypted storage for identities (separate package) \ No newline at end of file diff --git a/To-Do b/To-Do deleted file mode 100644 index e69de29..0000000 diff --git a/configs/test-client1.toml b/configs/test-client1.toml index 3d21b3b..4a2a5cb 100644 --- a/configs/test-client1.toml +++ b/configs/test-client1.toml @@ -6,17 +6,26 @@ panic_on_interface_error = false loglevel = 4 [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" enabled = true - target_host = "rns.quad4.io" - target_port = 4242 + target_host = "amsterdam.connect.reticulum.network" + target_port = 4965 - [interfaces."Local UDP"] - type = "UDPInterface" + [interfaces."RNS Testnet BetweenTheBorders"] + type = "TCPClientInterface" enabled = true - interface = "lo" - address = "127.0.0.1" - port = 37428 - target_address = "127.0.0.1" - target_port = 37430 \ No newline at end of file + target_host = "reticulum.betweentheborders.com" + target_port = 4242 \ No newline at end of file diff --git a/configs/test-client2.toml b/configs/test-client2.toml index 4dc7b41..5d9c3b4 100644 --- a/configs/test-client2.toml +++ b/configs/test-client2.toml @@ -6,17 +6,26 @@ panic_on_interface_error = false loglevel = 4 [interfaces] - [interfaces."Local TCP"] + [interfaces."RNS Testnet Amsterdam"] type = "TCPClientInterface" enabled = true - target_host = "rns.quad4.io" - target_port = 4243 + target_host = "amsterdam.connect.reticulum.network" + target_port = 4965 - [interfaces."Local UDP"] - type = "UDPInterface" + [interfaces."RNS Testnet BetweenTheBorders"] + type = "TCPClientInterface" enabled = true - interface = "lo" - address = "127.0.0.1" - port = 37430 - target_address = "127.0.0.1" - target_port = 37428 \ No newline at end of file + target_host = "reticulum.betweentheborders.com" + target_port = 4242 + + [[Local UDP]] + 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 \ No newline at end of file