Commit Graph

101 Commits

Author SHA1 Message Date
Jeromy
d7dab3afea Use gx vendored go-ipfs-utils where possible
For the rest of the packages in util, move them to thirdparty
and update the references. util is gone!

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-12 17:21:40 -08:00
Jeromy
171952b795 remove gogo-protobuf from godeps, use gx vendored
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-12 17:21:40 -08:00
Jeromy
3faedb5208 remove goprocess from godeps, use gx vendored one
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-12 17:21:40 -08:00
Jeromy Johnson
7217637933 Merge pull request #2328 from ipfs/feat/parallel-pub
put pubkey and ipns entry to dht in parallel
2016-02-11 13:59:39 -08:00
Jeromy
abadc94e23 fix race conditions in tests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-11 11:09:09 -08:00
Richard Littauer
59a98a838b Capitalized could
License: MIT
Signed-off-by: Richard Littauer <richard.littauer@gmail.com>
2016-02-11 13:05:02 -05:00
Jeromy
58cba8af28 cleanup waitfunc
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-10 22:09:43 -08:00
Jeromy
e8f48f1a1e put pubkey and ipns entry to dht in parallel
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-10 17:03:22 -08:00
Jeromy Johnson
5a0b8023be Merge pull request #2256 from ipfs/feat/gx-libp2p
vendor libp2p with gx
2016-02-05 16:52:02 -08:00
Jeromy
2263539c1c do that last thing again
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-31 15:37:39 -08:00
Jeromy
c0101c0c4b update libp2p dep
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-31 10:19:50 -08:00
Jeromy
0e8a6700f9 correct go-log dep
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:10 -08:00
Jeromy
3d0aa592ec go-keyspace dep from libp2p added
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:08 -08:00
Jeromy
0e312f5caf initial vendoring of libp2p outside of the repo with gx
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:06 -08:00
Kubuxu
0e18246294 Make dns resolve paths under _dnslink.
Thus allowing to CNAME main site entry to gateway and stil specify
dnslink.

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@gmail.com>
2016-01-29 20:46:04 +01:00
Jeromy
19b2f893f4 do resolve operations concurrently
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-14 11:03:59 -08:00
Jeromy
4d5af93f43 vendor in new go-datastore
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jakub (Kubuxu) Sztandera
bcfb3d7224 Included more namesys tests.
Fixed some issues with trailing slashes.

License: MIT
Signed-off-by: Jakub (Kubuxu) Sztandera <kubuxu@gmail.com>
2016-01-05 18:13:43 +01:00
Jakub (Kubuxu) Sztandera
85774b89d3 namesys: Make paths with multiple segemnts work. Fixes #2059
Also fixes non-recursive resolve erring instead showing one step.

 The patch of core/commands/resolve.go could be done better but I don't
 know how to get access to ErrResolveRecursion.

 It allows for dnslinks into sub-segments. So for example hosting
 multiple blogs
 on just domains from one pubkey.

 Fixes #2059

 Add tests and fix case when dnslinks references dnslink

License: MIT
Signed-off-by: Jakub (Kubuxu) Sztandera <kubuxu@gmail.com>
2016-01-05 13:46:33 +01:00
Jeromy
94bdce63a7 vendor logging lib update
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-05 15:57:21 -08:00
Jeromy
c7fb7ce17d cache ipns entries to speed things up a little
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-02 12:53:08 -08:00
Jeromy
c023d187b5 update code to use new logging changes
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-27 11:04:56 -07:00
Jeromy
8f0623255d replace imports with absolute path instead of using symlink
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-03 14:30:50 -07:00
Jeromy
b34d41e01e fix publish fail on prexisting bad record
dont error out if prexisting record is bad, just grab its sequence number
and continue on with the publish.

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-02 14:59:31 -07:00
Jeromy
3b9ad30005 Addressing comments from CR
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-30 22:50:50 -07:00
Jeromy
e5512b4115 make publish more configurable and add test for repub
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-30 11:03:44 -07:00
Jeromy
815a031f59 Implement ipns republisher
This commit adds a very basic process that will periodically go through
a list of given ids and republish the values for their ipns entries.

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-29 09:47:47 -07:00
Jeromy
cfcc3d6a1b ipns record selection via sequence numbers
This commit adds a sequence number to the IpnsEntry protobuf
that is used to determine which among a set of entries for the same key
is the 'most correct'.

