1. 01 Apr, 2021 1 commit
  2. 04 Jan, 2021 3 commits
  3. 02 Dec, 2020 2 commits
  4. 02 Sep, 2020 2 commits
  5. 14 Aug, 2020 1 commit
  6. 10 Jun, 2020 1 commit
  7. 03 Jun, 2020 1 commit
  8. 22 May, 2020 1 commit
  9. 19 May, 2020 1 commit
  10. 14 May, 2020 1 commit
  11. 06 May, 2020 3 commits
  12. 23 Apr, 2020 1 commit
  13. 09 Apr, 2020 3 commits
  14. 07 Apr, 2020 1 commit
  15. 06 Apr, 2020 2 commits
  16. 03 Apr, 2020 16 commits
    • Steven Allen's avatar
      chore: fix lints · 5aad9549
      Steven Allen authored
      Except deprecated warn calls
      5aad9549
    • Aarsh Shah's avatar
      Periodic Pinging and active fixLowPeers (#533) · 2539114e
      Aarsh Shah authored
      * fix Low Peers and Cleanup
      2539114e
    • Aarsh Shah's avatar
      New RT management policy (#520) · 8fa04389
      Aarsh Shah authored
      * new RT management policy
      8fa04389
    • Adin Schmahmann's avatar
      fix(test): TestFindPeerQuery and TestFindPeerQueryMinimal now refresh DHT... · 7c8f4044
      Adin Schmahmann authored
      fix(test): TestFindPeerQuery and TestFindPeerQueryMinimal now refresh DHT routing tables before running. TestFindPeerQuery no longer runs with the race detector because it uses too many goroutines.
      7c8f4044
    • Aarsh Shah's avatar
      Remove disjoint queries (#503) · 94cf3e54
      Aarsh Shah authored
      * remove disjoint queries
      * remove globally queried check
      * removed dht rng field and mutex
      * removed the Disjoint option
      Co-authored-by: default avatarAdin Schmahmann <adin.schmahmann@gmail.com>
      94cf3e54
    • Adin Schmahmann's avatar
      Asynchronous lookups (#498) · 94cf4811
      Adin Schmahmann authored
      * feat(query): fully async implementation of Kademlia lookup. peers returned from the lookup are not guaranteed to be alive (i.e. we're only guaranteed to have dialed the closest beta peers to the target), but given stable and correct routing tables the expectation that most of the peers returned are alive is high.
      * feat(query): add wrapper lookup followup function to followup after the lookup is completed and ensure that the closest k returned peers from a lookup have been queried even for beta < k
      * refactor(query) modified the structure returned from lookups to be a useful subset of the full query state instead of the entire query state
      * feat(options): beta parameter exposed as the Resiliency parameter
      * feat(routing): do not mark the routing table as updated after a FindPeer query
      * feat(routing): FindPeer can return addresses even if not Connected as long as it was either recently connected (CanConnect) or was discovered during the lookup
      * feat(bootstrap): bootstrap logic now uses GetClosestPeers instead of FindPeer
      * refactor(dht): stopFn no longer takes any state
      * fix(test): changed GetClosestPeers test to only assume beta instead of k peers since that is now more appropriate given the query logic changes and that the routing tables in that test are bad, i.e. a ring network with arbitrary peerIDs
      Co-authored-by: default avatarPetar Maymounkov <petarm@gmail.com>
      Co-authored-by: default avatarAarsh Shah <aarshkshah1992@gmail.com>
      94cf4811
    • Adin Schmahmann's avatar
    • Aarsh Shah's avatar
      RT connectivity changes · c17965fa
      Aarsh Shah authored
      c17965fa
    • Adin Schmahmann's avatar
      Upgrade DHT version (#479) · 07dff1f5
      Adin Schmahmann authored
      * upgraded the protocol id to version 2 (i.e. /kad/2.0.0) and made it so v2 peers running in server mode respond to queries from v1 peers. Note: v2 peers will only send queries using the v2 protocol, will only add v2 peers to their routing tables, and will only tell v1 peers about v2 peers.
      * to run a forked network we now use network specific protocol prefixes instead of manually setting protocol IDs. Use the ProtocolPrefix option instead of the Protocols option.
      * emit errors during initialization if the user misuses the default protocol prefix by setting parameters inconsistent with the default protocol's network specification
      * since the Client option has been deprecated it's been removed from the dht's options. While deprecated it is still available in the dht options package. Setting `Client(false)` now puts the node into ModeAuto.
      07dff1f5
    • Steven Allen's avatar
      feat: move options to main package and make internals private (#486) · 30fa0861
      Steven Allen authored
      * feat: move options to main package and make internals private
      
      Rationale:
      
      1. This allows us to make private options for testing.
      2. This removes an import for DHT users.
      3. This makes options much easier to discover.
      4. This makes it possible to make the config/options internals private.
      
      We originally put them in a sub-package to avoid poluting the root namespace,
      but that isn't really necessary.
      
      This keeps the old package (for now) to avoid breaking too much.
      30fa0861
    • Adin Schmahmann's avatar
      Enable switching DHT between client and server modes (#469) · d4134a46
      Adin Schmahmann authored
      * created Mode(ModeOpt) option for choosing between auto/client/server modes
      * Auto mode internally switches the DHT between client and server modes based on the EvtLocalReachabilityChanged event emitted on the event bus (e.g. by AutoNAT)
      * routing table management of peers that switch between client and server mode while we are connected to them (i.e. are in auto mode)
      * removed Client(bool) option, becoming a DHT client is specified using Mode(ModeClient) instead
      d4134a46
    • Adin Schmahmann's avatar
      options: KValue and AlphaValue global variables no longer used internally.... · e967acad
      Adin Schmahmann authored
      options: KValue and AlphaValue global variables no longer used internally. Concurrency option now sets alpha. DisjointPaths option now sets d. Default number of disjoint paths is now bucketSize/2.
      e967acad
    • Adin Schmahmann's avatar
    • Adin Schmahmann's avatar
      error on queries to empty routing table · 6dac71ce
      Adin Schmahmann authored
      6dac71ce
    • Adin Schmahmann's avatar
      fix Search/GetValue to be Kad compliant. Default quorum is now 0 which means... · 564764fb
      Adin Schmahmann authored
      fix Search/GetValue to be Kad compliant. Default quorum is now 0 which means do not abort the query early
      564764fb
    • Adin Schmahmann's avatar
      first pass at proper kad · 6793dc11
      Adin Schmahmann authored
      6793dc11