1. 30 Aug, 2018 1 commit
  2. 22 Aug, 2018 1 commit
  3. 21 Aug, 2018 2 commits
  4. 20 Aug, 2018 2 commits
  5. 15 Aug, 2018 1 commit
  6. 13 Aug, 2018 2 commits
  7. 12 Aug, 2018 1 commit
  8. 11 Aug, 2018 1 commit
  9. 09 Aug, 2018 1 commit
  10. 07 Aug, 2018 1 commit
  11. 05 Aug, 2018 1 commit
  12. 30 Jul, 2018 1 commit
  13. 29 Jul, 2018 1 commit
  14. 28 Jul, 2018 2 commits
  15. 23 Jul, 2018 2 commits
  16. 19 Jul, 2018 2 commits
  17. 18 Jul, 2018 2 commits
  18. 16 Jul, 2018 3 commits
  19. 12 Jul, 2018 1 commit
  20. 09 Jul, 2018 1 commit
    • Lucas Molas's avatar
      unixfs: add a directory interface · c82aac7a
      Lucas Molas authored
      Add a UnixFS `Directory` that hides implementation details and helps to
      distinguish *what* is a UnixFS directory.
      
      Replace the `unixfs.io.Directory` structure that contained the HAMT and basic
      directory implementations (through inner pointers) with an interface containing
      the same methods. Implement those methods in two clearly distinct structures for
      each implementation (`BasicDirectory` and `HAMTDirectory`) avoiding pointer
      logic and clearly differentiating which implementation does what.
      
      The potential basic to HAMT transition was being hidden behind the `AddChild`
      call at the UnixFS layer (changing one implementation pointer  with the other
      one), it is now being explicitly done at the MFS layer.
      
      Rename the `dirbuilder.go` file to `directory.go` and change the `Directory` MFS
      attribute `dirbuilder` to `unixfsDir` to be consistent.
      
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      c82aac7a
  21. 06 Jul, 2018 1 commit
  22. 29 Jun, 2018 3 commits
    • Lucas Molas's avatar
      mfs: remove `DAGService` from `Root` · b7cf4011
      Lucas Molas authored
      The `Root` structure now explicitly contains a `Directory` (instead of an
      `FSNode` interface), use that `Directory`'s `DAGService` instead of its own
      `dserv` variable (which was used only once in `closeChild()`). The `DAGService`
      in the `Root` and the `Directory` was the same (passed as an argument in the
      `NewRoot` initializer function).
      
      This leaves the `Root` structure with only a `Directory` and a `Republisher` and
      allows to better rethink its role and whether if those two structures should be
      grouped together (and if that group's name should be `Root`).
      
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      b7cf4011
    • Lucas Molas's avatar
      mfs: remove unused `Root` variables `node` and `Type` · f7f899d6
      Lucas Molas authored
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      f7f899d6
    • Lucas Molas's avatar
      mfs: make `Root` value a `Directory` · 09d6e801
      Lucas Molas authored
      Make `Root` value explicitly a `Directory` structure instead of the `FSNode`
      interface (which also allowed the `File` type). This helps to make the code
      easier to reason about: the root of an MFS layout is always a directory, not a
      (single) file.
      
      Rename `GetValue()` to `GetDirectory()` to also make it more explicit, the
      renamed function now returns a `Directory` so there is no need for type
      assertions that were previously done on the `FSNode` interface to check that it
      was actually a `Directory`.
      
      `NewRoot()` now doesn't allow to create `Root` structures from DAG nodes that
      contain UnixFS files.
      
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      09d6e801
  23. 27 Jun, 2018 1 commit
    • Steven Allen's avatar
      gx update · b5d3b18b
      Steven Allen authored
      Updates:
      
      * go-kad-dht: Query performance improvements, DHT client fixes, validates
        records on *local* put.
      * go-libp2p-swarm/go-libp2p-transport: Timeout improvements.
      * go-multiaddr-net: Exposes useful Conn methods (CloseWrite, CloseRead, etc.)
      * go-log: fixes possible panic when enabling/disabling events.
      * go-multiaddr: fixes possible panic when stringifying malformed multiaddrs,
        adds support for consuming /p2p/ multiaddrs.
      
      fixes #5113
      unblocks #4895
      
      License: MIT
      Signed-off-by: default avatarSteven Allen <steven@stebalien.com>
      b5d3b18b
  24. 13 Jun, 2018 1 commit
  25. 11 Jun, 2018 1 commit
    • Lucas Molas's avatar
      unixfs: integrate `pb.Data` into `FSNode` · 27b9ea02
      Lucas Molas authored
      To avoid duplicating fields and making the code easier to follow.
      
      Remove all of `FSNode` previous fields in favor on a single `pb.Data` structure
      that is not exported. Accessor methods are added only for the necessary internal
      fields. This takes up more memory, `pb.Data` is always created inside `FSNode`
      and it stays there instead of just being created and destroyed during the
      (un)marshal operations.
      
      The removed fields `Data`, `blocksizes` and `Type` had a direct counterpart in
      the embedded `pb.Data` structure, in contrast (only) the `subtotal` field
      doesn't have one, it was used as a temporary accumulator to track the
      `Filesize`, which is now being kept updated on every modification (to ensure the
      entire `FSNode` is always at a valid state), so `subtotal` could just be removed
      without the addition of any other field (this temporary accumulator  was
      obscuring how `Filesize` was computed).
      
      To keep `Filesize` up to date a method was added (`UpdateFilesize()`) to adjust
      its value in the two places where the file size could be modified, when changing
      its data (in `SetData()`, accessor method added) and when adding or removing
      child nodes (in `AddBlockSize()` and `RemoveBlockSize()`).
      
      A constructor method was added (`NewFSNode()`) to initialize the required
      fields, like `Type` which is explicitly set, this deprecates the previous
      methodology of just calling `new(FSNode)` and relying in the default value of
      `pb.Data_DataType` (`Data_Raw`) to avoid an explicit assignment. Also,
      `Filesize` is initialized to avoid being left with a `nil` value before
      marshaling empty nodes, which would result in a different hash from previous
      versions, to be backwards compatible. Previous versions of `GetBytes()` always
      set the `Filesize` value, even though it is reflected as an `optional` field in
      the `.proto` file (this may be an inaccurate field rule).
      
      Without the duplicated fields the functions `GetBytes()` and `FSNodeFromBytes()`
      are now reduced to simple `Marshal()` and `Unmarshal()` operations respectively.
      
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      27b9ea02
  26. 09 Jun, 2018 1 commit
  27. 01 Jun, 2018 1 commit
  28. 19 Apr, 2018 1 commit
  29. 30 Mar, 2018 1 commit