1. 16 Jul, 2018 1 commit
  2. 06 Jul, 2018 2 commits
    • Lucas Molas's avatar
    • Lucas Molas's avatar
      pbdagreader: use FSNode instead of protobuf structure · c847ff39
      Lucas Molas authored
      Focus on the UnixFS layer and avoid explicit references to protocol buffers
      format (used to serialize objects of that layer). Use the `unixfs.FSNode`
      structure which it abstracts from the `unixfs.pb.Data` format.
      
      Replace `PBDagReader` field `ftpb.Data` with `ft.FSNode`, renaming it to `file`
      (which is the type of UnixFS object represented in the reader) and changing its
      comment removing the "cached" reference, as this structure is not used here as a
      cache (`PBDagReader` doesn't modify the DAG, it's read-only). Also, removed
      unused `ProtoNode` field to avoid confusions, as it would normally be present if
      the `FSNode` was in fact used as a cache of the contents of the `ProtoNode`.
      
      An example of the advantage of shifting the focus from the format to the UnixFS
      layer is dropping the of use `len(pb.Blocksizes)` in favor of the more clear
      `NumChildren()` abstraction.
      
      Added `BlockSize()` accessor.
      
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      c847ff39
  3. 05 Jul, 2018 1 commit
  4. 27 Jun, 2018 1 commit
    • Steven Allen's avatar
      gx update · afe71e4b
      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>
      afe71e4b
  5. 13 Jun, 2018 1 commit
  6. 11 Jun, 2018 1 commit
    • Lucas Molas's avatar
      unixfs: integrate `pb.Data` into `FSNode` · 3c982f0b
      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>
      3c982f0b
  7. 09 Jun, 2018 1 commit
  8. 01 Jun, 2018 1 commit
  9. 20 Apr, 2018 3 commits
  10. 19 Apr, 2018 1 commit
  11. 17 Apr, 2018 1 commit
    • Lucas Molas's avatar
      dag: deduplicate AddNodeLinkClean into AddNodeLink · 165433d2
      Lucas Molas authored
      `AddNodeLink` used to cache the linked node whereas `AddNodeLinkClean`
      did not, however, at some point the former was changed to do the same
      thing as the latter (i.e., not cache the linked node). That is, they now
      do the same thing so there's no reason to have both.
      
      The name `AddNodeLink` is preserved, even though it used to imply the
      cache functionality contrasting with the `Clean` suffix of
      `AddNodeLinkClean`, with this function removed the cache connotation
      doesn't hold anymore.
      
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      165433d2
  12. 08 Apr, 2018 1 commit
  13. 30 Mar, 2018 6 commits
  14. 27 Mar, 2018 1 commit
  15. 24 Mar, 2018 1 commit
  16. 23 Mar, 2018 6 commits
  17. 21 Mar, 2018 1 commit
  18. 15 Mar, 2018 1 commit
  19. 04 Mar, 2018 1 commit
  20. 08 Feb, 2018 5 commits
  21. 07 Feb, 2018 2 commits
  22. 06 Feb, 2018 1 commit