|
@@ -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
|
|
in the white list. Monero ensures that every node is connected to at
|
|
|
least two anchor nodes.
|
|
least two anchor nodes.
|
|
|
|
|
|
|
|
|
|
+[Source](https://eprint.iacr.org/2019/411.pdf)
|
|
|
|
|
|
|
|
### Scope of the update
|
|
### 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,
|
|
responsive, update the `last_seen` field and add it to the whitelist,
|
|
|
otherwise remove it from the greylist. [STATUS: COMPLETE/ TESTING]
|
|
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
|
|
called `periodic_purge` that gets hosts from the host list, copies them to
|
|
|
a local ring buffer, and periodically handshakes the connections. If the
|
|
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
|
|
has been replaced by a method called `whitelist_cleansing`. Like the
|
|
|
prior method, `whitelist_cleansing` pulls connections from the whitelist,
|
|
prior method, `whitelist_cleansing` pulls connections from the whitelist,
|
|
|
copies them to a ring buffer and handshakes them periodically. If they
|
|
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/
|
|
loosely based on Monero's `IDLE_HANDSHAKE` protocol. [STATUS: COMPLETE/
|
|
|
REEVALUATE/ TESTING]
|
|
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].
|
|
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]
|
|
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]
|
|
TODO]
|
|
|
|
|
|
|
|
* Potentially create a new Protocol to send the top 250 nodes from the
|
|
* Potentially create a new Protocol to send the top 250 nodes from the
|