Change approach to dynamically calculate Genesis rather than storing it
in the EventGraph struct.
Add error-level debug messages in the case when a peer requests an
outdated Event and the node responds without an error. This indicates
that our Dag contains outdated events, indicating that the previous
prune failed.
Added debug statements when an EventPut occurs for an event with
a timestamp that is older than the Genesis event of the EventGraph.
Ideally this shouldn't happen but could theoretically occur if a node
does not properly prune its DAG.
In order to do this, `genesis` and `days_rotation` were added as fields
to EventGraph and 'getter' methods were added to retrieve these values.
Refactor the Tor Dialers to return an error instead of panicking via
unwrap(). In any case, we don't expect this to happen because new
dialers are instantiated using a macro that ensures that endpoints have
valid hosts and ports.
This will initialize the sled tree on-demand. Additionally, we make the
handling more robust and will disconnect the client on any potential sled
errors that might happen.
We also make mark_seen() write atomically into the sled tree via sled::Batch.
The page is not added to src/SUMMARY.md as we are still in the process
of making this feature stable. When it comes time to officially support
and release darkirc, this page should be added to SUMMARY.
- Add function in Hosts to check for Urls we would consider to be
'local' rather than 'global' or remote
- Add unit tests
- Refactor existing code to use the new function
Previously we were picking N random hosts which doesn't ensure that we will check all hosts for liveness. The new strategy uses a ring buffer where we always check the first N hosts and then push live ones back at the end, ensuring that we will test all of our hosts over time. New hosts are appended at the end of ring buffer, since the are the most recent, hence live ones