Skip to content

Sudo-Ivan/Reticulum-Go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Testing

make install
make build
make run

To-Do List

1/2/25 Notes:

Working on fixing announce packet creation/recieving. Right now there is bidirectional communication with the TCP interface and recieving packets. Several more things need to be cleaned up and added like config generation, storing ratches etc..

status update image

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/decryption
    • Signature verification
    • Announce packet structure
    • Testing of packet encrypt/decrypt/sign/proof
    • Cross-client packet compatibility
  • Transport Layer (In Progress)

    • Path management
    • Basic packet routing
    • Announce handling
    • Link management
    • Resource cleanup
    • Network layer integration
    • Basic announce implementation
    • Testing announce from go client to python client
    • Testing path finding and caching
    • Announce propagation optimization
  • Channel System (Testing Required)

    • Channel creation and management
    • Message handling
    • Channel encryption
    • Channel authentication
    • Channel callbacks
    • Integration with Buffer system
    • Testing with real network conditions
    • Cross-client compatibility testing
  • Buffer System (Testing Required)

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

    • Name resolution
    • Cache management
    • Announce handling
    • Path resolution
    • Integration with Transport layer
    • Testing with live network
    • Cross-client compatibility testing

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
  • Hot reloading interfaces

Destination System (Testing required)

  • Destination creation
  • Destination types (IN/OUT)
  • Destination aspects
  • Announce implementation
  • Ratchet support
  • Request handlers

Link System (Testing required)

  • 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 (Priority)

  • Unit tests for all components
    • Identity tests
    • Packet tests
    • Transport tests
    • Interface tests
    • Announce tests
    • Channel tests
    • Buffer tests
    • Resolver tests
    • Link tests
    • Resource tests
  • Integration tests
    • Go client to Go client
    • Go client to Python client
    • Interface compatibility
    • Path finding and resolution
    • Channel system end-to-end
    • Buffer system performance
  • Cross-client compatibility tests
  • Performance benchmarks
  • Security auditing (When Reticulum is 1.0 / stable)

Documentation

  • API documentation
  • Usage examples

Cleanup

  • Separate Cryptography from identity.go to their own files
  • Move constants to their own files
  • Remove default community interfaces in default config creation after testing
  • Optimize announce packet creation and caching
  • Improve debug logging system

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)
  • Defense against AI-guided Traffic Analysis (separate package)