<li>Build on existing lib/transport/noise implementation</li>
<li>Core NTCP2 components:
<ul>
<li>Session handshake using noise protocol</li>
<li>Connection management</li>
<li>I2NP message transport</li>
</ul></li>
</ul>
<h2id="reseed-system">Reseed System</h2>
<ul>
<li>SU3 file format implementation:
<ul>
<li>Format parsing and validation(Much of this work is done in reseed-tools, may need to be moved here)</li>
<li>Signature verification system(Much of this work is done in reseed-tools, may need to be moved here)</li>
</ul></li>
<li>Local reseed functionality:
<ul>
<li>File-based reseed operations</li>
</ul></li>
<li>Self-signed/Package-pinned X.509 certificate handling for reseed validation</li>
</ul>
<h2id="netdb-and-database-store">NetDb and Database Store</h2>
<ul>
<li>Database Store message handling:
<ul>
<li>Message structure implementation</li>
<li>Message handling implementation</li>
</ul></li>
<li>NetDb core implementation:
<ul>
<li>RouterInfo management</li>
<li>LeaseSet management</li>
<li>Lookup system</li>
<li>Storage interface</li>
<li>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)</li>
<li>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.</li>