1. 19 Mar, 2020 1 commit
  2. 30 Jan, 2020 1 commit
    • dirkmc's avatar
      feat: bitswap protocol extensions · b3a47bcf
      dirkmc authored
      This commit extends the bitswap protocol with two additional wantlist properties:
      
      * WANT_HAVE/HAVE: Instead of asking for a block, a node can specify that they
        want to know if any peers "have" the block.
      * WANT_HAVE_NOT/HAVE_NOT: Instead of waiting for a timeout, a node can explicitly
        request to be told immediately if their peers don't currently have the given
        block.
      
      Additionally, nodes now tell their peers how much data they have queued to send
      them when sending messages. This allows peers to better distribute requests,
      keeping all peers busy but not overloaded.
      
      Changes in this PR are described in: https://github.com/ipfs/go-bitswap/issues/186
      b3a47bcf
  3. 15 Oct, 2019 1 commit
  4. 18 Feb, 2019 1 commit
  5. 04 Oct, 2018 1 commit
    • Steven Allen's avatar
      allocate less in protobufs · 243a6c53
      Steven Allen authored
      This was showing up as a major source of heap allocations (well, at least when
      the DHT is in client-only mode).
      243a6c53
  6. 09 Aug, 2018 1 commit
  7. 27 Jul, 2018 1 commit
  8. 17 Nov, 2017 1 commit
  9. 12 Feb, 2017 1 commit
    • Jakub Sztandera's avatar
      make: rework makefiles for non-recursive make and add sharness coverage · 77a6c312
      Jakub Sztandera authored
      This commit introduces non-recursive Makefile infrastructure that replaces current Makefile infrastructure.
      It also generally cleanups the Makefiles, separates them into nicer sub-modules and centralizes common operations into single definitions.
      
      It allows to depend on any target that is defined in the makefile, this means that for example `gx install` is called once when `make build test_expensive_sharness` is called instead of 4 or 5 times.
      
      It also makes the dependencies much cleaner and allows for reuse of modules. For example sharness coverage collection (WIP) uses sharness target with amended PATH, previously it might have been possible but not without wiring in the coverage collection into sharness make runner code.
      
      Yes, it is more complex but not much more. There are few rules that have to be followed and few complexities added but IMHO it is worth it.
      
      How to NR-make:
      1. If make is to generate some file via a target, it MUST be defined in Rules.mk file in the directory of the target.
      2. `Rules.mk` file MUST have `include mk/header.mk` statement as the first line and `include mk/footer.mk` statement as the last line (apart from project root `Rules.mk`).
      3. It then MUST be included by the closest `Rules.mk` file up the directory tree.
      4. Inside a `Rules.mk` special variable accessed as `$(d)` is defined. Its value is current directory, use it so if the `Rules.mk` file is moved in the tree it still works without a problem. Caution: this variable is not available in the recipe part and MUST NOT be used. Use name of the target or prerequisite to extract it if you need it.
      5. Make has only one global scope, this means that name conflicts are a thing. Names SHOULD  follow `VAR_NAME_$(d)` convention. There are exceptions from this rule in form of well defined global variables. Examples: General lists `TGT_BIN`, `CLEAN`; General targets: `TEST`, `COVERAGE`; General variables: `GOFLAGS`, `DEPS_GO`.
      3. Any rules, definitions or variables that fit some family SHOULD be defined in `mk/$family.mk` file and included from project root `Rules.mk`
      
      License: MIT
      Signed-off-by: default avatarJakub Sztandera <kubuxu@protonmail.ch>
      77a6c312
  10. 07 Dec, 2016 1 commit
  11. 10 Oct, 2016 1 commit
    • Jeromy's avatar
      bitswap: protocol extension to handle cids · 591491b1
      Jeromy authored
      This change adds the /ipfs/bitswap/1.1.0 protocol. The new protocol
      adds a 'payload' field to the protobuf message and deprecates the
      existing 'blocks' field. The 'payload' field is an array of pairs of cid
      prefixes and block data. The cid prefixes are used to ensure the correct
      codecs and hash functions are used to handle the block on the receiving
      end.
      
      License: MIT
      Signed-off-by: default avatarJeromy <why@ipfs.io>
      591491b1
  12. 13 Feb, 2016 1 commit
  13. 10 Jul, 2015 1 commit