Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] The Everything Refactor #2212

Open
wants to merge 312 commits into
base: dev
Choose a base branch
from
Open

[WIP] The Everything Refactor #2212

wants to merge 312 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jan 31, 2024

  1. Outbound context absorbed sendcontex

    - message transmission routed through refactored handling
    - still work to be done, but now to make it compile at least
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    88fd085 View commit details
    Browse the repository at this point in the history
  2. Compilation fixes

    - almost all errors have been commented out for refactor or already refactored
    - committing this prior to sorting out the cmake structure
    - upcoming include-what-you-use application
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    66ec886 View commit details
    Browse the repository at this point in the history
  3. Review commit

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    c0b19de View commit details
    Browse the repository at this point in the history
  4. "Refactor" aka delete Crypto/CryptoManager

    - Get rid of CryptoManager.
    - Get rid of Crypto.
    - Move all the Crypto instance methods to llarp::crypto functions.
      (None of them needed to be methods at all, so this is simple).
    - Move sodium/ntru initialization into static initialization.
    - Add llarp::csrng, which is an available llarp::CSRNG instance which is
      a bit easier than needing to construct a `CSRNG rng{};` in various
      places.
    - Various related small simplifications/cleanups.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    b597ae5 View commit details
    Browse the repository at this point in the history
  5. Cmake restructuring

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    12a8932 View commit details
    Browse the repository at this point in the history
  6. Clang format include sorting + CMake

    - includes are now sorted in consistent, logical order; first step in an attempt to fix the tomfoolery (no relation to Tom) brought in by include-what-you-use
    - shuffled around some cmake linking to simplify dependency graph
    - superfluous files removed
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    f574cd7 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f21facf View commit details
    Browse the repository at this point in the history
  8. Bring oxen-encoding back in as a submodule

    As long as it's loaded before oxen-mq or libquic, this should end up
    being the one that gets used in oxen-mq/libquic, and so we don't have to
    update those when we want something in a newer oxen-encoding.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    52b1757 View commit details
    Browse the repository at this point in the history
  9. Fix systemd linkage

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    3d44e58 View commit details
    Browse the repository at this point in the history
  10. Review fixes

    - cleaned up include-what-you-use errors (mostly quoted includes)
    - misc fixes
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    57393ea View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    19f9a8f View commit details
    Browse the repository at this point in the history
  12. CI Fixes, squash

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    5596ffd View commit details
    Browse the repository at this point in the history
  13. windows fixes

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    127ac2c View commit details
    Browse the repository at this point in the history
  14. squash

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    acf4940 View commit details
    Browse the repository at this point in the history
  15. Disable Router Hive & DEB builds

    They aren't useful right now.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6d6301d View commit details
    Browse the repository at this point in the history
  16. Default libcrypt to whether or not we find it

    Also deliberately don't provide the function at all if we aren't
    compiled with libcrypt so that we can't link if we try to call it when
    not available.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    b909f53 View commit details
    Browse the repository at this point in the history
  17. Bump WinDivert to latest

    There are some bugfix releases, but also the upstream hash was wrong for
    the current release anyway (upstream changed it?).
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    57c471e View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    c46c18e View commit details
    Browse the repository at this point in the history
  19. Windows CI fixes

    - some weird function call business
    - string formatting
    - etc
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    98583b8 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    eb37796 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    cb2a2cf View commit details
    Browse the repository at this point in the history
  22. Don't export CC

    This was causing cmake to double-invoke ccache for compilation units,
    and broke oxen-mq's local zmq build for the same reason.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    63b8fd4 View commit details
    Browse the repository at this point in the history
  23. Bump armhf static build to bullseye

    Use backports for cmake because ngtcp2 needs 3.20+.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    b3c3dcf View commit details
    Browse the repository at this point in the history
  24. Remove unused file

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    46482c0 View commit details
    Browse the repository at this point in the history
  25. Turn off terrible new cmake 3.24+ default

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    c3641ab View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    ca5ed01 View commit details
    Browse the repository at this point in the history
  27. Give up for now

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    431490f View commit details
    Browse the repository at this point in the history
  28. RC refactor layout

    - Local and Remote RC's now implemented with discrete functionalities and uses
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    632f4ee View commit details
    Browse the repository at this point in the history
  29. {Remote,Local}RC's

    - RemoteRC supplants most of the functionality throughout the code of RouterContact
    - Next step will be to sort out CI issues, then see if we can get rid of either LocalRC (and therefore RouterContact entirely)
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    68e67c8 View commit details
    Browse the repository at this point in the history
  30. Untangle Endpoint::LookupServiceAsync

    - .snodes don't need to support SRV records, so remove that
    - untangle the mess of captured lambdas capturing other lambdas
      capturing other lambdas; we still need a chain of nested lambdas
      because we have a chain of callbacked events, but hiding the nesting
      by capturing them in other lambdas didn't improve anything.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    0de50b1 View commit details
    Browse the repository at this point in the history
  31. Review fixes + misc fixes

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    47bedfd View commit details
    Browse the repository at this point in the history
  32. A soothing re-nomenclatura

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    c149651 View commit details
    Browse the repository at this point in the history
  33. config addr change

    - the one addr to rule them all, and its name was oxen::quic::Address
    - no more vectors of inbound/outbound junk
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    5c6c6bc View commit details
    Browse the repository at this point in the history
  34. review fixes

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    472fcc7 View commit details
    Browse the repository at this point in the history
  35. libquic bump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    d35073c View commit details
    Browse the repository at this point in the history
  36. path build message handling mostly finished

    there are a few TODOs which merit further discussion
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    3bc8c30 View commit details
    Browse the repository at this point in the history
  37. path control messages and onioning fleshed out

    - control messages can be sent along a path
    - the path owner onion-encrypts the "inner" message for each hop in the
      path
    - relays on the path will onion the payload in both directions, such
      that the terminal relay will get the plaintext "inner" message and the
      client will get the plaintext "response" to that.
    - control messages have (mostly, see below) been changed to be invokable
      either over a path or directly to a relay, as appropriate.
    
    TODO:
      - exit messages need looked at, so they have not yet been changed for
        this
      - path transfer messages (traffic from client to client over 2 paths
        with a shared "pivot") are not yet implemented
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    bf2665b View commit details
    Browse the repository at this point in the history
  38. omit breaking RC stuff pending refactor

    It seems RC refactor will obviate the need for a "get individual RC"
    method, so this comments out some usage of that to sidestep build
    errors, rather than correcting them in a way that will just be wasted.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    62a88b3 View commit details
    Browse the repository at this point in the history
  39. path control message response status changes

    change path control message inner message response to take just a
    string, which will be a bt-encoded response with an early key for
    status.  If there is a timeout we pass a bt dict that only has that as
    the status, else the response we de-onioned should have either an OK
    status or some other error.
    
    change messages to use new status key
    
    correctly call Path::EnterState on path build response
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    2bea5e7 View commit details
    Browse the repository at this point in the history
  40. chahca nonce size is 24 bytes

    Lots of code was using 32-byte nonces for xchacha20 symmetric
    encryption, but this just means 8 extra bytes per packet wasted as
    chacha is only using the first 24 bytes of that nonce anyway.
    
    Changing this resulted in a lot of dead/dying code breaking, so this
    commit also removes a lot of that (and comments a couple places with
    TODO instead)
    
    Also nounce -> nonce where it came up.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6572149 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    04e9fd5 View commit details
    Browse the repository at this point in the history
  42. Delete llarp::util::memFn

    It's unnecessary abstraction that barely simplifies anything, and is now
    only used in one single place anyway, which is easily replaced with a
    (unabstracted) lambda.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    957280e View commit details
    Browse the repository at this point in the history
  43. preconstructed dicts for error/timeout/ok

    also move messages' statuses into their own namespace
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    f995b30 View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    0000c6b View commit details
    Browse the repository at this point in the history
  45. messages::status -> messages

    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    7fdecef View commit details
    Browse the repository at this point in the history
  46. onion encrypt path build frames

    path build frames should be onioned at each hop to avoid a bad actor
    controlling two nodes in a path being able to know (with certainty,
    temporal correlation is hard to avoid) that they're hops on the same
    path.  This is desirable as in the worst case someone could be your edge
    hop and terminal hop on a path, and now the terminal hop knows your IP
    making the path basically pointless.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    00f30f2 View commit details
    Browse the repository at this point in the history
  47. fix some copy/paste derping

    also deserialize to unsigned string where possible/useful so to not have
    unnecessary reinterpret_casts all over the place.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    cd27121 View commit details
    Browse the repository at this point in the history
  48. remove rc_lookup_handler, relocating useful parts

    RC "lookup" is being replaced with "gimme all recently updated RCs".  As
    such, doing a lookup on a specific RC is going away, as is network
    exploration, so a lot of what RCLookupHandler was doing will no longer
    be relevant.  Functionality from it which was kept has moved to NodeDB,
    as it makes sense for that functionality to live where the RCs live.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    611d277 View commit details
    Browse the repository at this point in the history
  49. Remove find/lookup router

    We're removing the notion of find/lookup a singular RC, so this gets rid
    of all functions which did that and replaces their usages with something
    sensible.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    f6594a3 View commit details
    Browse the repository at this point in the history
  50. implement and use "gossip_rc" command

    TODO: refactor or remove RCGossiper and revisit RC regen and
    when-to-gossip logic.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    e29e23b View commit details
    Browse the repository at this point in the history
  51. NodeDB RCs don't need insertion time

    We will want some notion of "when did we receive it" for RCs (or
    RouterIDs, details tbd), but that will be per-source as a means to form
    some metric of consensus/trust on which relays are *actually* on the
    network.  Clients don't have a blockchain daemon to pull this from, so
    they have to ask many relays for the full list of relays and form a
    trust model on that (bootstrapping problem notwithstanding).
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    10984b2 View commit details
    Browse the repository at this point in the history
  52. implement new rc gossip logic

    Relays will now re-sign and gossip their RCs every 6 hours (minus a
    couple random minutes) using the new gossip_rc message.
    
    Removes the old RCGossiper concept
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6b728a0 View commit details
    Browse the repository at this point in the history
  53. remove explicit arg that mirrors default

    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    fb7c90d View commit details
    Browse the repository at this point in the history
  54. minor style/naming changes

    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    74e7f14 View commit details
    Browse the repository at this point in the history
  55. Add command to fetch RCs from remote node

    This command will be called periodically by clients to maintain a list
    of RCs of active relay nodes.  It will require another command (future
    commit) to fetch the RouterIDs from many nodes and reconcile those so we
    have some notion of good-ness of the RCs we're getting; if we get what
    seems to be a bad set of RCs (this concept not yet implemented), we will
    choose a different relay to fetch RCs from.  These are left as TODOs for
    now.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    e37ef78 View commit details
    Browse the repository at this point in the history
  56. Implement fetch RouterIDs method and usage

    Periodically clients will fetch the set of RouterIDs for all relays on
    the network.  It will request this list from a number (12, currently) of
    relays, but as we are likely to be requesting from more relays than we
    want to have edge connections, this request will itself be relayed to
    the target source via one of our edges.  As we can't trust our edge to
    do this honestly, the responses are signed by the source relay.
    
    TODO: the responses from all (12) relays are collected, then processed
    together.  The reconciliation of their responses is not yet implemented.
    
    TODO: the source selection for this method obviously requires sources to
    begin with, but this is the method by which we learn of
    those...bootstrapping is still a bit in-progress, and will need to be
    finished for this.
    
    TODO: make Router call this periodically, as with RC fetching.
    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    a42d1c1 View commit details
    Browse the repository at this point in the history
  57. Minor RC load/store/prune fixups

    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    52cd9e1 View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    af424cd View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    9329ad0 View commit details
    Browse the repository at this point in the history
  60. minor fixups

    tewinget authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    040fc86 View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    5ac4a9a View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    07fc024 View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    ab24f4b View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    d6b8b55 View commit details
    Browse the repository at this point in the history
  65. fetch RID result handler logic

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    baabfab View commit details
    Browse the repository at this point in the history
  66. housekeeping pre-trust model

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    9bb8558 View commit details
    Browse the repository at this point in the history
  67. 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
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    e1a5d93 View commit details
    Browse the repository at this point in the history
  68. pull yourself up by your bootstraps sonny

    - initial/subsequent fetching combined for RouterContacts and RouterIDs
    - bootstraps fallback implemented and looped into fetch logic
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    483b79a View commit details
    Browse the repository at this point in the history
  69. 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
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    e02ddd6 View commit details
    Browse the repository at this point in the history
  70. 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
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    63a57d5 View commit details
    Browse the repository at this point in the history
  71. 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
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    ec88706 View commit details
    Browse the repository at this point in the history
  72. 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
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    44696b1 View commit details
    Browse the repository at this point in the history
  73. 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
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    32e55b0 View commit details
    Browse the repository at this point in the history
  74. Local router mode

    - Up and running locally, no connections yet
    - Next: flip testnet and do the gosh dang thing
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    66ad28a View commit details
    Browse the repository at this point in the history
  75. libquic vbump

    - now pointing to jason/void-listen
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    267a698 View commit details
    Browse the repository at this point in the history
  76. 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
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6a32148 View commit details
    Browse the repository at this point in the history
  77. TELL ME WHEN IT WORKS

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    aeb0798 View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    686c7e0 View commit details
    Browse the repository at this point in the history
  79. Squashed misc testnet fixes

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    03976d8 View commit details
    Browse the repository at this point in the history
  80. 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.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    e43833a View commit details
    Browse the repository at this point in the history
  81. Remove release motto

    This doesn't really have a purpose.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6231b49 View commit details
    Browse the repository at this point in the history
  82. Update libquic

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    72276e3 View commit details
    Browse the repository at this point in the history
  83. Bump libquic

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    ed87b73 View commit details
    Browse the repository at this point in the history
  84. 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).
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    be61373 View commit details
    Browse the repository at this point in the history
  85. Update libquic

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    950ebfe View commit details
    Browse the repository at this point in the history
  86. Crit logging

    - TODO: discuss authentication for nodes connecting to bootstrap seed
    - crit log num connected/RC's, conn open/closed, etc
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    4b426f5 View commit details
    Browse the repository at this point in the history
  87. Bootstrap seed

    - nodes now send their RC to the bootstrap seed on making a request
    - allows the bootstrap seed to distribute RCs
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    c4f0a70 View commit details
    Browse the repository at this point in the history
  88. kick

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    4c3f7dc View commit details
    Browse the repository at this point in the history
  89. kick

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    0b7997e View commit details
    Browse the repository at this point in the history
  90. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    2405d36 View commit details
    Browse the repository at this point in the history
  91. kick

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    7568b71 View commit details
    Browse the repository at this point in the history
  92. try queueing

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    9c92c30 View commit details
    Browse the repository at this point in the history
  93. kiiiiiick

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    3d9e3ae View commit details
    Browse the repository at this point in the history
  94. dont bomb with bootstrap reqs

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    384cb7a View commit details
    Browse the repository at this point in the history
  95. REVERT ME: debug incoming dict data

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    ba6c8ee View commit details
    Browse the repository at this point in the history
  96. 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).
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    dab6e90 View commit details
    Browse the repository at this point in the history
  97. D

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    aabd413 View commit details
    Browse the repository at this point in the history
  98. Configuration menu
    Copy the full SHA
    eb62185 View commit details
    Browse the repository at this point in the history
  99. shoot

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    4328212 View commit details
    Browse the repository at this point in the history
  100. Revert me: debug print the msg/sig/signer

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    329acaf View commit details
    Browse the repository at this point in the history
  101. 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).
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    ff3a495 View commit details
    Browse the repository at this point in the history
  102. Revert me: fix double-hex in debug output

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    3161683 View commit details
    Browse the repository at this point in the history
  103. log

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    b8c8a2c View commit details
    Browse the repository at this point in the history
  104. Configuration menu
    Copy the full SHA
    97fe3c6 View commit details
    Browse the repository at this point in the history
  105. print but better

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    cd96497 View commit details
    Browse the repository at this point in the history
  106. DRY duplicated code in RCRemote

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    0cf5805 View commit details
    Browse the repository at this point in the history
  107. Bump libquic

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    96c93c9 View commit details
    Browse the repository at this point in the history
  108. Bump libquic for message move/copy fixes

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    f00137a View commit details
    Browse the repository at this point in the history
  109. who cares

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    0e88839 View commit details
    Browse the repository at this point in the history
  110. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    4c25124 View commit details
    Browse the repository at this point in the history
  111. come on already work already

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    1e1f4dd View commit details
    Browse the repository at this point in the history
  112. whatever

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    90a530a View commit details
    Browse the repository at this point in the history
  113. Replace GetBestNetIF with quic::Address version

    It is now called get_best_public_address, and takes (bool, port)
    argument to return an optional quic::Address to make life easier: the
    caller now can just give the default port to set, and we keep the C
    sockaddr* more constrained.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6505c7b View commit details
    Browse the repository at this point in the history
  114. Bump libquic for register_command fix

    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    d6cc702 View commit details
    Browse the repository at this point in the history
  115. wrap dat

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    8bdfb20 View commit details
    Browse the repository at this point in the history
  116. Configuration menu
    Copy the full SHA
    fcbfc19 View commit details
    Browse the repository at this point in the history
  117. Fix std::set move semantics

    This is, apparently, the only way to move an element out of a std::set.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    cb39f64 View commit details
    Browse the repository at this point in the history
  118. doofus

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    8f99ead View commit details
    Browse the repository at this point in the history
  119. better!

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    30ea679 View commit details
    Browse the repository at this point in the history
  120. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    a591d44 View commit details
    Browse the repository at this point in the history
  121. Configuration menu
    Copy the full SHA
    dbad0d5 View commit details
    Browse the repository at this point in the history
  122. Big fix!

    - pending conns container stops them from being counted towards active conns in the interim
    - un-abstracted pendingmessages vs pendingdatamessages vs pendingcontrolmessages (gross)
    - fixed bootstrap fetching and storage!
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    9f0766f View commit details
    Browse the repository at this point in the history
  123. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    bf6e705 View commit details
    Browse the repository at this point in the history
  124. bootstrap tweaking

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    42da1b0 View commit details
    Browse the repository at this point in the history
  125. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    5ab40a7 View commit details
    Browse the repository at this point in the history
  126. Configuration menu
    Copy the full SHA
    1364e4c View commit details
    Browse the repository at this point in the history
  127. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    caa7b7a View commit details
    Browse the repository at this point in the history
  128. Added connection keepalive

    - implemented ngtcp2 ping to keep connections alive
    - fixed weird lambda captures
    - fetch logic
    - lets see what happens
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    cc97fe1 View commit details
    Browse the repository at this point in the history
  129. Configuration menu
    Copy the full SHA
    89975a0 View commit details
    Browse the repository at this point in the history
  130. full mesh proto implementation

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    7f143bb View commit details
    Browse the repository at this point in the history
  131. Configuration menu
    Copy the full SHA
    4d56c97 View commit details
    Browse the repository at this point in the history
  132. booyakasha

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    7b8c8fd View commit details
    Browse the repository at this point in the history
  133. libquic/oxenc vbumps

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    4251172 View commit details
    Browse the repository at this point in the history
  134. rc parsing

    - new btdc method used to ensure no junk at the end of our bt data
    - DRYed out the RC code
    - check inbound bootstraps against all registered routers, not just whitelist
    - libquic vbump
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    22879b6 View commit details
    Browse the repository at this point in the history
  135. btreq destructor

    - try closing the connection via link::Endpoint like we probably should be doing..
    - testing out dropping stream constructor, godspeed
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    75e3127 View commit details
    Browse the repository at this point in the history
  136. loop call

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    4ce0385 View commit details
    Browse the repository at this point in the history
  137. Get rid of IterDir

    It's a gross implementation, and even if it wasn't, using it takes more
    code than not using it.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    86f2906 View commit details
    Browse the repository at this point in the history
  138. lets see which gets rejected

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    961763d View commit details
    Browse the repository at this point in the history
  139. Add exact argument to get_n_random_rcs

    If given and true then return nullopt if we don't find the requested
    number; otherwise return them even if there aren't as many as we
    requested.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    687d655 View commit details
    Browse the repository at this point in the history
  140. gossip storage, logs

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    ae38dc7 View commit details
    Browse the repository at this point in the history
  141. Configuration menu
    Copy the full SHA
    0e73605 View commit details
    Browse the repository at this point in the history
  142. ALPN verification

    - laying the groundwork for functional client->service node connections. this requires ALPNs verification as a secondary method of identification to the remote key
    - refactored btreq stream creation to use improved stream creation logic in libquic
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    3e9d5a9 View commit details
    Browse the repository at this point in the history
  143. re-abstraction for client connections

    - pending_conns removed in favor of direct creation of link::Connection objects in link::Endpoint::{service,client}_conn containers
    - conn lookup maps removed, they were pointless
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    9cc0536 View commit details
    Browse the repository at this point in the history
  144. Configuration menu
    Copy the full SHA
    1cbec98 View commit details
    Browse the repository at this point in the history
  145. zero cost exception handling my ass

    - rework bootstrap loading to move all logic into BootstrapList object
    - ability to parse lists and dicts of bootstraps implemented
    - netid parsing refers to the correct fallback
    - cross your fingers boys here we go
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6171846 View commit details
    Browse the repository at this point in the history
  146. gossip new RC's on bfetch

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    38c1008 View commit details
    Browse the repository at this point in the history
  147. Fix SETCAP disabling

    If you start without -DWITH_SETCAP=OFF, but then later re-run cmake,
    SETCAP is still set (and so still gets tried).  This fixes it.
    jagerman authored and dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6bb65cc View commit details
    Browse the repository at this point in the history
  148. okay now lets try clients

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    9153ba3 View commit details
    Browse the repository at this point in the history
  149. client testing

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    9b37b5b View commit details
    Browse the repository at this point in the history
  150. do not gossip client RCs!

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    8e9dce1 View commit details
    Browse the repository at this point in the history
  151. HAPPY NEW YEAR

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    c0b6277 View commit details
    Browse the repository at this point in the history
  152. No fetch only throw

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    674edab View commit details
    Browse the repository at this point in the history
  153. Configuration menu
    Copy the full SHA
    95fe45e View commit details
    Browse the repository at this point in the history
  154. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    2c12f06 View commit details
    Browse the repository at this point in the history
  155. squash: kick testnet

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    fb19e14 View commit details
    Browse the repository at this point in the history
  156. a soothing renomenclatura

    - removed superfluous typedefs obfuscating what is actually happening
    - Builder -> PathBuilder; next is moving PathSet into PathBuilder
    - enum -> enum class where appropriate
    - ran linter
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    9cc3efc View commit details
    Browse the repository at this point in the history
  157. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    6073377 View commit details
    Browse the repository at this point in the history
  158. REVERT: verbose close logging

    - misc libquic fixes squashed into this
    - thread-safe wrapping
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    261fc6b View commit details
    Browse the repository at this point in the history
  159. libquic vbump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    12381c8 View commit details
    Browse the repository at this point in the history
  160. Simul-defer connections

    - When two relays are repeatedly attempting connections to one another simultaneously, the connection initiated by the RouterID that appears first (in lexicographical order) is deferred to. The connection initiated by the other endpoint is marked to close quietly (w/o executing callbacks), and is rejected in the TLS verification hook
    - Bypassing callback execution is critical, as it will clean-up the link::Connection object for the connection that is being deferred to; this results in BOTH connections being destroyed.
    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    7970ad2 View commit details
    Browse the repository at this point in the history
  161. libquic bump

    dr7ana committed Jan 31, 2024
    Configuration menu
    Copy the full SHA
    722b03b View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2024

  1. Configuration menu
    Copy the full SHA
    861d573 View commit details
    Browse the repository at this point in the history
  2. formatting

    dr7ana committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    5f8e1ad View commit details
    Browse the repository at this point in the history
  3. nodedb one-liner

    dr7ana committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    fbd1935 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0fe8c6f View commit details
    Browse the repository at this point in the history
  5. log crit

    dr7ana committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    27f09f0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    62002c3 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2024

  1. Configuration menu
    Copy the full SHA
    a79a5d2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b15f3e7 View commit details
    Browse the repository at this point in the history
  3. log

    dr7ana committed Feb 2, 2024
    Configuration menu
    Copy the full SHA
    2d3e68a View commit details
    Browse the repository at this point in the history
  4. formatting

    dr7ana committed Feb 2, 2024
    Configuration menu
    Copy the full SHA
    b733415 View commit details
    Browse the repository at this point in the history
  5. asserts

    dr7ana committed Feb 2, 2024
    Configuration menu
    Copy the full SHA
    cba6cd8 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2024

  1. Configuration menu
    Copy the full SHA
    5004fbc View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2024

  1. Squashed commits for merge errors afer fixing client-refactor:

    - Deprecate pathset, smashed into PathBuilder (renamed to PathHandler)
    - Re-abstraction of sessions and PathHandlers
      - Renamed PathBuilder -> PathHandler to more accurately reflect purpose
      - {Service,Exit}Handler will remain as PathHandlers, though currently no path-sharing amongst sessions being managed is to be implemented. Handlers will maintain their own paths for both lookups and initiating sessions, while sessions will manage their paths independantly.
      - Session object handling necessitates the differentiation between outbound and inbound sessions. Initiators of sessions are entirely responsible for dictating the chosen path on which the session communicates, and must therefore continually build and manage paths for the negotiated session.
      - Outbound sessions are now {Service,Exit}Sessions
      - Inbound sessions are implemented with InboundSession, which is agnostic to the type of service being operated locally (service vs exit, client vs relay, etc). When the Session initiator signals a switch to a different path, it will be assigned to the InboundSession object by {Service,Exit}Endpoint, which manages local services and exits
    dr7ana committed Feb 5, 2024
    Configuration menu
    Copy the full SHA
    ac6255c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    25f13c9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b1f0f37 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2024

  1. Configuration menu
    Copy the full SHA
    e495637 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2024

  1. Configuration menu
    Copy the full SHA
    76f720e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    53552ad View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2024

  1. Configuration menu
    Copy the full SHA
    f541d0b View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2024

  1. event loop swap

    - brought up libev loop implementation from libquic
    - this will streamline deprecating the old IP_packet, UDPHandle, and other types
    dr7ana committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    800c62b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0d7b973 View commit details
    Browse the repository at this point in the history
  3. deprecation nation

    - old types almost entirely deprecated (ip_packet, sockaddr, etc)
    - need to touch base with the team to discuss packet routing and the like
    dr7ana committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    e6d4814 View commit details
    Browse the repository at this point in the history

