Files
Reticulum-Go/README.md
Sudo-Ivan 8df4039b18 update
2024-12-31 15:30:39 -06:00

4.0 KiB

Reticulum-Go

Reticulum Network implementation in Go.

Aiming for full spec compatibility with the Python version 0.8.8+.

Go 1.23.4

Packages:

  • golang.org/x/crypto

To-Do List

Core Components (In Progress)

  • Basic Configuration System

    • Basic config structure
    • Default settings
    • Config file loading/saving
    • Path management
  • Constants Definition (Testing required)

    • Packet constants
    • MTU constants
    • Header types
    • Additional protocol constants
  • Identity Management (Testing required)

    • Identity creation
    • Key pair generation
    • Identity storage/recall
    • Public key handling
    • Signature verification
    • Hash functions
  • Cryptographic Primitives (Testing required)

    • Ed25519
    • Curve25519
    • AES-CBC
    • SHA-256
    • HKDF
    • Secure random number generation
    • HMAC
  • Packet Handling (In Progress)

    • Packet creation
    • Packet validation
    • Basic proof system
    • Packet encryption
    • Signature verification
    • Testing of packet encrypt/decrypt/sign/proof
  • Transport Layer (In Progress)

    • 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
  • Buffer System (In Progress)

    • Raw channel reader/writer
    • Buffered stream implementation
    • Compression support
    • Testing with Channel system
    • Cross-client compatibility testing
  • Channel System (Not Started)

    • Channel creation and management
    • Message handling
    • Channel encryption
    • Channel authentication
    • Channel callbacks
    • Integration with Buffer system
  • Resolver System (Not Started)

    • Name resolution
    • Cache management
    • Announce handling
    • Path resolution
    • Integration with Transport layer

Interface Implementation (In Progress)

  • 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

Destination System (Testing required)

  • Destination creation
  • Destination types (IN/OUT)
  • Destination aspects
  • Announce implementation
  • Ratchet support
  • Request handlers
  • Link establishment
  • Link teardown
  • Basic packet transfer
  • Encryption/Decryption
  • Identity verification
  • Request/Response handling
  • Session key management
  • Link state tracking

Resource System (Testing required)

  • Resource creation
  • Resource transfer
  • Compression
  • Progress tracking
  • Segmentation
  • Cleanup routines

Compatibility

  • RNS Utilities.
  • Reticulum config.

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

Cleanup

  • Seperate Cryptography from identity.go to their own files.
  • Move constants to their own files.
  • Remove default community interfaces in default config creation after testing.

Other

  • Rate limiting
  • QoS implementation?

Ivans Future Addon Packages

  • Post-quantum cryptographic primitives (separate package)
  • Hardware security module (HSM) support (separate package)
  • Encrypted storage for identities (separate package)