GetValues has been added to the routing interface to retrieve a set of
records from the dht, for the caller to select from.

GetValue (singular) will call GetValues, select the 'best' record, and
then update that record to peers we received outdated records from.
This will help keep the dht consistent.

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-29 09:47:41 -07:00
Jeromy
e5a2896c0e extract logging
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-14 17:35:50 -07:00
rht
a7202fa94c Fix 'ctx, _' to have explicit cancel
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-08-23 19:35:03 +07:00
Juan Batiz-Benet
6e9c72ab37 expose internal/pb packages.
we shouldn't use internal packages.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-10 11:08:49 -07:00
Jeromy
ef294431d4 move util.Key into its own package under blocks 2015-06-01 16:10:08 -07:00
W. Trevor King
ce015d241b namesys/namesys_test: Excercise mpns.ResolveN
Shifting the generic testResolution helper from the protocol-specific
dns_test.go to the generic namesys_test.go.
2015-05-20 08:40:44 -07:00
W. Trevor King
c9fceeb19b namesys/dns_test: Add DNS resolution tests with a mock resolver 2015-05-20 08:40:44 -07:00
W. Trevor King
1e6594d087 namesys/dns: Pluggable lookupTXT field
So we can attach a mock lookup function for testing.
2015-05-20 08:40:44 -07:00
W. Trevor King
3ead2443e5 namesys: Add recursive resolution
This allows direct access to the earlier protocol-specific Resolve
implementations.  The guts of each protocol-specific resolver are in
the internal resolveOnce method, and we've added a new:

  ResolveN(ctx, name, depth)

method to the public interface.  There's also:

  Resolve(ctx, name)

which wraps ResolveN using DefaultDepthLimit.  The extra API endpoint
is intended to reduce the likelyhood of clients accidentally calling
the more dangerous ResolveN with a nonsensically high or infinite
depth.  On IRC on 2015-05-17, Juan said:

15:34 <jbenet> If 90% of uses is the reduced API with no chance to
  screw it up, that's a huge win.
15:34 <wking> Why would those 90% not just set depth=0 or depth=1,
  depending on which they need?
15:34 <jbenet> Because people will start writing `r.Resolve(ctx, name,
  d)` where d is a variable.
15:35 <wking> And then accidentally set that variable to some huge
  number?
15:35 <jbenet> Grom experience, i've seen this happen _dozens_ of
  times. people screw trivial things up.
15:35 <wking> Why won't those same people be using ResolveN?
15:36 <jbenet> Because almost every example they see will tell them to
  use Resolve(), and they will mostly stay away from ResolveN.

The per-prodocol versions also resolve recursively within their
protocol.  For example:

  DNSResolver.Resolve(ctx, "ipfs.io", 0)

will recursively resolve DNS links until the referenced value is no
longer a DNS link.

I also renamed the multi-protocol ipfs NameSystem (defined in
namesys/namesys.go) to 'mpns' (for Multi-Protocol Name System),
because I wasn't clear on whether IPNS applied to the whole system or
just to to the DHT-based system.  The new name is unambiguously
multi-protocol, which is good.  It would be nice to have a distinct
name for the DHT-based link system.

Now that resolver output is always prefixed with a namespace and
unprefixed mpns resolver input is interpreted as /ipfs/,
core/corehttp/ipns_hostname.go can dispense with it's old manual
/ipfs/ injection.

Now that the Resolver interface handles recursion, we don't need the
resolveRecurse helper in core/pathresolver.go.  The pathresolver
cleanup also called for an adjustment to FromSegments to more easily
get slash-prefixed paths.

Now that recursive resolution with the namesys/namesys.go composite
resolver always gets you to an /ipfs/... path, there's no need for the
/ipns/ special case in fuse/ipns/ipns_unix.go.

