From 52094b191bd414b0e345f8db1c9993a8c7ccc11e Mon Sep 17 00:00:00 2001 From: acruikshank Date: Thu, 25 Mar 2021 15:58:28 -0400 Subject: [PATCH 1/8] go-path integrated --- core/coreapi/path.go | 3 ++- core/corehttp/gateway_test.go | 2 +- fuse/readonly/readonly_unix.go | 42 ++++++++++++++++++++++++++-------- go.mod | 5 ++-- go.sum | 20 ++++++++++++++-- 5 files changed, 56 insertions(+), 16 deletions(-) diff --git a/core/coreapi/path.go b/core/coreapi/path.go index 314d1b5fd55..625fb21e6fb 100644 --- a/core/coreapi/path.go +++ b/core/coreapi/path.go @@ -8,6 +8,7 @@ import ( "github.com/ipfs/go-ipfs/namesys/resolve" "github.com/ipfs/go-cid" + "github.com/ipfs/go-fetcher" ipld "github.com/ipfs/go-ipld-format" ipfspath "github.com/ipfs/go-path" "github.com/ipfs/go-path/resolver" @@ -61,7 +62,7 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p path.Path) (path.Resolved } r := &resolver.Resolver{ - DAG: api.dag, + FetchConfig: fetcher.NewFetcherConfig(api.blocks), ResolveOnce: resolveOnce, } diff --git a/core/corehttp/gateway_test.go b/core/corehttp/gateway_test.go index a05e456ab6c..c394dc2363b 100644 --- a/core/corehttp/gateway_test.go +++ b/core/corehttp/gateway_test.go @@ -249,7 +249,7 @@ func TestGatewayGet(t *testing.T) { {"working.example.com", "/", http.StatusOK, "fnord"}, {"double.example.com", "/", http.StatusOK, "fnord"}, {"triple.example.com", "/", http.StatusOK, "fnord"}, - {"working.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/working.example.com" + k.String() + ": no link named \"ipfs\" under " + k.Cid().String() + "\n"}, + {"working.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/working.example.com" + k.String() + ": no such field: {typeinfomissing}." + k.Cid().String() + "\n"}, {"broken.example.com", "/", http.StatusNotFound, "ipfs resolve -r /ipns/broken.example.com/: " + namesys.ErrResolveFailed.Error() + "\n"}, {"broken.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/broken.example.com" + k.String() + ": " + namesys.ErrResolveFailed.Error() + "\n"}, // This test case ensures we don't treat the TLD as a file extension. diff --git a/fuse/readonly/readonly_unix.go b/fuse/readonly/readonly_unix.go index 866cdca1a08..931be200996 100644 --- a/fuse/readonly/readonly_unix.go +++ b/fuse/readonly/readonly_unix.go @@ -6,20 +6,21 @@ package readonly import ( "context" "fmt" + "github.com/ipfs/go-cid" "io" "os" "syscall" + fuse "bazil.org/fuse" + fs "bazil.org/fuse/fs" core "github.com/ipfs/go-ipfs/core" + ipld "github.com/ipfs/go-ipld-format" + logging "github.com/ipfs/go-log" mdag "github.com/ipfs/go-merkledag" path "github.com/ipfs/go-path" ft "github.com/ipfs/go-unixfs" uio "github.com/ipfs/go-unixfs/io" - - fuse "bazil.org/fuse" - fs "bazil.org/fuse/fs" - ipld "github.com/ipfs/go-ipld-format" - logging "github.com/ipfs/go-log" + cidlink "github.com/ipld/go-ipld-prime/linking/cid" ) var log = logging.Logger("fuse/ipfs") @@ -65,20 +66,41 @@ func (s *Root) Lookup(ctx context.Context, name string) (fs.Node, error) { return nil, fuse.ENOENT } - nd, err := s.Ipfs.Resolver.ResolvePath(ctx, p) + nd, ndLnk, err := s.Ipfs.Resolver.ResolvePath(ctx, p) if err != nil { // todo: make this error more versatile. return nil, fuse.ENOENT } - switch nd := nd.(type) { - case *mdag.ProtoNode, *mdag.RawNode: - return &Node{Ipfs: s.Ipfs, Nd: nd}, nil + cidLnk, ok := ndLnk.(cidlink.Link) + if !ok { + log.Debugf("non-cidlink returned from ResolvePath: %v", ndLnk) + return nil, fuse.ENOENT + } + + // convert ipld-prime node to universal node + blk, err := s.Ipfs.Blockstore.Get(cidLnk.Cid) + if err != nil { + log.Debugf("fuse failed to retrieve block: %v: %s", cidLnk, err) + return nil, fuse.ENOENT + } + + var fnd ipld.Node + switch cidLnk.Cid.Prefix().Codec { + case cid.DagProtobuf: + fnd, err = mdag.ProtoNodeConverter(blk, nd) + case cid.Raw: + fnd, err = mdag.RawNodeConverter(blk, nd) default: log.Error("fuse node was not a protobuf node") - return nil, fuse.ENOTSUP + return nil, fuse.ENOENT + } + if err != nil { + log.Error("could not convert protobuf node") + return nil, fuse.ENOENT } + return &Node{Ipfs: s.Ipfs, Nd: fnd}, nil } // ReadDirAll reads a particular directory. Disallowed for root. diff --git a/go.mod b/go.mod index 4a22ecec02d..367a4a0653c 100644 --- a/go.mod +++ b/go.mod @@ -26,6 +26,7 @@ require ( github.com/ipfs/go-ds-flatfs v0.4.5 github.com/ipfs/go-ds-leveldb v0.4.2 github.com/ipfs/go-ds-measure v0.1.0 + github.com/ipfs/go-fetcher v1.1.0 github.com/ipfs/go-filestore v0.0.3 github.com/ipfs/go-fs-lock v0.0.6 github.com/ipfs/go-graphsync v0.8.0 @@ -51,11 +52,11 @@ require ( github.com/ipfs/go-metrics-interface v0.0.1 github.com/ipfs/go-metrics-prometheus v0.0.2 github.com/ipfs/go-mfs v0.1.2 - github.com/ipfs/go-path v0.0.9 + github.com/ipfs/go-path v0.0.10-0.20210325174225-7e4e7c9b6e0b github.com/ipfs/go-pinning-service-http-client v0.1.0 github.com/ipfs/go-unixfs v0.2.4 github.com/ipfs/go-verifcid v0.0.1 - github.com/ipfs/interface-go-ipfs-core v0.4.0 + github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 // indirect github.com/jbenet/go-is-domain v1.0.5 diff --git a/go.sum b/go.sum index 638ca4178db..491fca017b7 100644 --- a/go.sum +++ b/go.sum @@ -387,6 +387,8 @@ github.com/ipfs/go-ds-leveldb v0.4.2 h1:QmQoAJ9WkPMUfBLnu1sBVy0xWWlJPg0m4kRAiJL9 github.com/ipfs/go-ds-leveldb v0.4.2/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= github.com/ipfs/go-ds-measure v0.1.0 h1:vE4TyY4aeLeVgnnPBC5QzKIjKrqzha0NCujTfgvVbVQ= github.com/ipfs/go-ds-measure v0.1.0/go.mod h1:1nDiFrhLlwArTME1Ees2XaBOl49OoCgd2A3f8EchMSY= +github.com/ipfs/go-fetcher v1.1.0 h1:2tWDIPMLNkPCoW3VdFVaM9ZhvESoLYWOTyhyJI0hhwg= +github.com/ipfs/go-fetcher v1.1.0/go.mod h1:RHp10iwAdiJCsxqNvz6JMv1S7tajHSpC36oR6mJuF5M= github.com/ipfs/go-filestore v0.0.3 h1:MhZ1jT5K3NewZwim6rS/akcJLm1xM+r6nz6foeB9EwE= github.com/ipfs/go-filestore v0.0.3/go.mod h1:dvXRykFzyyXN2CdNlRGzDAkXMDPyI+D7JE066SiKLSE= github.com/ipfs/go-fs-lock v0.0.6 h1:sn3TWwNVQqSeNjlWy6zQ1uUGAZrV3hPOyEA6y1/N2a0= @@ -468,6 +470,8 @@ github.com/ipfs/go-merkledag v0.3.0/go.mod h1:4pymaZLhSLNVuiCITYrpViD6vmfZ/Ws4n/ github.com/ipfs/go-merkledag v0.3.1/go.mod h1:fvkZNNZixVW6cKSZ/JfLlON5OlgTXNdRLz0p6QG/I2M= github.com/ipfs/go-merkledag v0.3.2/go.mod h1:fvkZNNZixVW6cKSZ/JfLlON5OlgTXNdRLz0p6QG/I2M= github.com/ipfs/go-merkledag v0.3.3-0.20210325015807-e952d22343f9 h1:41IbVcXe8PBkES0UJ7PmQ3T8I6Ng4J4ZPeLTb0oc57U= +github.com/ipfs/go-merkledag v0.3.3-0.20210325015807-e952d22343f9 h1:41IbVcXe8PBkES0UJ7PmQ3T8I6Ng4J4ZPeLTb0oc57U= +github.com/ipfs/go-merkledag v0.3.3-0.20210325015807-e952d22343f9/go.mod h1:UdCx7TlY/FArG6dTgcRkq22ZTz6jrbsiZ8bmaZ5ZW50= github.com/ipfs/go-merkledag v0.3.3-0.20210325015807-e952d22343f9/go.mod h1:UdCx7TlY/FArG6dTgcRkq22ZTz6jrbsiZ8bmaZ5ZW50= github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= @@ -476,8 +480,10 @@ github.com/ipfs/go-metrics-prometheus v0.0.2/go.mod h1:ELLU99AQQNi+zX6GCGm2lAgnz github.com/ipfs/go-mfs v0.1.2 h1:DlelNSmH+yz/Riy0RjPKlooPg0KML4lXGdLw7uZkfAg= github.com/ipfs/go-mfs v0.1.2/go.mod h1:T1QBiZPEpkPLzDqEJLNnbK55BVKVlNi2a+gVm4diFo0= github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno= -github.com/ipfs/go-path v0.0.9 h1:BIi831cNED8YnIlIKo9y1SI3u+E+FwQQD+rIIw8PwFA= -github.com/ipfs/go-path v0.0.9/go.mod h1:VpDkSBKQ9EFQOUgi54Tq/O/tGi8n1RfYNks13M3DEs8= +github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256 h1:0Tyb3Na34eTu5GpHDFit6f4296U7qRoG/0j1/XQYHmY= +github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= +github.com/ipfs/go-path v0.0.10-0.20210325174225-7e4e7c9b6e0b h1:19jAyzEhmuO5db4mcvYQSTxwfI77f9QWUBeEuQr0mxI= +github.com/ipfs/go-path v0.0.10-0.20210325174225-7e4e7c9b6e0b/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= github.com/ipfs/go-peertaskqueue v0.0.4/go.mod h1:03H8fhyeMfKNFWqzYEVyMbcPUeYrqP1MX6Kd+aN+rMQ= github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= github.com/ipfs/go-peertaskqueue v0.1.1/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= @@ -488,10 +494,14 @@ github.com/ipfs/go-pinning-service-http-client v0.1.0/go.mod h1:tcCKmlkWWH9JUUkK github.com/ipfs/go-unixfs v0.1.0/go.mod h1:lysk5ELhOso8+Fed9U1QTGey2ocsfaZ18h0NCO2Fj9s= github.com/ipfs/go-unixfs v0.2.4 h1:6NwppOXefWIyysZ4LR/qUBPvXd5//8J3jiMdvpbw6Lo= github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw= +github.com/ipfs/go-unixfsnode v1.0.0 h1:H9ZFhw3Zl0w0m4RbGdRsJc3I1DXUkiJCDjkVqZSmj3c= +github.com/ipfs/go-unixfsnode v1.0.0/go.mod h1:xmhbd5wPvHYzJAGVJFJ4Oi+U5NGEiax0TatZLOq2imk= github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= github.com/ipfs/interface-go-ipfs-core v0.4.0 h1:+mUiamyHIwedqP8ZgbCIwpy40oX7QcXUbo4CZOeJVJg= github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o= +github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e h1:8Mx4FzoMshYzz/9CtnmQLmLsQ9WQRGuPEeecwz2RvYs= +github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f h1:417+6v+keLsNoVi2vPJamDsW/ewuAs2uE3hlFt5muGs= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f/go.mod h1:kHunAcD305JwLqwI9MfKvuQu4ljwWRZQWfDWPrkkhcg= github.com/ipld/go-codec-dagpb v1.0.2-0.20210308154810-d05d02fa186e/go.mod h1:oYexiw3WkBIVD5UTNkVuOd0iyEcLxqytAQa90F3nH9M= @@ -500,9 +510,13 @@ github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 h1:m/ZZEoOds github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2/go.mod h1:GMLfso6KSkYJlIbd2cGKdGMe/hM5/IukeXRQ+u6zTrQ= github.com/ipld/go-ipld-prime v0.7.1-0.20210225173718-8fef5312eb12/go.mod h1:0xEgdD6MKbZ1vF0GC+YcR/C4SQCAlRuOjIJ2i0HxqzM= github.com/ipld/go-ipld-prime v0.7.1-0.20210312004928-8a500e6b8a62/go.mod h1:ZwznT3awHhuBoB0SgGxSo8SZEg6XbQtsZ6WahL9r9z0= +github.com/ipld/go-ipld-prime v0.9.0 h1:N2OjJMb+fhyFPwPnVvJcWU/NsumP8etal+d2v3G4eww= github.com/ipld/go-ipld-prime v0.9.0/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= +github.com/ipld/go-ipld-prime v0.9.0/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= +github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db h1:kFwGn8rXa/Z31ev1OFNQsYeNKNCdifnTPl/NvPy5L38= github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db h1:kFwGn8rXa/Z31ev1OFNQsYeNKNCdifnTPl/NvPy5L38= github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= +github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= @@ -1407,6 +1421,8 @@ golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201223074533-0d417f636930/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210309074719-68d13333faf2 h1:46ULzRKLh1CwgRq2dC5SlBzEqqNCi8rreOZnNrbqcIY= +golang.org/x/sys v0.0.0-20210309074719-68d13333faf2 h1:46ULzRKLh1CwgRq2dC5SlBzEqqNCi8rreOZnNrbqcIY= +golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= From e11af3af3c7eee85b9a2829095e4d7815f593e1b Mon Sep 17 00:00:00 2001 From: acruikshank Date: Thu, 25 Mar 2021 21:27:25 -0400 Subject: [PATCH 2/8] use basic resolver in gateway (provides unixfs adl) --- core/coreapi/path.go | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/core/coreapi/path.go b/core/coreapi/path.go index 625fb21e6fb..285c4b0c7dd 100644 --- a/core/coreapi/path.go +++ b/core/coreapi/path.go @@ -8,11 +8,9 @@ import ( "github.com/ipfs/go-ipfs/namesys/resolve" "github.com/ipfs/go-cid" - "github.com/ipfs/go-fetcher" ipld "github.com/ipfs/go-ipld-format" ipfspath "github.com/ipfs/go-path" "github.com/ipfs/go-path/resolver" - uio "github.com/ipfs/go-unixfs/io" coreiface "github.com/ipfs/interface-go-ipfs-core" path "github.com/ipfs/interface-go-ipfs-core/path" ) @@ -50,21 +48,11 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p path.Path) (path.Resolved return nil, err } - var resolveOnce resolver.ResolveOnce - - switch ipath.Segments()[0] { - case "ipfs": - resolveOnce = uio.ResolveUnixfsOnce - case "ipld": - resolveOnce = resolver.ResolveSingle - default: + if ipath.Segments()[0] != "ipfs" && ipath.Segments()[0] != "ipld" { return nil, fmt.Errorf("unsupported path namespace: %s", p.Namespace()) } - r := &resolver.Resolver{ - FetchConfig: fetcher.NewFetcherConfig(api.blocks), - ResolveOnce: resolveOnce, - } + r := resolver.NewBasicResolver(api.blocks) node, rest, err := r.ResolveToLastNode(ctx, ipath) if err != nil { From f5bfb04abcf6e4f05cf12abd217656f8d6d67634 Mon Sep 17 00:00:00 2001 From: acruikshank Date: Thu, 25 Mar 2021 22:30:51 -0400 Subject: [PATCH 3/8] resolve issues with error types from resolver --- core/corehttp/gateway_test.go | 2 +- go.mod | 5 ++--- go.sum | 8 ++++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/core/corehttp/gateway_test.go b/core/corehttp/gateway_test.go index c394dc2363b..a05e456ab6c 100644 --- a/core/corehttp/gateway_test.go +++ b/core/corehttp/gateway_test.go @@ -249,7 +249,7 @@ func TestGatewayGet(t *testing.T) { {"working.example.com", "/", http.StatusOK, "fnord"}, {"double.example.com", "/", http.StatusOK, "fnord"}, {"triple.example.com", "/", http.StatusOK, "fnord"}, - {"working.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/working.example.com" + k.String() + ": no such field: {typeinfomissing}." + k.Cid().String() + "\n"}, + {"working.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/working.example.com" + k.String() + ": no link named \"ipfs\" under " + k.Cid().String() + "\n"}, {"broken.example.com", "/", http.StatusNotFound, "ipfs resolve -r /ipns/broken.example.com/: " + namesys.ErrResolveFailed.Error() + "\n"}, {"broken.example.com", k.String(), http.StatusNotFound, "ipfs resolve -r /ipns/broken.example.com" + k.String() + ": " + namesys.ErrResolveFailed.Error() + "\n"}, // This test case ensures we don't treat the TLD as a file extension. diff --git a/go.mod b/go.mod index 367a4a0653c..e13b2526bf6 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,6 @@ require ( github.com/ipfs/go-ds-flatfs v0.4.5 github.com/ipfs/go-ds-leveldb v0.4.2 github.com/ipfs/go-ds-measure v0.1.0 - github.com/ipfs/go-fetcher v1.1.0 github.com/ipfs/go-filestore v0.0.3 github.com/ipfs/go-fs-lock v0.0.6 github.com/ipfs/go-graphsync v0.8.0 @@ -52,11 +51,11 @@ require ( github.com/ipfs/go-metrics-interface v0.0.1 github.com/ipfs/go-metrics-prometheus v0.0.2 github.com/ipfs/go-mfs v0.1.2 - github.com/ipfs/go-path v0.0.10-0.20210325174225-7e4e7c9b6e0b + github.com/ipfs/go-path v0.0.10-0.20210326021800-49379d1308f1 github.com/ipfs/go-pinning-service-http-client v0.1.0 github.com/ipfs/go-unixfs v0.2.4 github.com/ipfs/go-verifcid v0.0.1 - github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e + github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 // indirect github.com/jbenet/go-is-domain v1.0.5 diff --git a/go.sum b/go.sum index 491fca017b7..aefffd1c622 100644 --- a/go.sum +++ b/go.sum @@ -482,8 +482,8 @@ github.com/ipfs/go-mfs v0.1.2/go.mod h1:T1QBiZPEpkPLzDqEJLNnbK55BVKVlNi2a+gVm4di github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256 h1:0Tyb3Na34eTu5GpHDFit6f4296U7qRoG/0j1/XQYHmY= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= -github.com/ipfs/go-path v0.0.10-0.20210325174225-7e4e7c9b6e0b h1:19jAyzEhmuO5db4mcvYQSTxwfI77f9QWUBeEuQr0mxI= -github.com/ipfs/go-path v0.0.10-0.20210325174225-7e4e7c9b6e0b/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= +github.com/ipfs/go-path v0.0.10-0.20210326021800-49379d1308f1 h1:uu+WWErMYhHEX+GRpdACD+I8YpBo9MQcBX8DGZm0M7c= +github.com/ipfs/go-path v0.0.10-0.20210326021800-49379d1308f1/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= github.com/ipfs/go-peertaskqueue v0.0.4/go.mod h1:03H8fhyeMfKNFWqzYEVyMbcPUeYrqP1MX6Kd+aN+rMQ= github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= github.com/ipfs/go-peertaskqueue v0.1.1/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= @@ -502,6 +502,8 @@ github.com/ipfs/interface-go-ipfs-core v0.4.0 h1:+mUiamyHIwedqP8ZgbCIwpy40oX7QcX github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e h1:8Mx4FzoMshYzz/9CtnmQLmLsQ9WQRGuPEeecwz2RvYs= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= +github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 h1:NKvFg6nPuEhMMyoOUswEReIr3PWBNSgwNT6mDPLAcTo= +github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f h1:417+6v+keLsNoVi2vPJamDsW/ewuAs2uE3hlFt5muGs= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f/go.mod h1:kHunAcD305JwLqwI9MfKvuQu4ljwWRZQWfDWPrkkhcg= github.com/ipld/go-codec-dagpb v1.0.2-0.20210308154810-d05d02fa186e/go.mod h1:oYexiw3WkBIVD5UTNkVuOd0iyEcLxqytAQa90F3nH9M= @@ -524,6 +526,8 @@ github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+ github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= github.com/jbenet/go-cienv v0.1.0 h1:Vc/s0QbQtoxX8MwwSLWWh+xNNZvM3Lw7NsTcHrvvhMc= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= +github.com/jbenet/go-fuse-version v0.0.0-20160322195114-6d4c97bcf253 h1:+AUuGGAh/2X3wcomiZvjeTcx5OvGXsfdnIqk3KPM+HE= +github.com/jbenet/go-fuse-version v0.0.0-20160322195114-6d4c97bcf253/go.mod h1:gWtF+3u3zVe5/+I44niTEcU/KmVo2oMyLh0WhxpBT28= github.com/jbenet/go-is-domain v1.0.5 h1:r92uiHbMEJo9Fkey5pMBtZAzjPQWic0ieo7Jw1jEuQQ= github.com/jbenet/go-is-domain v1.0.5/go.mod h1:xbRLRb0S7FgzDBTJlguhDVwLYM/5yNtvktxj2Ttfy7Q= github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c h1:uUx61FiAa1GI6ZmVd2wf2vULeQZIKG66eybjNXKYCz4= From 3f7626b240cda64f6bd32c23d3847e5df13f0530 Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Thu, 1 Apr 2021 15:59:13 -0700 Subject: [PATCH 4/8] feat(path): update to latest go-path License: MIT Signed-off-by: hannahhoward --- core/coreapi/path.go | 3 ++- go.mod | 3 ++- go.sum | 12 ++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/coreapi/path.go b/core/coreapi/path.go index 285c4b0c7dd..2589c8c827b 100644 --- a/core/coreapi/path.go +++ b/core/coreapi/path.go @@ -6,6 +6,7 @@ import ( gopath "path" "github.com/ipfs/go-ipfs/namesys/resolve" + "github.com/ipfs/go-unixfsnode" "github.com/ipfs/go-cid" ipld "github.com/ipfs/go-ipld-format" @@ -53,7 +54,7 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p path.Path) (path.Resolved } r := resolver.NewBasicResolver(api.blocks) - + r.FetchConfig.AugmentChooser = unixfsnode.AugmentPrototypeChooser node, rest, err := r.ResolveToLastNode(ctx, ipath) if err != nil { return nil, err diff --git a/go.mod b/go.mod index e13b2526bf6..f0441dee5a3 100644 --- a/go.mod +++ b/go.mod @@ -51,9 +51,10 @@ require ( github.com/ipfs/go-metrics-interface v0.0.1 github.com/ipfs/go-metrics-prometheus v0.0.2 github.com/ipfs/go-mfs v0.1.2 - github.com/ipfs/go-path v0.0.10-0.20210326021800-49379d1308f1 + github.com/ipfs/go-path v0.0.10-0.20210401223214-86efdc232ec7 github.com/ipfs/go-pinning-service-http-client v0.1.0 github.com/ipfs/go-unixfs v0.2.4 + github.com/ipfs/go-unixfsnode v1.0.1-0.20210401222528-d6733f6db694 github.com/ipfs/go-verifcid v0.0.1 github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f diff --git a/go.sum b/go.sum index aefffd1c622..135c1a6dfec 100644 --- a/go.sum +++ b/go.sum @@ -389,6 +389,8 @@ github.com/ipfs/go-ds-measure v0.1.0 h1:vE4TyY4aeLeVgnnPBC5QzKIjKrqzha0NCujTfgvV github.com/ipfs/go-ds-measure v0.1.0/go.mod h1:1nDiFrhLlwArTME1Ees2XaBOl49OoCgd2A3f8EchMSY= github.com/ipfs/go-fetcher v1.1.0 h1:2tWDIPMLNkPCoW3VdFVaM9ZhvESoLYWOTyhyJI0hhwg= github.com/ipfs/go-fetcher v1.1.0/go.mod h1:RHp10iwAdiJCsxqNvz6JMv1S7tajHSpC36oR6mJuF5M= +github.com/ipfs/go-fetcher v1.1.1-0.20210401195604-7fc88c4425ce h1:dlB/leMuAn58ldg3AVm8O4rrYXlv4bbfKS48c6DNT2c= +github.com/ipfs/go-fetcher v1.1.1-0.20210401195604-7fc88c4425ce/go.mod h1:EHp+Y6VNV6b0FcFDb0srjsYl3yfXXmd4Qpv1IdqfxuA= github.com/ipfs/go-filestore v0.0.3 h1:MhZ1jT5K3NewZwim6rS/akcJLm1xM+r6nz6foeB9EwE= github.com/ipfs/go-filestore v0.0.3/go.mod h1:dvXRykFzyyXN2CdNlRGzDAkXMDPyI+D7JE066SiKLSE= github.com/ipfs/go-fs-lock v0.0.6 h1:sn3TWwNVQqSeNjlWy6zQ1uUGAZrV3hPOyEA6y1/N2a0= @@ -482,8 +484,8 @@ github.com/ipfs/go-mfs v0.1.2/go.mod h1:T1QBiZPEpkPLzDqEJLNnbK55BVKVlNi2a+gVm4di github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256 h1:0Tyb3Na34eTu5GpHDFit6f4296U7qRoG/0j1/XQYHmY= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= -github.com/ipfs/go-path v0.0.10-0.20210326021800-49379d1308f1 h1:uu+WWErMYhHEX+GRpdACD+I8YpBo9MQcBX8DGZm0M7c= -github.com/ipfs/go-path v0.0.10-0.20210326021800-49379d1308f1/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= +github.com/ipfs/go-path v0.0.10-0.20210401223214-86efdc232ec7 h1:Mb02oI5kqKgVDBw+DF+lnbpr8dYHYKbITGXVyKTIzKk= +github.com/ipfs/go-path v0.0.10-0.20210401223214-86efdc232ec7/go.mod h1:eBWgCu9IZTwTzL4wUJ1xzOmCexBu6OZpV0wtt2bYxM0= github.com/ipfs/go-peertaskqueue v0.0.4/go.mod h1:03H8fhyeMfKNFWqzYEVyMbcPUeYrqP1MX6Kd+aN+rMQ= github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= github.com/ipfs/go-peertaskqueue v0.1.1/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= @@ -496,12 +498,12 @@ github.com/ipfs/go-unixfs v0.2.4 h1:6NwppOXefWIyysZ4LR/qUBPvXd5//8J3jiMdvpbw6Lo= github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw= github.com/ipfs/go-unixfsnode v1.0.0 h1:H9ZFhw3Zl0w0m4RbGdRsJc3I1DXUkiJCDjkVqZSmj3c= github.com/ipfs/go-unixfsnode v1.0.0/go.mod h1:xmhbd5wPvHYzJAGVJFJ4Oi+U5NGEiax0TatZLOq2imk= +github.com/ipfs/go-unixfsnode v1.0.1-0.20210401222528-d6733f6db694 h1:qn5A0z63FriedL3bhPbbwMoGNsLEnbHf2u3lOudlcRk= +github.com/ipfs/go-unixfsnode v1.0.1-0.20210401222528-d6733f6db694/go.mod h1:DpQU2vcnLWzZIN1PkyGkcBg4GRw5lztfMl1D9m8Tofs= github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= github.com/ipfs/interface-go-ipfs-core v0.4.0 h1:+mUiamyHIwedqP8ZgbCIwpy40oX7QcXUbo4CZOeJVJg= github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o= -github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e h1:8Mx4FzoMshYzz/9CtnmQLmLsQ9WQRGuPEeecwz2RvYs= -github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210324205557-4ec7cff08e9e/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 h1:NKvFg6nPuEhMMyoOUswEReIr3PWBNSgwNT6mDPLAcTo= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f h1:417+6v+keLsNoVi2vPJamDsW/ewuAs2uE3hlFt5muGs= @@ -526,8 +528,6 @@ github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+ github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= github.com/jbenet/go-cienv v0.1.0 h1:Vc/s0QbQtoxX8MwwSLWWh+xNNZvM3Lw7NsTcHrvvhMc= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= -github.com/jbenet/go-fuse-version v0.0.0-20160322195114-6d4c97bcf253 h1:+AUuGGAh/2X3wcomiZvjeTcx5OvGXsfdnIqk3KPM+HE= -github.com/jbenet/go-fuse-version v0.0.0-20160322195114-6d4c97bcf253/go.mod h1:gWtF+3u3zVe5/+I44niTEcU/KmVo2oMyLh0WhxpBT28= github.com/jbenet/go-is-domain v1.0.5 h1:r92uiHbMEJo9Fkey5pMBtZAzjPQWic0ieo7Jw1jEuQQ= github.com/jbenet/go-is-domain v1.0.5/go.mod h1:xbRLRb0S7FgzDBTJlguhDVwLYM/5yNtvktxj2Ttfy7Q= github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c h1:uUx61FiAa1GI6ZmVd2wf2vULeQZIKG66eybjNXKYCz4= From a56fbf33fface0ca396d6314dc4d75ee32002d25 Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Mon, 5 Apr 2021 12:13:57 -0700 Subject: [PATCH 5/8] fix(deps): update to latest go-path License: MIT Signed-off-by: hannahhoward --- core/coreapi/path.go | 2 +- core/node/core.go | 17 +++++++++++++---- core/node/groups.go | 3 +-- go.mod | 5 +++-- go.sum | 19 +++++++++++++++---- 5 files changed, 33 insertions(+), 13 deletions(-) diff --git a/core/coreapi/path.go b/core/coreapi/path.go index 2589c8c827b..1a25d1259a3 100644 --- a/core/coreapi/path.go +++ b/core/coreapi/path.go @@ -54,7 +54,7 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p path.Path) (path.Resolved } r := resolver.NewBasicResolver(api.blocks) - r.FetchConfig.AugmentChooser = unixfsnode.AugmentPrototypeChooser + r.FetchConfig.NodeReifier = unixfsnode.Reify node, rest, err := r.ResolveToLastNode(ctx, ipath) if err != nil { return nil, err diff --git a/core/node/core.go b/core/node/core.go index cb757d81968..8ea1ae68e56 100644 --- a/core/node/core.go +++ b/core/node/core.go @@ -11,14 +11,16 @@ import ( "github.com/ipfs/go-cid" "github.com/ipfs/go-datastore" "github.com/ipfs/go-filestore" - "github.com/ipfs/go-ipfs-blockstore" - "github.com/ipfs/go-ipfs-exchange-interface" - "github.com/ipfs/go-ipfs-pinner" + blockstore "github.com/ipfs/go-ipfs-blockstore" + exchange "github.com/ipfs/go-ipfs-exchange-interface" + pin "github.com/ipfs/go-ipfs-pinner" "github.com/ipfs/go-ipfs-pinner/dspinner" - "github.com/ipfs/go-ipld-format" + format "github.com/ipfs/go-ipld-format" "github.com/ipfs/go-merkledag" "github.com/ipfs/go-mfs" + "github.com/ipfs/go-path/resolver" "github.com/ipfs/go-unixfs" + "github.com/ipfs/go-unixfsnode" "github.com/libp2p/go-libp2p-core/host" "github.com/libp2p/go-libp2p-core/routing" "go.uber.org/fx" @@ -82,6 +84,13 @@ func (s *syncDagService) Session(ctx context.Context) format.NodeGetter { return merkledag.NewSession(ctx, s.DAGService) } +// Resolver returns a resolver that's configured to look up unixfs paths +func Resolver(bs blockservice.BlockService) *resolver.Resolver { + rs := resolver.NewBasicResolver(bs) + rs.FetchConfig.NodeReifier = unixfsnode.Reify + return rs +} + // Dag creates new DAGService func Dag(bs blockservice.BlockService) format.DAGService { return merkledag.NewDAGService(bs) diff --git a/core/node/groups.go b/core/node/groups.go index 90245ba0517..10f85ffa53b 100644 --- a/core/node/groups.go +++ b/core/node/groups.go @@ -18,7 +18,6 @@ import ( offline "github.com/ipfs/go-ipfs-exchange-offline" offroute "github.com/ipfs/go-ipfs-routing/offline" - "github.com/ipfs/go-path/resolver" uio "github.com/ipfs/go-unixfs/io" "go.uber.org/fx" ) @@ -291,7 +290,7 @@ func Offline(cfg *config.Config) fx.Option { var Core = fx.Options( fx.Provide(BlockService), fx.Provide(Dag), - fx.Provide(resolver.NewBasicResolver), + fx.Provide(Resolver), fx.Provide(Pinning), fx.Provide(Files), ) diff --git a/go.mod b/go.mod index f0441dee5a3..293375cfd19 100644 --- a/go.mod +++ b/go.mod @@ -51,14 +51,15 @@ require ( github.com/ipfs/go-metrics-interface v0.0.1 github.com/ipfs/go-metrics-prometheus v0.0.2 github.com/ipfs/go-mfs v0.1.2 - github.com/ipfs/go-path v0.0.10-0.20210401223214-86efdc232ec7 + github.com/ipfs/go-path v0.0.10-0.20210405185612-bc2ed47be17e github.com/ipfs/go-pinning-service-http-client v0.1.0 github.com/ipfs/go-unixfs v0.2.4 - github.com/ipfs/go-unixfsnode v1.0.1-0.20210401222528-d6733f6db694 + github.com/ipfs/go-unixfsnode v1.1.0 github.com/ipfs/go-verifcid v0.0.1 github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 // indirect + github.com/ipld/go-ipld-prime v0.9.1-0.20210402181957-7406578571d1 github.com/jbenet/go-is-domain v1.0.5 github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c github.com/jbenet/go-temp-err-catcher v0.1.0 diff --git a/go.sum b/go.sum index 135c1a6dfec..c49db6df1ad 100644 --- a/go.sum +++ b/go.sum @@ -358,6 +358,7 @@ github.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY= github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= github.com/ipfs/go-cidutil v0.0.2 h1:CNOboQf1t7Qp0nuNh8QMmhJs0+Q//bRL1axtCnIB1Yo= github.com/ipfs/go-cidutil v0.0.2/go.mod h1:ewllrvrxG6AMYStla3GD7Cqn+XYSLqjK0vc+086tB6s= +github.com/ipfs/go-dagwriter v0.0.0-20210330014411-6fb9a511eaff/go.mod h1:rytn1TKuQ3zg9oMJxoVsSUt7BXonIRWxChvDR6LkG98= github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-datastore v0.0.5/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= @@ -389,8 +390,9 @@ github.com/ipfs/go-ds-measure v0.1.0 h1:vE4TyY4aeLeVgnnPBC5QzKIjKrqzha0NCujTfgvV github.com/ipfs/go-ds-measure v0.1.0/go.mod h1:1nDiFrhLlwArTME1Ees2XaBOl49OoCgd2A3f8EchMSY= github.com/ipfs/go-fetcher v1.1.0 h1:2tWDIPMLNkPCoW3VdFVaM9ZhvESoLYWOTyhyJI0hhwg= github.com/ipfs/go-fetcher v1.1.0/go.mod h1:RHp10iwAdiJCsxqNvz6JMv1S7tajHSpC36oR6mJuF5M= -github.com/ipfs/go-fetcher v1.1.1-0.20210401195604-7fc88c4425ce h1:dlB/leMuAn58ldg3AVm8O4rrYXlv4bbfKS48c6DNT2c= github.com/ipfs/go-fetcher v1.1.1-0.20210401195604-7fc88c4425ce/go.mod h1:EHp+Y6VNV6b0FcFDb0srjsYl3yfXXmd4Qpv1IdqfxuA= +github.com/ipfs/go-fetcher v1.2.0 h1:2eRF8JQCkCwsXn8c0VmGrl9ksCLG1Ll36WSId7Ld30Q= +github.com/ipfs/go-fetcher v1.2.0/go.mod h1:RFvn2LiuWIfyXt3ChONqIvQfsbEhBYWhwUeatYjFPIA= github.com/ipfs/go-filestore v0.0.3 h1:MhZ1jT5K3NewZwim6rS/akcJLm1xM+r6nz6foeB9EwE= github.com/ipfs/go-filestore v0.0.3/go.mod h1:dvXRykFzyyXN2CdNlRGzDAkXMDPyI+D7JE066SiKLSE= github.com/ipfs/go-fs-lock v0.0.6 h1:sn3TWwNVQqSeNjlWy6zQ1uUGAZrV3hPOyEA6y1/N2a0= @@ -484,8 +486,9 @@ github.com/ipfs/go-mfs v0.1.2/go.mod h1:T1QBiZPEpkPLzDqEJLNnbK55BVKVlNi2a+gVm4di github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256 h1:0Tyb3Na34eTu5GpHDFit6f4296U7qRoG/0j1/XQYHmY= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= -github.com/ipfs/go-path v0.0.10-0.20210401223214-86efdc232ec7 h1:Mb02oI5kqKgVDBw+DF+lnbpr8dYHYKbITGXVyKTIzKk= -github.com/ipfs/go-path v0.0.10-0.20210401223214-86efdc232ec7/go.mod h1:eBWgCu9IZTwTzL4wUJ1xzOmCexBu6OZpV0wtt2bYxM0= +github.com/ipfs/go-path v0.0.10-0.20210402180731-65ea0519792c/go.mod h1:eBWgCu9IZTwTzL4wUJ1xzOmCexBu6OZpV0wtt2bYxM0= +github.com/ipfs/go-path v0.0.10-0.20210405185612-bc2ed47be17e h1:ZZ/UqIpSOVglljGDxwJEJFe1UMsl4qYOAMqXYrbmvnE= +github.com/ipfs/go-path v0.0.10-0.20210405185612-bc2ed47be17e/go.mod h1:StkbCaRBz+urcOcgVoj/6w4wwT96uwnJjDSM7c4UJw4= github.com/ipfs/go-peertaskqueue v0.0.4/go.mod h1:03H8fhyeMfKNFWqzYEVyMbcPUeYrqP1MX6Kd+aN+rMQ= github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= github.com/ipfs/go-peertaskqueue v0.1.1/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= @@ -498,18 +501,24 @@ github.com/ipfs/go-unixfs v0.2.4 h1:6NwppOXefWIyysZ4LR/qUBPvXd5//8J3jiMdvpbw6Lo= github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw= github.com/ipfs/go-unixfsnode v1.0.0 h1:H9ZFhw3Zl0w0m4RbGdRsJc3I1DXUkiJCDjkVqZSmj3c= github.com/ipfs/go-unixfsnode v1.0.0/go.mod h1:xmhbd5wPvHYzJAGVJFJ4Oi+U5NGEiax0TatZLOq2imk= -github.com/ipfs/go-unixfsnode v1.0.1-0.20210401222528-d6733f6db694 h1:qn5A0z63FriedL3bhPbbwMoGNsLEnbHf2u3lOudlcRk= github.com/ipfs/go-unixfsnode v1.0.1-0.20210401222528-d6733f6db694/go.mod h1:DpQU2vcnLWzZIN1PkyGkcBg4GRw5lztfMl1D9m8Tofs= +github.com/ipfs/go-unixfsnode v1.0.1-0.20210402214142-de45652f269f/go.mod h1:Xk4qvd3Nb8H31OJapZrLDAE4aBNmKUCvAzypIUZ3ACQ= +github.com/ipfs/go-unixfsnode v1.1.0 h1:lAXHg+v5F8H1a5T/oJLqbYtsZfgC7HgTIDWhMTBmsOA= +github.com/ipfs/go-unixfsnode v1.1.0/go.mod h1:Xk4qvd3Nb8H31OJapZrLDAE4aBNmKUCvAzypIUZ3ACQ= github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= github.com/ipfs/interface-go-ipfs-core v0.4.0 h1:+mUiamyHIwedqP8ZgbCIwpy40oX7QcXUbo4CZOeJVJg= github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 h1:NKvFg6nPuEhMMyoOUswEReIr3PWBNSgwNT6mDPLAcTo= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= +github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210402182121-8f87b20d4be7/go.mod h1:EKq1Cw18dOHt3uYrk+zIZBSzjyRe4fGh/4gFalTrHTk= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f h1:417+6v+keLsNoVi2vPJamDsW/ewuAs2uE3hlFt5muGs= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f/go.mod h1:kHunAcD305JwLqwI9MfKvuQu4ljwWRZQWfDWPrkkhcg= github.com/ipld/go-codec-dagpb v1.0.2-0.20210308154810-d05d02fa186e/go.mod h1:oYexiw3WkBIVD5UTNkVuOd0iyEcLxqytAQa90F3nH9M= +github.com/ipld/go-codec-dagpb v1.1.0/go.mod h1:6nBN7X7h8EOsEejZGqC7tej5drsdBAXbMHyBT+Fne5s= github.com/ipld/go-codec-dagpb v1.2.0/go.mod h1:6nBN7X7h8EOsEejZGqC7tej5drsdBAXbMHyBT+Fne5s= +github.com/ipld/go-codec-dagpb v1.2.1-0.20210330082435-8ec6b0fbad18 h1:TpjpdzJdasjzZ2xw7rmoj4+u9WBkWBTKBYGcyyLXX68= +github.com/ipld/go-codec-dagpb v1.2.1-0.20210330082435-8ec6b0fbad18/go.mod h1:GMLfso6KSkYJlIbd2cGKdGMe/hM5/IukeXRQ+u6zTrQ= github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 h1:m/ZZEoOdswHrrcikTC+fX4x6tnevJs0hoyNzijlT41A= github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2/go.mod h1:GMLfso6KSkYJlIbd2cGKdGMe/hM5/IukeXRQ+u6zTrQ= github.com/ipld/go-ipld-prime v0.7.1-0.20210225173718-8fef5312eb12/go.mod h1:0xEgdD6MKbZ1vF0GC+YcR/C4SQCAlRuOjIJ2i0HxqzM= @@ -521,6 +530,8 @@ github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db h1:kFwGn8rXa/ github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db h1:kFwGn8rXa/Z31ev1OFNQsYeNKNCdifnTPl/NvPy5L38= github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= +github.com/ipld/go-ipld-prime v0.9.1-0.20210402181957-7406578571d1 h1:dIKSj9r+CCXz9t6p4TfbDx34CfSjLfasRZf37SXlNjg= +github.com/ipld/go-ipld-prime v0.9.1-0.20210402181957-7406578571d1/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= From e3211c033251864cc00772250c9a3edf8422bd71 Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Mon, 5 Apr 2021 12:32:55 -0700 Subject: [PATCH 6/8] fix(deps): fix unixfsnode imple License: MIT Signed-off-by: hannahhoward --- go.mod | 4 ++-- go.sum | 13 ++++--------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 293375cfd19..cb136e1a1e2 100644 --- a/go.mod +++ b/go.mod @@ -51,10 +51,10 @@ require ( github.com/ipfs/go-metrics-interface v0.0.1 github.com/ipfs/go-metrics-prometheus v0.0.2 github.com/ipfs/go-mfs v0.1.2 - github.com/ipfs/go-path v0.0.10-0.20210405185612-bc2ed47be17e + github.com/ipfs/go-path v0.0.10-0.20210405201800-40f1060226f7 github.com/ipfs/go-pinning-service-http-client v0.1.0 github.com/ipfs/go-unixfs v0.2.4 - github.com/ipfs/go-unixfsnode v1.1.0 + github.com/ipfs/go-unixfsnode v1.1.1 github.com/ipfs/go-verifcid v0.0.1 github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f diff --git a/go.sum b/go.sum index c49db6df1ad..9e2ecbb78ef 100644 --- a/go.sum +++ b/go.sum @@ -358,7 +358,6 @@ github.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY= github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= github.com/ipfs/go-cidutil v0.0.2 h1:CNOboQf1t7Qp0nuNh8QMmhJs0+Q//bRL1axtCnIB1Yo= github.com/ipfs/go-cidutil v0.0.2/go.mod h1:ewllrvrxG6AMYStla3GD7Cqn+XYSLqjK0vc+086tB6s= -github.com/ipfs/go-dagwriter v0.0.0-20210330014411-6fb9a511eaff/go.mod h1:rytn1TKuQ3zg9oMJxoVsSUt7BXonIRWxChvDR6LkG98= github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-datastore v0.0.5/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= @@ -390,7 +389,6 @@ github.com/ipfs/go-ds-measure v0.1.0 h1:vE4TyY4aeLeVgnnPBC5QzKIjKrqzha0NCujTfgvV github.com/ipfs/go-ds-measure v0.1.0/go.mod h1:1nDiFrhLlwArTME1Ees2XaBOl49OoCgd2A3f8EchMSY= github.com/ipfs/go-fetcher v1.1.0 h1:2tWDIPMLNkPCoW3VdFVaM9ZhvESoLYWOTyhyJI0hhwg= github.com/ipfs/go-fetcher v1.1.0/go.mod h1:RHp10iwAdiJCsxqNvz6JMv1S7tajHSpC36oR6mJuF5M= -github.com/ipfs/go-fetcher v1.1.1-0.20210401195604-7fc88c4425ce/go.mod h1:EHp+Y6VNV6b0FcFDb0srjsYl3yfXXmd4Qpv1IdqfxuA= github.com/ipfs/go-fetcher v1.2.0 h1:2eRF8JQCkCwsXn8c0VmGrl9ksCLG1Ll36WSId7Ld30Q= github.com/ipfs/go-fetcher v1.2.0/go.mod h1:RFvn2LiuWIfyXt3ChONqIvQfsbEhBYWhwUeatYjFPIA= github.com/ipfs/go-filestore v0.0.3 h1:MhZ1jT5K3NewZwim6rS/akcJLm1xM+r6nz6foeB9EwE= @@ -486,9 +484,8 @@ github.com/ipfs/go-mfs v0.1.2/go.mod h1:T1QBiZPEpkPLzDqEJLNnbK55BVKVlNi2a+gVm4di github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256 h1:0Tyb3Na34eTu5GpHDFit6f4296U7qRoG/0j1/XQYHmY= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= -github.com/ipfs/go-path v0.0.10-0.20210402180731-65ea0519792c/go.mod h1:eBWgCu9IZTwTzL4wUJ1xzOmCexBu6OZpV0wtt2bYxM0= -github.com/ipfs/go-path v0.0.10-0.20210405185612-bc2ed47be17e h1:ZZ/UqIpSOVglljGDxwJEJFe1UMsl4qYOAMqXYrbmvnE= -github.com/ipfs/go-path v0.0.10-0.20210405185612-bc2ed47be17e/go.mod h1:StkbCaRBz+urcOcgVoj/6w4wwT96uwnJjDSM7c4UJw4= +github.com/ipfs/go-path v0.0.10-0.20210405201800-40f1060226f7 h1:Sh4fY6j1NxxwbN7ux9gzKC8ve85Jhs5TwxZMJOuLXCo= +github.com/ipfs/go-path v0.0.10-0.20210405201800-40f1060226f7/go.mod h1:g8egwymo/MjfPUu/ojghk4YQKwjn6MGO+UUv4eUw08M= github.com/ipfs/go-peertaskqueue v0.0.4/go.mod h1:03H8fhyeMfKNFWqzYEVyMbcPUeYrqP1MX6Kd+aN+rMQ= github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= github.com/ipfs/go-peertaskqueue v0.1.1/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= @@ -501,17 +498,15 @@ github.com/ipfs/go-unixfs v0.2.4 h1:6NwppOXefWIyysZ4LR/qUBPvXd5//8J3jiMdvpbw6Lo= github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw= github.com/ipfs/go-unixfsnode v1.0.0 h1:H9ZFhw3Zl0w0m4RbGdRsJc3I1DXUkiJCDjkVqZSmj3c= github.com/ipfs/go-unixfsnode v1.0.0/go.mod h1:xmhbd5wPvHYzJAGVJFJ4Oi+U5NGEiax0TatZLOq2imk= -github.com/ipfs/go-unixfsnode v1.0.1-0.20210401222528-d6733f6db694/go.mod h1:DpQU2vcnLWzZIN1PkyGkcBg4GRw5lztfMl1D9m8Tofs= github.com/ipfs/go-unixfsnode v1.0.1-0.20210402214142-de45652f269f/go.mod h1:Xk4qvd3Nb8H31OJapZrLDAE4aBNmKUCvAzypIUZ3ACQ= -github.com/ipfs/go-unixfsnode v1.1.0 h1:lAXHg+v5F8H1a5T/oJLqbYtsZfgC7HgTIDWhMTBmsOA= -github.com/ipfs/go-unixfsnode v1.1.0/go.mod h1:Xk4qvd3Nb8H31OJapZrLDAE4aBNmKUCvAzypIUZ3ACQ= +github.com/ipfs/go-unixfsnode v1.1.1 h1:YjYe5nQgkloOVlyRUumVGke7ngRFRZmtbI866YkTUgM= +github.com/ipfs/go-unixfsnode v1.1.1/go.mod h1:Xk4qvd3Nb8H31OJapZrLDAE4aBNmKUCvAzypIUZ3ACQ= github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= github.com/ipfs/interface-go-ipfs-core v0.4.0 h1:+mUiamyHIwedqP8ZgbCIwpy40oX7QcXUbo4CZOeJVJg= github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 h1:NKvFg6nPuEhMMyoOUswEReIr3PWBNSgwNT6mDPLAcTo= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= -github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210402182121-8f87b20d4be7/go.mod h1:EKq1Cw18dOHt3uYrk+zIZBSzjyRe4fGh/4gFalTrHTk= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f h1:417+6v+keLsNoVi2vPJamDsW/ewuAs2uE3hlFt5muGs= github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f/go.mod h1:kHunAcD305JwLqwI9MfKvuQu4ljwWRZQWfDWPrkkhcg= github.com/ipld/go-codec-dagpb v1.0.2-0.20210308154810-d05d02fa186e/go.mod h1:oYexiw3WkBIVD5UTNkVuOd0iyEcLxqytAQa90F3nH9M= From 5077fd3e4b4aefebe3154f9570eaa2674861178a Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Tue, 20 Apr 2021 08:18:54 -0700 Subject: [PATCH 7/8] feat(node): add fetcher config top level dependency License: MIT Signed-off-by: hannahhoward --- core/coreapi/coreapi.go | 20 +++++++++++--------- core/coreapi/path.go | 6 +----- core/node/core.go | 25 +++++++++++++++++++++---- core/node/groups.go | 1 + fuse/readonly/readonly_unix.go | 2 +- go.mod | 5 +++-- go.sum | 17 ++++------------- 7 files changed, 42 insertions(+), 34 deletions(-) diff --git a/core/coreapi/coreapi.go b/core/coreapi/coreapi.go index 5b638826b45..f0e36225277 100644 --- a/core/coreapi/coreapi.go +++ b/core/coreapi/coreapi.go @@ -19,14 +19,15 @@ import ( "fmt" bserv "github.com/ipfs/go-blockservice" - "github.com/ipfs/go-ipfs-blockstore" - "github.com/ipfs/go-ipfs-exchange-interface" + blockstore "github.com/ipfs/go-ipfs-blockstore" + exchange "github.com/ipfs/go-ipfs-exchange-interface" offlinexch "github.com/ipfs/go-ipfs-exchange-offline" - "github.com/ipfs/go-ipfs-pinner" - "github.com/ipfs/go-ipfs-provider" + pin "github.com/ipfs/go-ipfs-pinner" + provider "github.com/ipfs/go-ipfs-provider" offlineroute "github.com/ipfs/go-ipfs-routing/offline" ipld "github.com/ipfs/go-ipld-format" dag "github.com/ipfs/go-merkledag" + "github.com/ipfs/go-path/resolver" coreiface "github.com/ipfs/interface-go-ipfs-core" "github.com/ipfs/interface-go-ipfs-core/options" ci "github.com/libp2p/go-libp2p-core/crypto" @@ -54,9 +55,9 @@ type CoreAPI struct { baseBlocks blockstore.Blockstore pinning pin.Pinner - blocks bserv.BlockService - dag ipld.DAGService - + blocks bserv.BlockService + dag ipld.DAGService + resolver *resolver.Resolver peerstore pstore.Peerstore peerHost p2phost.Host recordValidator record.Validator @@ -165,8 +166,9 @@ func (api *CoreAPI) WithOptions(opts ...options.ApiOption) (coreiface.CoreAPI, e baseBlocks: n.BaseBlocks, pinning: n.Pinning, - blocks: n.Blocks, - dag: n.DAG, + blocks: n.Blocks, + dag: n.DAG, + resolver: n.Resolver, peerstore: n.Peerstore, peerHost: n.PeerHost, diff --git a/core/coreapi/path.go b/core/coreapi/path.go index 1a25d1259a3..42fa017f800 100644 --- a/core/coreapi/path.go +++ b/core/coreapi/path.go @@ -6,12 +6,10 @@ import ( gopath "path" "github.com/ipfs/go-ipfs/namesys/resolve" - "github.com/ipfs/go-unixfsnode" "github.com/ipfs/go-cid" ipld "github.com/ipfs/go-ipld-format" ipfspath "github.com/ipfs/go-path" - "github.com/ipfs/go-path/resolver" coreiface "github.com/ipfs/interface-go-ipfs-core" path "github.com/ipfs/interface-go-ipfs-core/path" ) @@ -53,9 +51,7 @@ func (api *CoreAPI) ResolvePath(ctx context.Context, p path.Path) (path.Resolved return nil, fmt.Errorf("unsupported path namespace: %s", p.Namespace()) } - r := resolver.NewBasicResolver(api.blocks) - r.FetchConfig.NodeReifier = unixfsnode.Reify - node, rest, err := r.ResolveToLastNode(ctx, ipath) + node, rest, err := api.resolver.ResolveToLastNode(ctx, ipath) if err != nil { return nil, err } diff --git a/core/node/core.go b/core/node/core.go index 8ea1ae68e56..364fd5d6d9e 100644 --- a/core/node/core.go +++ b/core/node/core.go @@ -10,6 +10,8 @@ import ( "github.com/ipfs/go-blockservice" "github.com/ipfs/go-cid" "github.com/ipfs/go-datastore" + "github.com/ipfs/go-fetcher" + bsfetcher "github.com/ipfs/go-fetcher/impl/blockservice" "github.com/ipfs/go-filestore" blockstore "github.com/ipfs/go-ipfs-blockstore" exchange "github.com/ipfs/go-ipfs-exchange-interface" @@ -21,6 +23,10 @@ import ( "github.com/ipfs/go-path/resolver" "github.com/ipfs/go-unixfs" "github.com/ipfs/go-unixfsnode" + dagpb "github.com/ipld/go-codec-dagpb" + "github.com/ipld/go-ipld-prime" + basicnode "github.com/ipld/go-ipld-prime/node/basic" + "github.com/ipld/go-ipld-prime/schema" "github.com/libp2p/go-libp2p-core/host" "github.com/libp2p/go-libp2p-core/routing" "go.uber.org/fx" @@ -84,11 +90,22 @@ func (s *syncDagService) Session(ctx context.Context) format.NodeGetter { return merkledag.NewSession(ctx, s.DAGService) } +// FetcherConfig returns a fetcher config that can build new fetcher instances +func FetcherConfig(bs blockservice.BlockService) fetcher.Factory { + fc := bsfetcher.NewFetcherConfig(bs) + fc.NodeReifier = unixfsnode.Reify + fc.PrototypeChooser = dagpb.AddSupportToChooser(func(lnk ipld.Link, lnkCtx ipld.LinkContext) (ipld.NodePrototype, error) { + if tlnkNd, ok := lnkCtx.LinkNode.(schema.TypedLinkNode); ok { + return tlnkNd.LinkTargetNodePrototype(), nil + } + return basicnode.Prototype.Any, nil + }) + return fc +} + // Resolver returns a resolver that's configured to look up unixfs paths -func Resolver(bs blockservice.BlockService) *resolver.Resolver { - rs := resolver.NewBasicResolver(bs) - rs.FetchConfig.NodeReifier = unixfsnode.Reify - return rs +func Resolver(fetcherFactory fetcher.Factory) *resolver.Resolver { + return resolver.NewBasicResolver(fetcherFactory) } // Dag creates new DAGService diff --git a/core/node/groups.go b/core/node/groups.go index 10f85ffa53b..c0206ae71b8 100644 --- a/core/node/groups.go +++ b/core/node/groups.go @@ -290,6 +290,7 @@ func Offline(cfg *config.Config) fx.Option { var Core = fx.Options( fx.Provide(BlockService), fx.Provide(Dag), + fx.Provide(FetcherConfig), fx.Provide(Resolver), fx.Provide(Pinning), fx.Provide(Files), diff --git a/fuse/readonly/readonly_unix.go b/fuse/readonly/readonly_unix.go index 931be200996..59aac353a33 100644 --- a/fuse/readonly/readonly_unix.go +++ b/fuse/readonly/readonly_unix.go @@ -6,13 +6,13 @@ package readonly import ( "context" "fmt" - "github.com/ipfs/go-cid" "io" "os" "syscall" fuse "bazil.org/fuse" fs "bazil.org/fuse/fs" + "github.com/ipfs/go-cid" core "github.com/ipfs/go-ipfs/core" ipld "github.com/ipfs/go-ipld-format" logging "github.com/ipfs/go-log" diff --git a/go.mod b/go.mod index cb136e1a1e2..d489685c229 100644 --- a/go.mod +++ b/go.mod @@ -26,6 +26,7 @@ require ( github.com/ipfs/go-ds-flatfs v0.4.5 github.com/ipfs/go-ds-leveldb v0.4.2 github.com/ipfs/go-ds-measure v0.1.0 + github.com/ipfs/go-fetcher v1.2.1-0.20210419200002-6e0ef2aeedf1 github.com/ipfs/go-filestore v0.0.3 github.com/ipfs/go-fs-lock v0.0.6 github.com/ipfs/go-graphsync v0.8.0 @@ -51,14 +52,14 @@ require ( github.com/ipfs/go-metrics-interface v0.0.1 github.com/ipfs/go-metrics-prometheus v0.0.2 github.com/ipfs/go-mfs v0.1.2 - github.com/ipfs/go-path v0.0.10-0.20210405201800-40f1060226f7 + github.com/ipfs/go-path v0.0.10-0.20210419232600-2597aeef40c9 github.com/ipfs/go-pinning-service-http-client v0.1.0 github.com/ipfs/go-unixfs v0.2.4 github.com/ipfs/go-unixfsnode v1.1.1 github.com/ipfs/go-verifcid v0.0.1 github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f - github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 // indirect + github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 github.com/ipld/go-ipld-prime v0.9.1-0.20210402181957-7406578571d1 github.com/jbenet/go-is-domain v1.0.5 github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c diff --git a/go.sum b/go.sum index 9e2ecbb78ef..7b80692d8f1 100644 --- a/go.sum +++ b/go.sum @@ -387,10 +387,9 @@ github.com/ipfs/go-ds-leveldb v0.4.2 h1:QmQoAJ9WkPMUfBLnu1sBVy0xWWlJPg0m4kRAiJL9 github.com/ipfs/go-ds-leveldb v0.4.2/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= github.com/ipfs/go-ds-measure v0.1.0 h1:vE4TyY4aeLeVgnnPBC5QzKIjKrqzha0NCujTfgvVbVQ= github.com/ipfs/go-ds-measure v0.1.0/go.mod h1:1nDiFrhLlwArTME1Ees2XaBOl49OoCgd2A3f8EchMSY= -github.com/ipfs/go-fetcher v1.1.0 h1:2tWDIPMLNkPCoW3VdFVaM9ZhvESoLYWOTyhyJI0hhwg= github.com/ipfs/go-fetcher v1.1.0/go.mod h1:RHp10iwAdiJCsxqNvz6JMv1S7tajHSpC36oR6mJuF5M= -github.com/ipfs/go-fetcher v1.2.0 h1:2eRF8JQCkCwsXn8c0VmGrl9ksCLG1Ll36WSId7Ld30Q= -github.com/ipfs/go-fetcher v1.2.0/go.mod h1:RFvn2LiuWIfyXt3ChONqIvQfsbEhBYWhwUeatYjFPIA= +github.com/ipfs/go-fetcher v1.2.1-0.20210419200002-6e0ef2aeedf1 h1:Gb1N44an/HXlxGTzQ30r7ogEqpesaOhTjHltveTrWho= +github.com/ipfs/go-fetcher v1.2.1-0.20210419200002-6e0ef2aeedf1/go.mod h1:lld7kBIARmpCvhQ/Rob5oOGEKfVjil8L8y4j9jtLdqo= github.com/ipfs/go-filestore v0.0.3 h1:MhZ1jT5K3NewZwim6rS/akcJLm1xM+r6nz6foeB9EwE= github.com/ipfs/go-filestore v0.0.3/go.mod h1:dvXRykFzyyXN2CdNlRGzDAkXMDPyI+D7JE066SiKLSE= github.com/ipfs/go-fs-lock v0.0.6 h1:sn3TWwNVQqSeNjlWy6zQ1uUGAZrV3hPOyEA6y1/N2a0= @@ -482,10 +481,9 @@ github.com/ipfs/go-metrics-prometheus v0.0.2/go.mod h1:ELLU99AQQNi+zX6GCGm2lAgnz github.com/ipfs/go-mfs v0.1.2 h1:DlelNSmH+yz/Riy0RjPKlooPg0KML4lXGdLw7uZkfAg= github.com/ipfs/go-mfs v0.1.2/go.mod h1:T1QBiZPEpkPLzDqEJLNnbK55BVKVlNi2a+gVm4diFo0= github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno= -github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256 h1:0Tyb3Na34eTu5GpHDFit6f4296U7qRoG/0j1/XQYHmY= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= -github.com/ipfs/go-path v0.0.10-0.20210405201800-40f1060226f7 h1:Sh4fY6j1NxxwbN7ux9gzKC8ve85Jhs5TwxZMJOuLXCo= -github.com/ipfs/go-path v0.0.10-0.20210405201800-40f1060226f7/go.mod h1:g8egwymo/MjfPUu/ojghk4YQKwjn6MGO+UUv4eUw08M= +github.com/ipfs/go-path v0.0.10-0.20210419232600-2597aeef40c9 h1:VD9U482Q5xCoP9l4W1gLWkWDzAghjxm3p6h6uwvXpek= +github.com/ipfs/go-path v0.0.10-0.20210419232600-2597aeef40c9/go.mod h1:nTVPbzK60ajUGgbqXYPz2GosNdiZ/bY01FArgVBTX1k= github.com/ipfs/go-peertaskqueue v0.0.4/go.mod h1:03H8fhyeMfKNFWqzYEVyMbcPUeYrqP1MX6Kd+aN+rMQ= github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= github.com/ipfs/go-peertaskqueue v0.1.1/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= @@ -496,14 +494,11 @@ github.com/ipfs/go-pinning-service-http-client v0.1.0/go.mod h1:tcCKmlkWWH9JUUkK github.com/ipfs/go-unixfs v0.1.0/go.mod h1:lysk5ELhOso8+Fed9U1QTGey2ocsfaZ18h0NCO2Fj9s= github.com/ipfs/go-unixfs v0.2.4 h1:6NwppOXefWIyysZ4LR/qUBPvXd5//8J3jiMdvpbw6Lo= github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw= -github.com/ipfs/go-unixfsnode v1.0.0 h1:H9ZFhw3Zl0w0m4RbGdRsJc3I1DXUkiJCDjkVqZSmj3c= github.com/ipfs/go-unixfsnode v1.0.0/go.mod h1:xmhbd5wPvHYzJAGVJFJ4Oi+U5NGEiax0TatZLOq2imk= -github.com/ipfs/go-unixfsnode v1.0.1-0.20210402214142-de45652f269f/go.mod h1:Xk4qvd3Nb8H31OJapZrLDAE4aBNmKUCvAzypIUZ3ACQ= github.com/ipfs/go-unixfsnode v1.1.1 h1:YjYe5nQgkloOVlyRUumVGke7ngRFRZmtbI866YkTUgM= github.com/ipfs/go-unixfsnode v1.1.1/go.mod h1:Xk4qvd3Nb8H31OJapZrLDAE4aBNmKUCvAzypIUZ3ACQ= github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E= github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= -github.com/ipfs/interface-go-ipfs-core v0.4.0 h1:+mUiamyHIwedqP8ZgbCIwpy40oX7QcXUbo4CZOeJVJg= github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52 h1:NKvFg6nPuEhMMyoOUswEReIr3PWBNSgwNT6mDPLAcTo= github.com/ipfs/interface-go-ipfs-core v0.4.1-0.20210326022702-98763dda3e52/go.mod h1:kSN12HNPXg8TrQfdyQOPbPIQVk5j8PcHTn2AAKCaZ6Q= @@ -512,17 +507,13 @@ github.com/ipld/go-car v0.2.1-0.20210312021557-7afab98d034f/go.mod h1:kHunAcD305 github.com/ipld/go-codec-dagpb v1.0.2-0.20210308154810-d05d02fa186e/go.mod h1:oYexiw3WkBIVD5UTNkVuOd0iyEcLxqytAQa90F3nH9M= github.com/ipld/go-codec-dagpb v1.1.0/go.mod h1:6nBN7X7h8EOsEejZGqC7tej5drsdBAXbMHyBT+Fne5s= github.com/ipld/go-codec-dagpb v1.2.0/go.mod h1:6nBN7X7h8EOsEejZGqC7tej5drsdBAXbMHyBT+Fne5s= -github.com/ipld/go-codec-dagpb v1.2.1-0.20210330082435-8ec6b0fbad18 h1:TpjpdzJdasjzZ2xw7rmoj4+u9WBkWBTKBYGcyyLXX68= github.com/ipld/go-codec-dagpb v1.2.1-0.20210330082435-8ec6b0fbad18/go.mod h1:GMLfso6KSkYJlIbd2cGKdGMe/hM5/IukeXRQ+u6zTrQ= github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2 h1:m/ZZEoOdswHrrcikTC+fX4x6tnevJs0hoyNzijlT41A= github.com/ipld/go-codec-dagpb v1.2.1-0.20210405170603-d0b86f7623c2/go.mod h1:GMLfso6KSkYJlIbd2cGKdGMe/hM5/IukeXRQ+u6zTrQ= github.com/ipld/go-ipld-prime v0.7.1-0.20210225173718-8fef5312eb12/go.mod h1:0xEgdD6MKbZ1vF0GC+YcR/C4SQCAlRuOjIJ2i0HxqzM= github.com/ipld/go-ipld-prime v0.7.1-0.20210312004928-8a500e6b8a62/go.mod h1:ZwznT3awHhuBoB0SgGxSo8SZEg6XbQtsZ6WahL9r9z0= -github.com/ipld/go-ipld-prime v0.9.0 h1:N2OjJMb+fhyFPwPnVvJcWU/NsumP8etal+d2v3G4eww= github.com/ipld/go-ipld-prime v0.9.0/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/ipld/go-ipld-prime v0.9.0/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= -github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db h1:kFwGn8rXa/Z31ev1OFNQsYeNKNCdifnTPl/NvPy5L38= -github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db h1:kFwGn8rXa/Z31ev1OFNQsYeNKNCdifnTPl/NvPy5L38= github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/ipld/go-ipld-prime v0.9.1-0.20210402181957-7406578571d1 h1:dIKSj9r+CCXz9t6p4TfbDx34CfSjLfasRZf37SXlNjg= From 63b659319ff2da22cb4ca9752ad6fe2c95300c6b Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Wed, 21 Apr 2021 14:35:59 -0700 Subject: [PATCH 8/8] fix(deps): update to latest go-path License: MIT Signed-off-by: hannahhoward --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index d489685c229..f5db38424de 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/ipfs/go-ds-flatfs v0.4.5 github.com/ipfs/go-ds-leveldb v0.4.2 github.com/ipfs/go-ds-measure v0.1.0 - github.com/ipfs/go-fetcher v1.2.1-0.20210419200002-6e0ef2aeedf1 + github.com/ipfs/go-fetcher v1.3.0 github.com/ipfs/go-filestore v0.0.3 github.com/ipfs/go-fs-lock v0.0.6 github.com/ipfs/go-graphsync v0.8.0 @@ -52,7 +52,7 @@ require ( github.com/ipfs/go-metrics-interface v0.0.1 github.com/ipfs/go-metrics-prometheus v0.0.2 github.com/ipfs/go-mfs v0.1.2 - github.com/ipfs/go-path v0.0.10-0.20210419232600-2597aeef40c9 + github.com/ipfs/go-path v0.0.10-0.20210421213242-802a897dfcd8 github.com/ipfs/go-pinning-service-http-client v0.1.0 github.com/ipfs/go-unixfs v0.2.4 github.com/ipfs/go-unixfsnode v1.1.1 diff --git a/go.sum b/go.sum index 7b80692d8f1..c395d49e311 100644 --- a/go.sum +++ b/go.sum @@ -388,8 +388,8 @@ github.com/ipfs/go-ds-leveldb v0.4.2/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1 github.com/ipfs/go-ds-measure v0.1.0 h1:vE4TyY4aeLeVgnnPBC5QzKIjKrqzha0NCujTfgvVbVQ= github.com/ipfs/go-ds-measure v0.1.0/go.mod h1:1nDiFrhLlwArTME1Ees2XaBOl49OoCgd2A3f8EchMSY= github.com/ipfs/go-fetcher v1.1.0/go.mod h1:RHp10iwAdiJCsxqNvz6JMv1S7tajHSpC36oR6mJuF5M= -github.com/ipfs/go-fetcher v1.2.1-0.20210419200002-6e0ef2aeedf1 h1:Gb1N44an/HXlxGTzQ30r7ogEqpesaOhTjHltveTrWho= -github.com/ipfs/go-fetcher v1.2.1-0.20210419200002-6e0ef2aeedf1/go.mod h1:lld7kBIARmpCvhQ/Rob5oOGEKfVjil8L8y4j9jtLdqo= +github.com/ipfs/go-fetcher v1.3.0 h1:XlF4GCg9LkdAfQk3Kdd3JD0dZ5TgqfydJ7+gog/Eotc= +github.com/ipfs/go-fetcher v1.3.0/go.mod h1:lld7kBIARmpCvhQ/Rob5oOGEKfVjil8L8y4j9jtLdqo= github.com/ipfs/go-filestore v0.0.3 h1:MhZ1jT5K3NewZwim6rS/akcJLm1xM+r6nz6foeB9EwE= github.com/ipfs/go-filestore v0.0.3/go.mod h1:dvXRykFzyyXN2CdNlRGzDAkXMDPyI+D7JE066SiKLSE= github.com/ipfs/go-fs-lock v0.0.6 h1:sn3TWwNVQqSeNjlWy6zQ1uUGAZrV3hPOyEA6y1/N2a0= @@ -482,8 +482,8 @@ github.com/ipfs/go-mfs v0.1.2 h1:DlelNSmH+yz/Riy0RjPKlooPg0KML4lXGdLw7uZkfAg= github.com/ipfs/go-mfs v0.1.2/go.mod h1:T1QBiZPEpkPLzDqEJLNnbK55BVKVlNi2a+gVm4diFo0= github.com/ipfs/go-path v0.0.7/go.mod h1:6KTKmeRnBXgqrTvzFrPV3CamxcgvXX/4z79tfAd2Sno= github.com/ipfs/go-path v0.0.10-0.20210324191207-6a600cd3f256/go.mod h1:QHYtDmpHe3xD5RQSkoco+BM7Vv0sg/tLHWv000t60sw= -github.com/ipfs/go-path v0.0.10-0.20210419232600-2597aeef40c9 h1:VD9U482Q5xCoP9l4W1gLWkWDzAghjxm3p6h6uwvXpek= -github.com/ipfs/go-path v0.0.10-0.20210419232600-2597aeef40c9/go.mod h1:nTVPbzK60ajUGgbqXYPz2GosNdiZ/bY01FArgVBTX1k= +github.com/ipfs/go-path v0.0.10-0.20210421213242-802a897dfcd8 h1:YT89FH52ynHRCZJIM95z+/4fz0rQ7nFPFLRufOzm9AE= +github.com/ipfs/go-path v0.0.10-0.20210421213242-802a897dfcd8/go.mod h1:YMCaFyukoM1bSaPm1eL9Q6IPr0z4WytNeVKlBSm8a0c= github.com/ipfs/go-peertaskqueue v0.0.4/go.mod h1:03H8fhyeMfKNFWqzYEVyMbcPUeYrqP1MX6Kd+aN+rMQ= github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= github.com/ipfs/go-peertaskqueue v0.1.1/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U=