good morning!!!!

Skip to content
Snippets Groups Projects
  1. Aug 25, 2021
  2. Aug 24, 2021
  3. Jul 29, 2021
  4. Jul 06, 2021
  5. Jun 29, 2021
  6. Jun 28, 2021
  7. May 27, 2021
    • Felix Lange's avatar
      p2p/msgrate: return capacity as integer, clamp to max uint32 (#22943) · 42717515
      Felix Lange authored
      * p2p/msgrate: return capacity as integer
      
      * eth/protocols/snap: remove conversions
      
      * p2p/msgrate: add overflow test
      
      * p2p/msgrate: make the capacity overflow test actually overflow
      
      * p2p/msgrate: clamp capacity to max int32
      
      * p2p/msgrate: fix min/max confusion
      42717515
    • Felix Lange's avatar
      p2p/rlpx: reduce allocation and syscalls (#22899) · 7194c847
      Felix Lange authored
      This change significantly improves the performance of RLPx message reads
      and writes. In the previous implementation, reading and writing of
      message frames performed multiple reads and writes on the underlying
      network connection, and allocated a new []byte buffer for every read.
      
      In the new implementation, reads and writes re-use buffers, and perform
      much fewer system calls on the underlying connection. This doubles the
      theoretically achievable throughput on a single connection, as shown by
      the benchmark result:
      
          name             old speed      new speed       delta
          Throughput-8     70.3MB/s ± 0%  155.4MB/s ± 0%  +121.11%  (p=0.000 n=9+8)
      
      The change also removes support for the legacy, pre-EIP-8 handshake encoding.
      As of May 2021, no actively maintained client sends this format.
      7194c847
  8. May 25, 2021
  9. May 20, 2021
  10. May 19, 2021
  11. May 18, 2021
  12. May 04, 2021
    • Felix Lange's avatar
      cmd/utils: use eth DNS tree for snap discovery (#22808) · b8040a43
      Felix Lange authored
      This removes auto-configuration of the snap.*.ethdisco.net DNS discovery tree.
      Since measurements have shown that > 75% of nodes in all.*.ethdisco.net support
      snap, we have decided to retire the dedicated index for snap and just use the eth
      tree instead.
      
      The dial iterators of eth and snap now use the same DNS tree in the default configuration,
      so both iterators should use the same DNS discovery client instance. This ensures that
      the record cache and rate limit are shared. Records will not be requested multiple times.
      
      While testing the change, I noticed that duplicate DNS requests do happen even
      when the client instance is shared. This is because the two iterators request the tree
      root, link tree root, and first levels of the tree in lockstep. To avoid this problem, the
      change also adds a singleflight.Group instance in the client. When one iterator
      attempts to resolve an entry which is already being resolved, the singleflight object
      waits for the existing resolve call to finish and returns the entry to both places.
      b8040a43
  13. Apr 27, 2021
  14. Apr 23, 2021
  15. Apr 22, 2021
  16. Apr 06, 2021
    • Zsolt Felföldi's avatar
      les: move client pool to les/vflux/server (#22495) · 2d89fe08
      Zsolt Felföldi authored
      
      * les: move client pool to les/vflux/server
      
      * les/vflux/server: un-expose NodeBalance, remove unused fn, fix bugs
      
      * tests/fuzzers/vflux: add ClientPool fuzzer
      
      * les/vflux/server: fixed balance tests
      
      * les: rebase fix
      
      * les/vflux/server: fixed more bugs
      
      * les/vflux/server: unexported NodeStateMachine fields and flags
      
      * les/vflux/server: unexport all internal components and functions
      
      * les/vflux/server: fixed priorityPool test
      
      * les/vflux/server: polish balance
      
      * les/vflux/server: fixed mutex locking error
      
      * les/vflux/server: priorityPool bug fixed
      
      * common/prque: make Prque wrap-around priority handling optional
      
      * les/vflux/server: rename funcs, small optimizations
      
      * les/vflux/server: fixed timeUntil
      
      * les/vflux/server: separated balance.posValue and negValue
      
      * les/vflux/server: polish setup
      
      * les/vflux/server: enforce capacity curve monotonicity
      
      * les/vflux/server: simplified requestCapacity
      
      * les/vflux/server: requestCapacity with target range, no iterations in SetCapacity
      
      * les/vflux/server: minor changes
      
      * les/vflux/server: moved default factors to balanceTracker
      
      * les/vflux/server: set inactiveFlag in priorityPool
      
      * les/vflux/server: moved related metrics to vfs package
      
      * les/vflux/client: make priorityPool temp state logic cleaner
      
      * les/vflux/server: changed log.Crit to log.Error
      
      * add vflux fuzzer to oss-fuzz
      
      Co-authored-by: default avatarrjl493456442 <garyrong0905@gmail.com>
      2d89fe08
  17. Mar 26, 2021
  18. Mar 24, 2021
  19. Mar 19, 2021
  20. Mar 11, 2021
  21. Mar 01, 2021
    • Zsolt Felföldi's avatar
      les: UDP pre-negotiation of available server capacity (#22183) · d9687042
      Zsolt Felföldi authored
      This PR implements the first one of the "lespay" UDP queries which
      is already useful in itself: the capacity query. The server pool is making
      use of this query by doing a cheap UDP query to determine whether it is
      worth starting the more expensive TCP connection process.
      d9687042
  22. Feb 19, 2021
    • Felix Lange's avatar
      p2p/dnsdisc: fix hot-spin when all trees are empty (#22313) · d36276d8
      Felix Lange authored
      In the random sync algorithm used by the DNS node iterator, we first pick a random
      tree and then perform one sync action on that tree. This happens in a loop until any
      node is found. If no trees contain any nodes, the iterator will enter a hot loop spinning
      at 100% CPU.
      
      The fix is complicated. The iterator now checks if a meaningful sync action can
      be performed on any tree. If there is nothing to do, it waits for the next root record
      recheck time to arrive and then tries again.
      
      Fixes #22306
      d36276d8
  23. Feb 18, 2021
    • Martin Holst Swende's avatar
      eth: implement eth66 (#22241) · 6ec15610
      Martin Holst Swende authored
      * eth/protocols/eth: split up the eth protocol handlers
      
      * eth/protocols/eth: define eth-66 protocol messages
      
      * eth/protocols/eth: poc implement getblockheaders on eth/66
      
      * eth/protocols/eth: implement remaining eth-66 handlers
      
      * eth/protocols: define handler map for eth 66
      
      * eth/downloader: use protocol constants from eth package
      
      * eth/protocols/eth: add ETH66 capability
      
      * eth/downloader: tests for eth66
      
      * eth/downloader: fix error in tests
      
      * eth/protocols/eth: use eth66 for outgoing requests
      
      * eth/protocols/eth: remove unused error type
      
      * eth/protocols/eth: define protocol length
      
      * eth/protocols/eth: fix pooled tx over eth66
      
      * protocols/eth/handlers: revert behavioural change which caused tests to fail
      
      * eth/downloader: fix failing test
      
      * eth/protocols/eth: add testcases + fix flaw with header requests
      
      * eth/protocols: change comments
      
      * eth/protocols/eth: review fixes + fixed flaw in RequestOneHeader
      
      * eth/protocols: documentation
      
      * eth/protocols/eth: review concerns about types
      6ec15610
  24. Feb 05, 2021
  25. Feb 02, 2021
  26. Jan 26, 2021
    • Zsolt Felföldi's avatar
      les: switch to new discv5 (#21940) · a72fa88a
      Zsolt Felföldi authored
      
      This PR enables running the new discv5 protocol in both LES client
      and server mode. In client mode it mixes discv5 and dnsdisc iterators
      (if both are enabled) and filters incoming ENRs for "les" tag and fork ID.
      The old p2p/discv5 package and all references to it are removed.
      
      Co-authored-by: default avatarFelix Lange <fjl@twurst.com>
      a72fa88a
  27. Jan 25, 2021
  28. Jan 13, 2021
  29. Dec 09, 2020
    • Felix Lange's avatar
      p2p/enode: avoid crashing for invalid IP (#21981) · 817a3fb5
      Felix Lange authored
      The database panicked for invalid IPs. This is usually no problem
      because all code paths leading to node DB access verify the IP, but it's
      dangerous because improper validation can turn this panic into a DoS
      vulnerability. The quick fix here is to just turn database accesses
      using invalid IP into a noop. This isn't great, but I'm planning to
      remove the node DB for discv5 long-term, so it should be fine to have
      this quick fix for half a year.
      
      Fixes #21849
      817a3fb5
  30. Nov 30, 2020
  31. Nov 25, 2020
  32. Nov 20, 2020
  33. Nov 13, 2020
Loading