Files
Go_I2p/ROADMAP.md
2024-11-03 15:53:13 -05:00

1.5 KiB

go-i2p Implementation Roadmap

Transport Layer (NTCP2)

  • Build on existing lib/transport/noise implementation
  • Core NTCP2 components:
    • Session handshake using noise protocol
    • Connection management
    • I2NP message transport

Reseed System

  • SU3 file format implementation:
    • Format parsing and validation(Much of this work is done in reseed-tools, may need to be moved here)
    • Signature verification system(Much of this work is done in reseed-tools, may need to be moved here)
  • Local reseed functionality:
    • File-based reseed operations
  • Self-signed/Package-pinned X.509 certificate handling for reseed validation

NetDb and Database Store

  • Database Store message handling:
    • Message structure implementation
    • Message handling implementation
  • NetDb core implementation:
    • RouterInfo management
    • LeaseSet management
    • Lookup system
    • Storage interface
    • Peer selection logic?(Maybe do something very basic for now like i2pd used to do, and then improve it later, the important part will be interface design at first)

Tunnel Implementation

  • Tunnel cryptography:
    • Key generation and management
    • Layered encryption scheme
  • Message processing:
    • Build request/response handling
    • Gateway implementation
    • Message forwarding logic

Notes:

  • Excluding legacy protocols (SSU1, NTCP1, elgamal, DSA)
  • Leveraging existing noise protocol implementation
  • SSU2 is not on this roadmap but is fair game for implementation as soon as NTCP2 is done. We're focused on NTCP2 to get this thing sending I2NP messages.