This way, if we *happen* to be offline while attempting a publish, we don't wait
the full interval.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
Commits:
namesys: pubsub Publisher and Resolver
namesys/pubsub: pacify code climate.
namesys/pubsub: timeout for rendezvous
namesys/pubsub: filter self in bootstrap connections
namesys/pubsub: Publish to the correct topic
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: unit test
Commits:
namesys/pubsub: test
namesys/pubsub_test: pacify code climate
namesys/pubsub: update test to use extant mock routing
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: integrate namesys pubsub
namesys: integrate pubsub resolvers
namesys/pubsub_test: tweak delays
- trying to make travis happy.
namesys/pubsub: fix duplicate bootstraps
- subscription key is topic, not ipnskey.
namesys/pubsub: no warning needed on cancellation
namesys/pubsub: warning for receive errors
- and more informative error messages at that.
namesys/pubsub_test: smaller test
- make it work with seemingly low fdlimits in travis/macosx.
also, more informative test failures.
namesys/pubsub: add delay to let pubsub perform handshake
namesys/pubsub: update gx imports
namesys/pubsub_test: preconnect publisher, reduce delays
- preconnects the publisher to the receivers in order to avoid bootstrap
flakiness with connectivity problems in travis.
reduces sleeps to 1s for flood propagation (3s seems excessive with 5 hosts).
namesys/pubsub: drop named return values in resolveOnce
- per review comment.
namesys/pubsub: check errors
namesys/pubsub: store bytes in resolver datastore
namesys/pubsub: resolver Cancel
- for canceling subscriptions, pre whyrusleeping's request.
namesys/pubsub: fix resolution without /ipns prefix
- also improve the logging a bit.
namesys/pubsub: don't resolve own keys through pubsub
namesys/pubsub: signal ErrResolveFailed on resolution failure
namesys/pubsub: use sync datastore, resolver lock only for subs
namesys/pubsub_test: coverage for Cancel
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: parallelize dht and pubsub publishing
Commits:
namesys/pubsub: code cosmetics
namesys: parallelize publishing with dht and pubsub
namesys/pubsub: periodically reprovide topic rendezvous
namesys/pubsub: cancelation for rendezvous goroutine
namesys/pubsub: log ipns record seqno on publish
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: error checking
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: --enable-namesys-pubsub option and management
Commits:
package.json: update go-libp2p-blankhost
namesys: fix stale package imports
update go-testutil
namesys/pubsub: reduce bootstrap provide period to 8hr
namesys/pubsub: try to extract the key from id first
option to enable ipns pubsub: --enable-namesys-pubsub
ipfs name pubsub management subcommands
corehttp/gateway_test: mockNamesys needs to implement GetResolver
pacify code climate
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: pubsub sharness test
test/sharness: test for ipns pubsub
namesys/pubsub: return boolean indicator on Cancel
package.json: remove duplicate entry for go-testutil
update gx deps, testutil to 1.1.12
fix jenkins failure: use tabs in t0183-namesys-pubsub
t0183: use 4 spaces for tabification
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: update for new command interface
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
namesys/pubsub: fix sharness test for broken MacOS echo
echo -n "" should print -n, but hey it's a mac.
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
Note: This commit is technically broken. However, I need to make a bunch of
cmds changes to make this work and I'd rather not bundle both changes into a
single commit.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
Introduces a new Reset method on streams that kills both sides of the
connection. Close now officially just closes the write side (what it did all
along...)
* Also pull through shiny new go-multiplexer fixes.
* Also pull in go-reuseport update.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
Iterate through all keys in the keystore so keys added with
"ipfs key gen" behave the same as the <self> key. Don't maintain a
separate repub list as it does not really serve a purpose at this
point in time. See #3808.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
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: Jakub Sztandera <kubuxu@protonmail.ch>