doc/ p2p-network.md: add monero source paper and some final formatting

This commit is contained in:
lunar-mining
2023-12-12 12:54:36 +01:00
parent 3967946074
commit 53d4520e91

View File

@@ -171,6 +171,7 @@ connections were established are classified as anchor nodes, and stored
in the white list. Monero ensures that every node is connected to at
least two anchor nodes.
[Source](https://eprint.iacr.org/2019/411.pdf)
### Scope of the update
@@ -184,10 +185,10 @@ selects random peers from its greylist and pings them. If a peer is
responsive, update the `last_seen` field and add it to the whitelist,
otherwise remove it from the greylist. [STATUS: COMPLETE/ TESTING]
* Lilith currently checks connections on the host list using a method
* `lilith` currently checks connections on the host list using a method
called `periodic_purge` that gets hosts from the host list, copies them to
a local ring buffer, and periodically handshakes the connections. If the
handshake fails, Lilith removes the host from the hostlist. This protocol
handshake fails, `lilith` removes the host from the hostlist. This protocol
has been replaced by a method called `whitelist_cleansing`. Like the
prior method, `whitelist_cleansing` pulls connections from the whitelist,
copies them to a ring buffer and handshakes them periodically. If they
@@ -195,18 +196,18 @@ respond, the `last_seen` is updated, otherwise nothing happens. This is
loosely based on Monero's `IDLE_HANDSHAKE` protocol. [STATUS: COMPLETE/
REEVALUATE/ TESTING]
* SeedsyncSession: on receiving whitelisted peers, append them to
greylist. [STATUS: INCOMPLETE/ FIXME]
* ProtocolAddress: On receiving an address, append it to the greylist. On
receiving get_addr, fetch an address from the whitelist. [STATUS COMPLETE/
* `ProtocolAddress`: On receiving an address, append it to the greylist. On
receiving `get_addr`, fetch an address from the whitelist. [STATUS: COMPLETE/
TESTING].
* ProtocolSeed: Send our address to the seed node, and on receiving
* `SeedSyncSession`: on receiving whitelisted peers, append them to
greylist. [STATUS: INCOMPLETE/ FIXME]
* `ProtocolSeed`: Send our address to the seed node, and on receiving
addresses, append them to the whitelist. [STATUS: INCOMPLETE/ FIXME]
* Create a new list in `hosts.rs` called `anchorlist`. OutboundSession
first tries to connect to address in the `anchorlist` on start(). [STATUS:
* Create a new list in `hosts.rs` called `anchorlist`. `OutboundSession`
first tries to connect to address in the `anchorlist` on `start()`. [STATUS:
TODO]
* Potentially create a new Protocol to send the top 250 nodes from the