Commits on Feb 14, 2024

  1. libquic bump

    dr7ana committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    28194aa View commit details
    Browse the repository at this point in the history
  2. compiling, not linking

    dr7ana committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    b7b9398 View commit details
    Browse the repository at this point in the history
  3. C++ version, clang-format

    - C++ bumped 17 -> 20
    - clang-format (plus all clangs) -> 17
    dr7ana committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    8cc152a View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2024

  1. libquic bump

    dr7ana committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    44e7c1b View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2024

  1. Configuration menu
    Copy the full SHA
    bf2f367 View commit details
    Browse the repository at this point in the history
  2. fully deprecated old logging

    dr7ana committed Mar 17, 2024
    Configuration menu
    Copy the full SHA
    d0af37a View commit details
    Browse the repository at this point in the history
  3. libquic bump

    dr7ana committed Mar 17, 2024
    Configuration menu
    Copy the full SHA
    bb5f1b3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a8c6673 View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2024

  1. templated remoteaddress object

    - eliminated {client,relay}address
    - better loops in new key types
    dr7ana committed Mar 18, 2024
    Configuration menu
    Copy the full SHA
    d8f9702 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d0203b3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b037c04 View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2024

  1. re-separated address classes

    - there is one key difference between the address classes: ClientAddress can be constructed with an ONS name, and can therefore exist in one of 2 dual states (pubkey vs ONS)
    dr7ana committed Mar 19, 2024
    Configuration menu
    Copy the full SHA
    0301bc8 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2024

  1. Putting new objects to use

    - cleaned up config parsing using the better Address/IP types and quic::Address where appropriate
    - created new templated address_map using concepts constraining local types to quic::Address and IPRange, and remote types to {Client,Relay}Address
    - now the correct local addresses and ranges can be passed to the correct handlers and endpoints for remote and local exit/service operation
    - basically fully configured ::RemoteHandler
    - deleted deprecated object files previously removed from compilation
    dr7ana committed Mar 22, 2024
    Configuration menu
    Copy the full SHA
    abb16b1 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2024

  1. libquic c++20/ev-loop/ip bump

    dr7ana committed Mar 27, 2024
    Configuration menu
    Copy the full SHA
    6a20b3d View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2024

  1. Restructuring, session initiation

    - combined {exit,service}::Endpoint into handlers::LocalEndpoint
    - combined {exit,service}::Handler into handlers::RemoteHandler
    - BaseSession subsumed {Client,Relay}Session -> OutboundSession
    - Session initialization code underway
    dr7ana committed Mar 29, 2024
    Configuration menu
    Copy the full SHA
    aae23c1 View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2024

  1. Transposed address types

    - It became increasingly tedious to partition the address types between {Client,Relay}Address, as a client can operate an exit or hidden service while a relay could also be operating a hidden service. The client's hidden service would terminate in a `.loki` while the relay's would terminate in a `.snode`, complicating the ONS logic implemented in ClientAddress
    - Address types were partitioned into {Network,Relay}Address; NetworkAddress conceptually encapsulates all remote hidden services (agnostic of client vs relay) and exit nodes being operated on the network: RelayAddress specifically designates an addressible relay to be used in scopes excluding hidden services and exit nodes
    dr7ana committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    bbbc433 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2024

  1. Design review meeting

    - Session initiation code laid out from path build to successful session object creation
    - NullEndpoint renamed to more apt descriptor
    dr7ana committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    0eaf854 View commit details
    Browse the repository at this point in the history
  2. libquic vbump

    dr7ana committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    b7918df View commit details
    Browse the repository at this point in the history
  3. Segmented path-build

    - Path building logic in ::PathHandler is broken up into 3 functions. This allows paths built outside of the usual PathHandler::Tick() logic (ex: paths for initiating sessions) to implement custom logic and path handling
    - RemoteHandler now uses segmented build logic to create a path upon session initiation without storing the created path internally
    dr7ana committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    b06473d View commit details
    Browse the repository at this point in the history
  4. Removed outer hash for path messages

    - if a hop can generate the symmetric key and decrypt its respective payload, then the concept of checking a hash is somewhat pointless
    - hmac generation and validation removed
    dr7ana committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    8262f04 View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2024

  1. Configuration menu
    Copy the full SHA
    ecd7744 View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2024

  1. Symmetric encryption

    - DRYed out symm. enc. in path-building and session initiation
    - onwards to unifying session initiation/path-build into one-shot
    dr7ana committed Apr 8, 2024
    Configuration menu
    Copy the full SHA
    cbaa175 View commit details
    Browse the repository at this point in the history
  2. Session init

    - correctly looks up introset locally, stores on successful request-response if not found locally
    - fetched introset used for recursive path-build through pivots
    - serialize/deserialize logic DRYs out implementation
    - session init handling laid out
    dr7ana committed Apr 8, 2024
    Configuration menu
    Copy the full SHA
    597927a View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2024

  1. Router prefiguring, ons resolve

    - LocalEndpoint and RemoteHandler properly configured using values from ::NetworkConfig
    - ONS range mappings passed to config now resolved by RemoteHandler at earliest possible phase in Router::run()
    dr7ana committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    a1a3254 View commit details
    Browse the repository at this point in the history
  2. libquic vbump

    dr7ana committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    ee961cf View commit details
    Browse the repository at this point in the history
  3. Make it reachable

    - LocalEndpoint logic for regenerating and publishing introset
    - 'publish_intro' performed over path messages: to be revised upon evaluating determinism in dht key comparison with every relay holding the entire network's RC's at all time
    - surrounding logic left unchanged to be revised as per previous bullet -- can also likely deprecate "order" field with more massaging
    - futher deprecation of "is_relayed" bool field would require different endpoints for relays to call
    dr7ana committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    791155d View commit details
    Browse the repository at this point in the history
  4. Prefiguring, deprecation

    - TunEndpoint and LocalEndpoint prefiguring
    - Fully removed service::Address and all uses of AddressVariant_t in favor of the improved NetworkAddress type
    - Fully removed exit/* and most of service/*
    dr7ana committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    078d0df View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2024

  1. Buffer methods

    - Fixed final bencode.h dependencies in AlignedBuffer that was pending refactor of other types
    - Last traces of any non-oxenc bencode are done
    - Next is TCP listeners!
    dr7ana committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    9e6a334 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2024

  1. TCP listener laid out

    - Was able to repurpose a lot of the code from the ill-fated ev-dns implementation
    - TCP{Handle,Socket} implemented to parallelize UDP{Handle,Socket} in functionality
    - TCP implementation takes in a callback that receives an IPPacket; can also be easily reconfigured to hanle a UDPPacket by simply changing the callback type and the constructor called in llarp/ev/tcp.cpp::tcp_read_cb()
    dr7ana committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    d9cee71 View commit details
    Browse the repository at this point in the history
  2. Netif and quic Tunnel reduction

    - link::TunnelManager will be re-implemented in link::QUICTunnel to make and accept TCP connections
    - Will be simplified using Libevent and hooked into the new LocalEndpoint/RemoteHandler model
    - TCP{Handle,Socket} ownership model will be revised to more monadic model; this will allow the TCPSockets (sockets representing accepted connections) to function entirely independantly of the bound socket
    dr7ana committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    6e5d841 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2024

  1. libquic vbump

    - manual routing
    - Network ctor from existing Loop
    dr7ana committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    849c645 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. So much

    - EmbeddedEndpoint removed for solo implementation of TunEndpoint for all instances except non-embedded clients
    - Deprecated TransitHopInfo, TransitHopID; absorbed into TransitHop
    - Reworked PathContext internal storage of TransitHops, both mutators/setters/getters
    - Straightened out success conditions of path building
    - Session initiation and path respective path building code is almost done being laid out
    - Full steam ahead buddy
    dr7ana committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    fee6cd6 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2024

  1. Session initation, authentication

    - Session initiation/handling session initiation request logic finished; still to loop in TCP logic and handlers
    - remove SessionAuthPolicy from OutboundSession
    - auth token mapping passed to RemoteHandler; ONS auth mappings resolved with ONS range mappings
    - auth_static_tokens passed to LocalEndpoint; received auth verify passed tokens against that
    dr7ana committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    afe20e8 View commit details
    Browse the repository at this point in the history
  2. TCP client code hooked up

    - TCP handles and connections are now looped into session initiation and reception
    - I'm tired
    dr7ana committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    8938c06 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2024

  1. TCP tunnel differentiated inbound/outbound

    - TCP backend is differentiated in Inbound vs Outbound sessions, as one listens while the other connects
    - These pathways are mroe discretely implemented, and the logic may move into the derived classes instead
    - Now to add hooks to connect TCP server/client to backend (app or system TUN)
    dr7ana committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    5b9ad10 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2024

  1. Client session refactor, datagram pipelining

    - LocalEndpoint/RemoteHandler combined into SessionEndpoint for ambidextrous session management
    - Data message routing in/out of paths implemented using callbacks for receiving datagrams differently for embedded vs full clients
    - Tunneled QUIC endpoints (no-UDP endpoints) implemented with TCP client/server endpoints on embedded/full clients
    - Lots of surrounding work on the above points
    dr7ana committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    8a45350 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Dep bump + misc

    - libquic bumped for needed ip methods
    - bumped nlohmann, cpr, CLI11, oxen-encoding, pybind11, sqlite_orm
    - span-lite, ghc-filesystem, and uvw removed after shift to C++20
    dr7ana committed May 28, 2024
    Configuration menu
    Copy the full SHA
    4ef9754 View commit details
    Browse the repository at this point in the history
  2. IPRange iterator

    - Tunnel IP assignment requires robust IP assignment
    - With the correct implementation of max_ip/next_ip retrieval from ip and ip_range objects, we can now implement IPRangeIterator to manage this
    dr7ana committed May 28, 2024
    Configuration menu
    Copy the full SHA
    ce16778 View commit details
    Browse the repository at this point in the history

Commits on May 29, 2024

  1. TUN/Session IP routing negotiation

    - TUN endpoint assigns a local IP to route traffic for inbound/outbound sessions
    - Config mappings pre-loaded and superside ip iteration
    dr7ana committed May 29, 2024
    Configuration menu
    Copy the full SHA
    4979f9a View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2024

  1. TUN ip packet re-writing; deps bump

    - Packets coming in and out of full clients need their IP src/dest addresses re-written
    - Lokinet's TUN device sucks up all packets aimed at the if range, correctly addressing them to the proper outbound
    - On reception, lokinet's TUN device addresses correctly for the mapped application receiving the packet
    - Brought a lil somethin' somethin' from libquic for CI
    - Bump oxenmq to cpp20 branch
    - Revert cpr to 1.9 stable for subproject curl dep bug
    dr7ana committed Jun 2, 2024
    Configuration menu
    Copy the full SHA
    f755d26 View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2024

  1. Configuration menu
    Copy the full SHA
    6a7e973 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2024

  1. testing something on CI

    dr7ana committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    d455a36 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2024

  1. Configuration menu
    Copy the full SHA
    5f61469 View commit details
    Browse the repository at this point in the history
  2. it's... alive!?

    dr7ana committed Jun 14, 2024
    Configuration menu
    Copy the full SHA
    fcf62fb View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2024

  1. libquic bump

    dr7ana committed Jun 19, 2024
    Configuration menu
    Copy the full SHA
    52ceb26 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2024

  1. tick logic handling

    - libevent loop ticker now handles all execution of `Router::tick()`
    dr7ana committed Jun 25, 2024
    Configuration menu
    Copy the full SHA
    c15b3b1 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. Aggregated bugfix commits and logging fixes

    - Formatting concept to enable oxen-logging printing for custom objects was updated with libquic vbump to require boolean member variable
    - Members added in base objects to be inherited through
    dr7ana committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    dfa0e52 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2024

  1. Configuration menu
    Copy the full SHA
    9e300d2 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2024

  1. Configuration menu
    Copy the full SHA
    ec2dbd3 View commit details
    Browse the repository at this point in the history
  2. kick testnet buddy

    dr7ana committed Aug 23, 2024
    Configuration menu
    Copy the full SHA
    5b48abc View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2024

  1. so much better!

    dr7ana committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    ab30bf2 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2024

  1. Misc (squash)

    dr7ana committed Aug 29, 2024
    Configuration menu
    Copy the full SHA
    b794430 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2024

  1. kick

    dr7ana committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    ca7fc07 View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2024

  1. Configuration menu
    Copy the full SHA
    35e05b3 View commit details
    Browse the repository at this point in the history
  2. better netif

    dr7ana committed Sep 3, 2024
    Configuration menu
    Copy the full SHA
    036fbe2 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2024

  1. libevent 2.2 for watchers

    dr7ana committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    c155db3 View commit details
    Browse the repository at this point in the history
  2. more netif

    dr7ana committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    8a381c8 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2024

  1. testing this out

    dr7ana committed Sep 9, 2024
    Configuration menu
    Copy the full SHA
    104ba6d View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2024

  1. libquic -> dr7ana/0rtt, etc

    dr7ana committed Sep 12, 2024
    Configuration menu
    Copy the full SHA
    ea6d62c View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2024

  1. Configuration menu
    Copy the full SHA
    e3d80ea View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2024

  1. yay clients connecting

    dr7ana committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    fe9d229 View commit details
    Browse the repository at this point in the history
  2. yay path building

    dr7ana committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    fe717b9 View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2024

  1. Configuration menu
    Copy the full SHA
    ec32167 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2024

  1. maybe a little green beans too

    dr7ana committed Sep 18, 2024
    Configuration menu
    Copy the full SHA
    5b522e6 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2024

  1. any beets on the side?

    dr7ana committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    c874387 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2024

  1. whatsup paths

    dr7ana committed Sep 24, 2024
    Configuration menu
    Copy the full SHA
    8495517 View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2024

  1. Better linux fd poller

    dr7ana committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    3103194 View commit details
    Browse the repository at this point in the history