Commit Graph

8262 Commits (quic-wip)
 

Author SHA1 Message Date
dr7ana 88b9d9f976 print but better 6 months ago
dr7ana f812d5471b send localrc, receive as remoterc 6 months ago
dr7ana 3c521c4923 log 6 months ago
Jason Rhinelander 3509693c49
Revert me: fix double-hex in debug output 6 months ago
Jason Rhinelander febcd44ea1
Fix pubkey parsing to be read as bytes
from_string was trying to parse it as base32z.snode

Also leave FIXMEs behind for the badly named methods (both in RouterID
itself and in ancestor classes).
6 months ago
Jason Rhinelander 636de93b1a Revert me: debug print the msg/sig/signer 6 months ago
dr7ana daa3a6fd94 shoot 6 months ago
Jason Rhinelander 5e2c18ff19
RemoteRC: `explicit` single-argument constructors 6 months ago
dr7ana f5d959c65a D 6 months ago
Jason Rhinelander 1a7f47f5cd
Fix version encoding
We are reinterpret_cast'ing the version to a string to send it as raw
bytes, but it was sending \x00\x00\x09 instead of \x00\x09\x0a because
the version constant was actually a uint16_t array.

This just makes the version constant a uint8_t array instead so that it
works (and I am not at all worried about any version component getting
larger than 255).
6 months ago
Jason Rhinelander 4c1f6112a7
REVERT ME: debug incoming dict data 6 months ago
dr7ana f725c07f2d dont bomb with bootstrap reqs 6 months ago
dr7ana e0c1069790 kiiiiiick 6 months ago
dr7ana efe5fd3b5b try queueing 6 months ago
dr7ana 0bf3a3323a kick 6 months ago
dr7ana 22edd63284 libquic vbump 6 months ago
dr7ana 238cc3d0da kick 6 months ago
dr7ana 5f430a392b kick 6 months ago
dr7ana 63644d3d84 Bootstrap seed
- nodes now send their RC to the bootstrap seed on making a request
- allows the bootstrap seed to distribute RCs
6 months ago
dr7ana f2feea74ee Crit logging
- TODO: discuss authentication for nodes connecting to bootstrap seed
- crit log num connected/RC's, conn open/closed, etc
6 months ago
Jason Rhinelander 412ce44139 Update libquic 6 months ago
Jason Rhinelander daeff3ee7e Remove duplicate connection closing method
`deregister_peer` does the exact same thing as `close_connection` so
just remove it.

Also removes an unnecessary loop dispatch call (because we *have* to be
in the logic thread already to be able to touch the variables we are
touching before the dispatch).
6 months ago
Jason Rhinelander 0e6a2941bd Bump libquic 6 months ago
Jason Rhinelander b82b4c7fe6 Update libquic 6 months ago
Jason Rhinelander b3dc23e1bf Remove release motto
This doesn't really have a purpose.
6 months ago
Jason Rhinelander 30d58911fa Update logging in daemon.cpp
Some of these were wrong (trying to use formats that didn't work); this
updates them all to new-style logging.
6 months ago
dr7ana 9084d39e5a Squashed misc testnet fixes 6 months ago
Jason Rhinelander bc2cb46d9c
testnet: don't give oxend and error when testing is disabled 6 months ago
dr7ana 8af38d3d44 TELL ME WHEN IT WORKS 6 months ago
dr7ana d00257b9f0 address parsing
- straightened out setting of public addr and public port in config vs listen ("bind") addr
- fixed small bug in router contact writing and saving
6 months ago
dr7ana aaf284b39f libquic vbump
- now pointing to jason/void-listen
6 months ago
dr7ana cef2ff7782 Local router mode
- Up and running locally, no connections yet
- Next: flip testnet and do the gosh dang thing
7 months ago
dr7ana ed6bd28a35 testnet prep
- redoing link_manager functions again to implement previously ignored review comments on several PRs
- conceptually merging "whitelist_routers" and new "known_{rids,rcs}", s.t. we can completely eliminate white/red/gray/green/etc lists in favor of something that isn't dumb
7 months ago
dr7ana c9268dceba trust model edge case handling
- Once we have our set of returned rc's and accepted rid's (ones that were found locally), the remainder are placed in an "unconfirmed" state
- Once there, they have five subsequent successful fetches to be found in request response, at which point their verification counter is incremented and their attempt counter is reset
- If they appear three times, they are "promoted" and moved to our "known_{rid,rc}" list
7 months ago
dr7ana 62c37825b0 testnet prep
- disable reachability testing with config option; required to be done on testnet
- reachability testing pipeline through link_manager executes pings similar to storage server. connection established hook reports successful reachability, while connection closed callback (with non-default error code) reports unsuccessful testing
7 months ago
dr7ana 70e9c1ae25 trust model fetch fails
- bootstrap cooldown implemented with 1min timer in case all bootstraps fail
- set comparison implemented in non-initial and non-bootstrap rc fetching; set comparison in rid fetching is done every fetch
- nodedb get_random functions refactored into conditional/non-conditional methods. Conditional search implements reservoir sampling for one-pass accumulation of n random rcs
7 months ago
dr7ana 3508dee8d8 trust model
- greedy evaluation of returned rid's, simplifying post-processing logic to simple frequency comparison per rid against a constant threshold
- tidied up link_manager request/response handling
- TODO:
  - review and decide thresholds
  - evaluate necessity and potential implementation of rc comparison
7 months ago
dr7ana 91121ea22b pull yourself up by your bootstraps sonny
- initial/subsequent fetching combined for RouterContacts and RouterIDs
- bootstraps fallback implemented and looped into fetch logic
7 months ago
dr7ana f6e651caea move from vectors to unordered_sets
- When receiving a request to fetch RouterID's, the remote endpoint fulfilling the request stores them in an unordered set. When the request caller receives that payload, it is loaded into a vector in the same order. However, we should just load it directly into an unordered set to enforce both the order and that none appear twice
- The trust model will have to operate on multiple large lists of RouterID's and RC's efficiently, and maintaining a sort order ensures the values are workable immediately after deserialization
7 months ago
dr7ana ba3fffb765 housekeeping pre-trust model 7 months ago
dr7ana b6cc86e25b fetch RID result handler logic 7 months ago
dr7ana 3fc7980691 less synchronous for the subsequent fetches 7 months ago
dr7ana 6559617816 RC/RID fetching logic implemented 7 months ago
dr7ana 5fa3c2be87 housekeeping and groundwork, initial commit 7 months ago
Thomas Winget c693569c00
Merge pull request #2225 from tewinget/rc-fetch
RC and RouterID fetching
7 months ago
Thomas Winget 2b2d8c51a1 rework rotate_rc_source function, just for 'normal operation' now 7 months ago
Thomas Winget 70d2052cd4 minor fixups 7 months ago
Thomas Winget dab1e06892 FindRouterMessage is gone, also clang-format 7 months ago
Thomas Winget 14b9aa20ee (client) periodically fetch RouterIDs from peers 7 months ago
Thomas Winget b353fd4095 Minor RC load/store/prune fixups 7 months ago