good morning!!!!

Skip to content
Snippets Groups Projects
  1. May 27, 2021
    • Marius van der Wijden's avatar
      crypto/secp256k1: fix undefined behavior in BitCurve.Add (#22621) · 0703ef62
      Marius van der Wijden authored
      
      This commit changes the behavior of BitCurve.Add to be more inline
      with btcd. It fixes two different bugs:
      
      1) When adding a point at infinity to another point, the other point
         should be returned. While this is undefined behavior, it is better
         to be more inline with the go standard library.
         Thus (0,0) + (a, b) = (a,b)
      
      2) Adding the same point to itself produced the point at infinity.
         This is incorrect, now doubleJacobian is used to correctly calculate it.
         Thus (a,b) + (a,b) == 2* (a,b) and not (0,0) anymore.
      
      The change also adds a differential fuzzer for Add, testing it against btcd.
      
      Co-authored-by: default avatarFelix Lange <fjl@twurst.com>
      0703ef62
    • rene's avatar
    • 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
    • Martin Holst Swende's avatar
      cmd/utils: avoid large alloc in --dev mode (#22949) · 2e7714f8
      Martin Holst Swende authored
      * cmd/utils: avoid 1Gb alloc in --dev mode
      
      * cmd/geth: avoid 512Mb alloc in genesis query tests
      2e7714f8
  2. May 26, 2021
  3. May 25, 2021
    • meowsbits's avatar
      ethstats: fix URL parser for '@' or ':' in node name/password (#21640) · 10962b68
      meowsbits authored
      Fixes the case (example below) where the value passed
      to --ethstats flag would be parsed wrongly because the
      node name and/or password value contained the special
      characters '@' or ':'
      
          --ethstats "ETC Labs Metrics @meowsbits":mypass@ws://mordor.dash.fault.dev:3000
      10962b68
    • rene's avatar
      cmd/devp2p: refactor eth test suite (#22843) · 49bde05a
      rene authored
      This PR refactors the eth test suite to make it more readable and
      easier to use. Some notable differences:
      
      - A new file helpers.go stores all of the methods used between
        both eth66 and eth65 and below tests, as well as methods shared
        among many test functions.
      - suite.go now contains all of the test functions for both eth65
        tests and eth66 tests.
      - The utesting.T object doesn't get passed through to other helper methods,
        but is instead only used within the scope of the test function,
        whereas helper methods return errors, so only the test function
        itself can fatal out in the case of an error.
      - The full test suite now only takes 13.5 seconds to run.
      49bde05a
    • Eugene Lepeico's avatar
      tests: get test name from testing.T (#22941) · 6c7d6cf8
      Eugene Lepeico authored
      There were 2 TODOs about that fix after Golang 1.8 release.
      It's here for 3 years already, so now should be the right time.
      6c7d6cf8
    • meowsbits's avatar
      750115ff
    • Gary Rong's avatar
      internal/ethapi: merge CallArgs and SendTxArgs (#22718) · 51b32cc7
      Gary Rong authored
      
      There are two transaction parameter structures defined in
      the codebase, although for different purposes. But most of
      the parameters are shared. So it's nice to reduce the code
      duplication by merging them together.
      
      Co-authored-by: default avatarMartin Holst Swende <martin@swende.se>
      51b32cc7
    • Felix Lange's avatar
      eth: unregister peer only when handler exits (#22908) · 836c647b
      Felix Lange authored
      This removes the error log message that says 
      
          Ethereum peer removal failed ... err="peer not registered"
      
      The error happened because removePeer was called multiple
      times: once to disconnect the peer, and another time when the
      handler exited. With this change, removePeer now has the sole
      purpose of disconnecting the peer. Unregistering happens exactly
      once, when the handler exits.
      836c647b
    • Felix Lange's avatar
      rlp: optimize big.Int decoding for size <= 32 bytes (#22927) · 4d33de9b
      Felix Lange authored
      This change grows the static integer buffer in Stream to 32 bytes,
      making it possible to decode 256bit integers without allocating a
      temporary buffer.
      
      In the recent commit 088da24e, Stream struct size decreased from 120
      bytes down to 88 bytes. This commit grows the struct to 112 bytes again,
      but the size change will not degrade performance because Stream
      instances are internally cached in sync.Pool.
      
          name             old time/op    new time/op    delta
          DecodeBigInts-8    12.2µs ± 0%     8.6µs ± 4%  -29.58%  (p=0.000 n=9+10)
      
          name             old speed      new speed      delta
          DecodeBigInts-8   230MB/s ± 0%   326MB/s ± 4%  +42.04%  (p=0.000 n=9+10)
      4d33de9b
    • ucwong's avatar
      rlp, tests/fuzzers/bls12381: gofmt (#22937) · 017cf71f
      ucwong authored
      017cf71f
  4. May 24, 2021
  5. May 22, 2021
    • Felix Lange's avatar
      rlp: optimize byte array handling (#22924) · 154ca32a
      Felix Lange authored
      This change improves the performance of encoding/decoding [N]byte.
      
          name                     old time/op    new time/op    delta
          DecodeByteArrayStruct-8     336ns ± 0%     246ns ± 0%  -26.98%  (p=0.000 n=9+10)
          EncodeByteArrayStruct-8     225ns ± 1%     148ns ± 1%  -34.12%  (p=0.000 n=10+10)
      
          name                     old alloc/op   new alloc/op   delta
          DecodeByteArrayStruct-8      120B ± 0%       48B ± 0%  -60.00%  (p=0.000 n=10+10)
          EncodeByteArrayStruct-8     0.00B          0.00B          ~     (all equal)
      154ca32a
    • Felix Lange's avatar
      rlp: use atomic.Value for type cache (#22902) · 0d076d92
      Felix Lange authored
      All encoding/decoding operations read the type cache to find the
      writer/decoder function responsible for a type. When analyzing CPU
      profiles of geth during sync, I found that the use of sync.RWMutex in
      cache lookups appears in the profiles. It seems we are running into
      CPU cache contention problems when package rlp is heavily used
      on all CPU cores during sync.
      
      This change makes it use atomic.Value + a writer lock instead of
      sync.RWMutex. In the common case where the typeinfo entry is present in
      the cache, we simply fetch the map and lookup the type.
      0d076d92
  6. May 21, 2021
  7. May 20, 2021
  8. May 19, 2021
  9. May 18, 2021
  10. May 17, 2021
  11. May 12, 2021
  12. May 11, 2021
Loading