Now that DNS links can be things other than /ipfs/ or DHT-link
references (e.g. they could be /ipns/<domain-name> references) I've
also loosened the ParsePath logic to only attempt multihash validation
on IPFS paths.  It checks to ensure that other paths have a
known-protocol prefix, but otherwise leaves them alone.

I also changed some key-stringification from .Pretty() to .String()
following the potential deprecation mentioned in util/key.go.
2015-05-20 08:40:05 -07:00
W. Trevor King
04a969835e namesys/dns: Use SplitN to find dnslink references
RFC 6763 requires printable ASCII except '=' for the key [1], but
allows any character including '=' in the value [2].  This patch
adjusts our parsing to avoid splitting on '=' in the value, and then
ignoring anything after that split.

[1]: https://tools.ietf.org/html/rfc6763#section-6.4
[2]: https://tools.ietf.org/html/rfc6763#section-6.5
2015-05-19 19:54:13 -07:00
W. Trevor King
03260a9281 namesys/interface: Expand package docs to discuss mutable names
What they are, why you'd use them, and which command-line tools you
can use to access this functionality.
2015-05-19 19:54:12 -07:00
W. Trevor King
02cb5f3b32 namesys/publisher: Drop the 'namesys: ' prefix for the Publish log
This is already handled by setup in namesys/routing.go:

  var log = u.Logger("namesys")
2015-05-19 19:54:12 -07:00
Henry
5fff7742f3 godeps: move (go)goprotobuf to github location 2015-04-28 13:42:22 +02:00
Jeromy
3d80b9d27d refactored ipns records to point to paths
Also changed the ipns dns resolution to use the "dnslink" format
2015-04-26 22:32:12 -07:00
Jeromy
0a6b880bee fix for #1008 and other pinning fixes
This commit adds a new set of sharness tests for pinning, and addresses
bugs that were pointed out by said tests.

test/sharness: added more pinning tests

Pinning is currently broken. See issue #1051. This commit introduces
a few more pinning tests. These are by no means exhaustive, but
definitely surface the present problems going on. I believe these
tests are correct, but not sure. Pushing them as failing so that
pinning is fixed in this PR.

make pinning and merkledag.Get take contexts

improve 'add' commands usage of pinning

FIXUP: fix 'pin lists look good'

ipfs-pin-stat simple script to help check pinning

This is a simple shell script to help check pinning.

We ought to strive towards making adding commands this easy.
The http api is great and powerful, but our setup right now
gets in the way. Perhaps we can clean up that area.

updated t0081-repo-pinning

- fixed a couple bugs with the tests
- made it a bit clearer (still a lot going on)
- the remaining tests are correct and highlight a problem with
  pinning. Namely, that recursive pinning is buggy. At least:
  towards the end of the test, $HASH_DIR4 and $HASH_FILE4 should
  be pinned indirectly, but they're not. And thus get gc-ed out.
  There may be other problems too.

cc @whyrusleeping

fix grep params for context deadline check

fix bugs in pin and pin tests

check for block local before checking recursive pin
2015-04-19 23:40:25 -07:00
Jeromy
bb1b0d50e0 Address comments from PR 2015-03-31 18:17:58 -07:00
Jeromy
97aeda9ae8 cache public keys and use better method for fetching 2015-03-31 18:17:58 -07:00
Ho-Sheng Hsiao
bf22aeec0a Reorged imports from jbenet/go-ipfs to ipfs/go-ipfs
- Modified Godeps/Godeps.json by hand
- [TEST] Updated welcome docs hash to sharness
- [TEST] Updated contact doc
- [TEST] disabled breaking test (t0080-repo refs local)
2015-03-31 12:52:25 -07:00
Jeromy
6bf341302c fix for weird repo init issue 2015-03-18 16:11:47 -07:00
Jeromy
c100b1be04 move keyspace init function into namesys 2015-03-17 16:19:39 -07:00
Juan Batiz-Benet
1d5b903611 added cancel func calls previously ignored 2015-03-07 09:31:46 -08:00
Jeromy
7fb63d7e43 move signing options into a validation checker struct 2015-02-26 22:05:03 -08:00
Jeromy
049b5ad945 make signing dht put records optional 2015-02-26 22:05:03 -08:00