good morning!!!!

Skip to content
Snippets Groups Projects
  1. Nov 12, 2019
  2. Jul 14, 2019
  3. Jun 09, 2019
  4. Jun 07, 2019
    • Felix Lange's avatar
      p2p/enode: improve IPv6 support, add ENR text representation (#19663) · e83c3ccc
      Felix Lange authored
      * p2p/enr: add entries for for IPv4/IPv6 separation
      
      This adds entry types for "ip6", "udp6", "tcp6" keys. The IP type stays
      around because removing it would break a lot of code and force everyone
      to care about the distinction.
      
      * p2p/enode: track IPv4 and IPv6 address separately
      
      LocalNode predicts the local node's UDP endpoint and updates the record.
      This change makes it predict IPv4 and IPv6 endpoints separately since
      they can now be in the record at the same time.
      
      * p2p/enode: implement base64 text format
      * all: switch to enode.Parse(...)
      
      This allows passing base64-encoded node records to all the places that
      previously accepted enode:// URLs. The URL format is still supported.
      
      * cmd/bootnode, p2p: log node URL instead of ENR
      
      ...and return the base64 record in NodeInfo.
  5. May 31, 2019
  6. May 30, 2019
  7. May 26, 2019
  8. May 17, 2019
  9. May 16, 2019
    • Gary Rong's avatar
      all: integrate the freezer with fast sync · 80469bea
      Gary Rong authored
      * all: freezer style syncing
      
      core, eth, les, light: clean up freezer relative APIs
      
      core, eth, les, trie, ethdb, light: clean a bit
      
      core, eth, les, light: add unit tests
      
      core, light: rewrite setHead function
      
      core, eth: fix downloader unit tests
      
      core: add receipt chain insertion test
      
      core: use constant instead of hardcoding table name
      
      core: fix rollback
      
      core: fix setHead
      
      core/rawdb: remove canonical block first and then iterate side chain
      
      core/rawdb, ethdb: add hasAncient interface
      
      eth/downloader: calculate ancient limit via cht first
      
      core, eth, ethdb: lots of fixes
      
      * eth/downloader: print ancient disable log only for fast sync
  10. May 13, 2019
  11. May 02, 2019
  12. Apr 23, 2019
    • Gary Rong's avatar
      miner: polish miner configuration (#19480) · 6269e557
      Gary Rong authored
      * cmd, eth, miner: disable advance sealing if user require
      
      * cmd, console, miner, les, eth: wrap the miner config
      
      * eth: remove todo
      
      * cmd, miner: revert noadvance flag
      
      The reason for this is: if the transaction execution is even longer
      than block time, then this kind of transactions is DoS attack.
      6269e557
  13. Apr 17, 2019
  14. Apr 16, 2019
  15. Apr 15, 2019
  16. Apr 08, 2019
  17. Apr 04, 2019
  18. Apr 03, 2019
  19. Mar 25, 2019
  20. Mar 20, 2019
  21. Mar 18, 2019
  22. Mar 06, 2019
  23. Feb 26, 2019
    • Zsolt Felföldi's avatar
      les, les/flowcontrol: improved request serving and flow control (#18230) · c2003ed6
      Zsolt Felföldi authored
      This change
      
      - implements concurrent LES request serving even for a single peer.
      - replaces the request cost estimation method with a cost table based on
        benchmarks which gives much more consistent results. Until now the
        allowed number of light peers was just a guess which probably contributed
        a lot to the fluctuating quality of available service. Everything related
        to request cost is implemented in a single object, the 'cost tracker'. It
        uses a fixed cost table with a global 'correction factor'. Benchmark code
        is included and can be run at any time to adapt costs to low-level
        implementation changes.
      - reimplements flowcontrol.ClientManager in a cleaner and more efficient
        way, with added capabilities: There is now control over bandwidth, which
        allows using the flow control parameters for client prioritization.
        Target utilization over 100 percent is now supported to model concurrent
        request processing. Total serving bandwidth is reduced during block
        processing to prevent database contention.
      - implements an RPC API for the LES servers allowing server operators to
        assign priority bandwidth to certain clients and change prioritized
        status even while the client is connected. The new API is meant for
        cases where server operators charge for LES using an off-protocol mechanism.
      - adds a unit test for the new client manager.
      - adds an end-to-end test using the network simulator that tests bandwidth
        control functions through the new API.
      c2003ed6
  24. Feb 25, 2019
  25. Feb 21, 2019
  26. Jan 24, 2019
  27. Dec 11, 2018
  28. Dec 06, 2018
  29. Nov 29, 2018
  30. Nov 26, 2018
  31. Nov 15, 2018
  32. Oct 08, 2018
  33. Oct 01, 2018
  34. Sep 24, 2018
    • Felix Lange's avatar
      all: new p2p node representation (#17643) · 30cd5c18
      Felix Lange authored
      Package p2p/enode provides a generalized representation of p2p nodes
      which can contain arbitrary information in key/value pairs. It is also
      the new home for the node database. The "v4" identity scheme is also
      moved here from p2p/enr to remove the dependency on Ethereum crypto from
      that package.
      
      Record signature handling is changed significantly. The identity scheme
      registry is removed and acceptable schemes must be passed to any method
      that needs identity. This means records must now be validated explicitly
      after decoding.
      
      The enode API is designed to make signature handling easy and safe: most
      APIs around the codebase work with enode.Node, which is a wrapper around
      a valid record. Going from enr.Record to enode.Node requires a valid
      signature.
      
      * p2p/discover: port to p2p/enode
      
      This ports the discovery code to the new node representation in
      p2p/enode. The wire protocol is unchanged, this can be considered a
      refactoring change. The Kademlia table can now deal with nodes using an
      arbitrary identity scheme. This requires a few incompatible API changes:
      
        - Table.Lookup is not available anymore. It used to take a public key
          as argument because v4 protocol requires one. Its replacement is
          LookupRandom.
        - Table.Resolve takes *enode.Node instead of NodeID. This is also for
          v4 protocol compatibility because nodes cannot be looked up by ID
          alone.
        - Types Node and NodeID are gone. Further commits in the series will be
          fixes all over the the codebase to deal with those removals.
      
      * p2p: port to p2p/enode and discovery changes
      
      This adapts package p2p to the changes in p2p/discover. All uses of
      discover.Node and discover.NodeID are replaced by their equivalents from
      p2p/enode.
      
      New API is added to retrieve the enode.Node instance of a peer. The
      behavior of Server.Self with discovery disabled is improved. It now
      tries much harder to report a working IP address, falling back to
      127.0.0.1 if no suitable address can be determined through other means.
      These changes were needed for tests of other packages later in the
      series.
      
      * p2p/simulations, p2p/testing: port to p2p/enode
      
      No surprises here, mostly replacements of discover.Node, discover.NodeID
      with their new equivalents. The 'interesting' API changes are:
      
       - testing.ProtocolSession tracks complete nodes, not just their IDs.
       - adapters.NodeConfig has a new method to create a complete node.
      
      These changes were needed to make swarm tests work.
      
      Note that the NodeID change makes the code incompatible with old
      simulation snapshots.
      
      * whisper/whisperv5, whisper/whisperv6: port to p2p/enode
      
      This port was easy because whisper uses []byte for node IDs and
      URL strings in the API.
      
      * eth: port to p2p/enode
      
      Again, easy to port because eth uses strings for node IDs and doesn't
      care about node information in any way.
      
      * les: port to p2p/enode
      
      Apart from replacing discover.NodeID with enode.ID, most changes are in
      the server pool code. It now deals with complete nodes instead
      of (Pubkey, IP, Port) triples. The database format is unchanged for now,
      but we should probably change it to use the node database later.
      
      * node: port to p2p/enode
      
      This change simply replaces discover.Node and discover.NodeID with their
      new equivalents.
      
      * swarm/network: port to p2p/enode
      
      Swarm has its own node address representation, BzzAddr, containing both
      an overlay address (the hash of a secp256k1 public key) and an underlay
      address (enode:// URL).
      
      There are no changes to the BzzAddr format in this commit, but certain
      operations such as creating a BzzAddr from a node ID are now impossible
      because node IDs aren't public keys anymore.
      
      Most swarm-related changes in the series remove uses of
      NewAddrFromNodeID, replacing it with NewAddr which takes a complete node
      as argument. ToOverlayAddr is removed because we can just use the node
      ID directly.
Loading