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 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)
### Ivans Future Addon Packages
- [ ] Post-quantum cryptographic primitives (separate package)
- [ ] Hardware security module (HSM) support (separate 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
[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
target_host = "reticulum.betweentheborders.com"
target_port = 4242

View File

@@ -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
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