lokinet/llarp
Jason Rhinelander 0e576ff59e Clean up oxend service node list handling
This aligns service node updating logic a bit closer to what happens in
storage server, and should make it a bit more resilient, hopefully
tracking down the (off-Github) reported issue where lokinet sometimes
doesn't see itself as active.

- Initiate a service node list update in the 30s timer lokinet ping
  timer (in case we miss a block notify for some reason); although this
  is expensive, the next point mitigates it:

- Retrieve the block hash with the SN state update, and feed it back
  into the next get_service_nodes call (as "poll_block_hash") so that
  oxend just sends back a mostly-empty response when the block hasn't
  changed, allowing both oxend and lokinet to skip nearly all of the
  work of a service node list update when the block hasn't changed since
  the last poll.  (This was already partially implemenated--we were
  already looking for "unchanged"--but without a block hash to get from
  and pass back to oxend we'd never actually get an "unchanged" result).

- Tighten up the service node list handling by moving the "unchanged"
  handling into the get_service_nodes response handler: this way the
  HandleNewServiceNodeList function is only handling the list but not
  the logic as to whether there actually is a new list or not.
2022-10-14 18:02:53 -03:00
..
android
apple Add ring buffer sink to macos build 2022-10-06 11:56:06 -03:00
config Add binary file slurp/dump utility functions 2022-10-05 16:34:32 -03:00
consensus Apply some lipstick to llarp_buffer_t 2022-09-19 20:25:51 -03:00
constants disable lokinet-bootstrap on windows builds 2022-09-08 14:25:00 -04:00
crypto Add binary file slurp/dump utility functions 2022-10-05 16:34:32 -03:00
dht llarp_buffer_t: rename badly named operator== 2022-09-19 20:25:51 -03:00
dns Windows compilation fix 2022-09-19 20:26:41 -03:00
ev disable lokinet-bootstrap on windows builds 2022-09-08 14:25:00 -04:00
exit llarp_buffer_t: rename badly named operator== 2022-09-19 20:25:51 -03:00
handlers Format fixes & fix warning in format script 2022-09-19 20:26:40 -03:00
iwp Replace logging with oxen-logger 2022-07-15 22:17:59 -03:00
link * add mockable network functions 2022-07-20 13:36:03 -04:00
linux restucture dbus parts 2022-09-08 14:23:53 -04:00
messages llarp_buffer_t: rename badly named operator== 2022-09-19 20:25:51 -03:00
net Add a net::ToString() to help stringify ipaddr_t 2022-10-06 22:21:41 -03:00
path changeset for windows port 2022-09-08 14:24:59 -04:00
peerstats Remove unused parameter names 2022-08-30 15:53:40 -03:00
quic Apply some lipstick to llarp_buffer_t 2022-09-19 20:25:51 -03:00
router Add more logging around route poking conditions 2022-10-06 21:32:57 -03:00
routing llarp_buffer_t: rename badly named operator== 2022-09-19 20:25:51 -03:00
rpc Clean up oxend service node list handling 2022-10-14 18:02:53 -03:00
service Add binary file slurp/dump utility functions 2022-10-05 16:34:32 -03:00
simulation
tooling hive fmt/spdlog updates 2022-07-19 15:27:31 -03:00
util Fallback bootstrap router build parameter 2022-10-06 13:59:47 -03:00
vpn limit route poker 2022-09-19 20:26:38 -03:00
win32 De-prioritize some windivert logging 2022-10-06 21:32:58 -03:00
app.xml
bootstrap-fallbacks.cpp.in bake in bootstrap fallbacks at build time 2022-10-06 13:59:49 -03:00
bootstrap.cpp Fallback bootstrap router build parameter 2022-10-06 13:59:47 -03:00
bootstrap.hpp bake in bootstrap fallbacks at build time 2022-10-06 13:59:49 -03:00
CMakeLists.txt Add InterfaceInfo formatter 2022-10-06 21:32:57 -03:00
context.cpp fix up log statements 2022-08-22 16:50:46 -04:00
endpoint_base.cpp
endpoint_base.hpp refactor dns subsystem 2022-09-08 14:23:52 -04:00
lokinet_shared.cpp changeset for windows port 2022-09-08 14:24:59 -04:00
nodedb.cpp Merge pull request #1991 from jagerman/lokinet-vpn-cleanups 2022-10-06 16:09:56 -03:00
nodedb.hpp
pow.cpp Remote util::Printer and related cruft 2022-07-18 14:56:09 -03:00
pow.hpp Remote util::Printer and related cruft 2022-07-18 14:56:09 -03:00
profiling.cpp llarp/profiling: refactor to use oxenc producer/consumer 2022-10-05 16:35:16 -03:00
profiling.hpp llarp/profiling: refactor to use oxenc producer/consumer 2022-10-05 16:35:16 -03:00
router_contact.cpp Fallback bootstrap router build parameter 2022-10-06 13:59:47 -03:00
router_contact.hpp Fallback bootstrap router build parameter 2022-10-06 13:59:47 -03:00
router_id.cpp Crank oxen-mq to (1.2.)11; switch to oxen-encoding 2022-02-17 16:30:17 -04:00
router_id.hpp Replace logging with oxen-logger 2022-07-15 22:17:59 -03:00
router_version.cpp Cleanup: avoid pointless copy of this pointer 2021-11-15 13:38:00 -04:00
router_version.hpp Replace logging with oxen-logger 2022-07-15 22:17:59 -03:00