good morning!!!!

Skip to content
Snippets Groups Projects
  1. Nov 12, 2019
  2. Jul 14, 2019
  3. May 30, 2019
  4. May 26, 2019
  5. Apr 08, 2019
  6. Mar 25, 2019
  7. 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
  8. Jan 24, 2019
  9. Aug 28, 2018
  10. Aug 17, 2018
    • Felix Lange's avatar
      les: fix crasher in NodeInfo when running as server (#17419) · 2695fa22
      Felix Lange authored
      * les: fix crasher in NodeInfo when running as server
      
      The ProtocolManager computes CHT and Bloom trie roots by asking the
      indexers for their current head. It tried to get the indexers from
      LesOdr, but no LesOdr instance is created in server mode.
      
      Attempt to fix this by moving the indexers, protocol creation and
      NodeInfo to a new lesCommons struct which is embedded into both server
      and client.
      
      All this setup code should really be cleaned up, but this is just a
      hotfix so we have to do that some other time.
      
      * les: fix commons protocol maker
      2695fa22
  11. Aug 15, 2018
  12. Jun 12, 2018
  13. May 07, 2018
  14. Feb 11, 2018
    • Péter Szilágyi's avatar
      les, light: fix CHT trie retrievals (#16039) · 7a0019c6
      Péter Szilágyi authored
      * les, light: fix CHT trie retrievals
      
      * les, light: minor polishes, test remote CHT retrievals
      
      * les, light: deterministic nodeset rlp, bloombits test skeleton
      
      * les: add an event emission to the les bloombits test
      
      * les: drop dead tester code
      7a0019c6
  15. Feb 10, 2018
  16. Feb 05, 2018
  17. Jan 22, 2018
    • Zsolt Felföldi's avatar
      p2p, p2p/discover, p2p/discv5: implement UDP port sharing (#15200) · 92580d69
      Zsolt Felföldi authored
      This commit affects p2p/discv5 "topic discovery" by running it on
      the same UDP port where the old discovery works. This is realized
      by giving an "unhandled" packet channel to the old v4 discovery
      packet handler where all invalid packets are sent. These packets
      are then processed by v5. v5 packets are always invalid when
      interpreted by v4 and vice versa. This is ensured by adding one
      to the first byte of the packet hash in v5 packets.
      
      DiscoveryV5Bootnodes is also changed to point to new bootnodes
      that are implementing the changed packet format with modified
      hash. Existing and new v5 bootnodes are both running on different
      ports ATM.
      92580d69
  18. Oct 24, 2017
    • Zsolt Felföldi's avatar
      les, light: LES/2 protocol version (#14970) · ca376ead
      Zsolt Felföldi authored
      This PR implements the new LES protocol version extensions:
      
      * new and more efficient Merkle proofs reply format (when replying to
        a multiple Merkle proofs request, we just send a single set of trie
        nodes containing all necessary nodes)
      * BBT (BloomBitsTrie) works similarly to the existing CHT and contains
        the bloombits search data to speed up log searches
      * GetTxStatusMsg returns the inclusion position or the
        pending/queued/unknown state of a transaction referenced by hash
      * an optional signature of new block data (number/hash/td) can be
        included in AnnounceMsg to provide an option for "very light
        clients" (mobile/embedded devices) to skip expensive Ethash check
        and accept multiple signatures of somewhat trusted servers (still a
        lot better than trusting a single server completely and retrieving
        everything through RPC). The new client mode is not implemented in
        this PR, just the protocol extension.
      ca376ead
  19. Aug 18, 2017
  20. Aug 08, 2017
  21. Jun 21, 2017
    • Zsolt Felföldi's avatar
      les: code refactoring (#14416) · a5d08c89
      Zsolt Felföldi authored
      This commit does various code refactorings:
      
      - generalizes and moves the request retrieval/timeout/resend logic out of LesOdr
        (will be used by a subsequent PR)
      - reworks the peer management logic so that all services can register with
        peerSet to get notified about added/dropped peers (also gets rid of the ugly
        getAllPeers callback in requestDistributor)
      - moves peerSet, LesOdr, requestDistributor and retrieveManager initialization
        out of ProtocolManager because I believe they do not really belong there and the
        whole init process was ugly and ad-hoc
      a5d08c89
  22. Apr 04, 2017
  23. Mar 23, 2017
    • Felix Lange's avatar
      core: refactor genesis handling · 37dd9086
      Felix Lange authored
      This commit solves several issues concerning the genesis block:
      
      * Genesis/ChainConfig loading was handled by cmd/geth code. This left
        library users in the cold. They could specify a JSON-encoded
        string and overwrite the config, but didn't get any of the additional
        checks performed by geth.
      * Decoding and writing of genesis JSON was conflated in
        WriteGenesisBlock. This made it a lot harder to embed the genesis
        block into the forthcoming config file loader. This commit changes
        things so there is a single Genesis type that represents genesis
        blocks. All uses of Write*Genesis* are changed to use the new type
        instead.
      * If the chain config supplied by the user was incompatible with the
        current chain (i.e. the chain had already advanced beyond a scheduled
        fork), it got overwritten. This is not an issue in practice because
        previous forks have always had the highest total difficulty. It might
        matter in the future though. The new code reverts the local chain to
        the point of the fork when upgrading configuration.
      
      The change to genesis block data removes compression library
      dependencies from package core.
      37dd9086
  24. Mar 03, 2017
  25. Feb 23, 2017
  26. Jan 26, 2017
  27. Dec 10, 2016
  28. Nov 15, 2016
  29. Nov 13, 2016
  30. Nov 09, 2016
Loading