Commit Graph

64 Commits

Author SHA1 Message Date
Joonas Koivunen
3ba5ddf1a3 fix test using non-unique tempfile 2020-06-18 00:55:11 +03:00
Joonas Koivunen
6eb276eb28 add: test /get for long and file names 2020-06-17 17:27:05 +03:00
Joonas Koivunen
91635181c4 refactor: remove home-grown Either 2020-06-17 17:27:05 +03:00
Joonas Koivunen
6671e74113 feat: /get http endpoint
does not at all pass any tests. we need to add a root path param, which
will be a string version of the requested Cid for the http api. Also,
with this, it becomes possible to hide everything (files, symlinks)
under a single walk api.
2020-06-17 17:26:39 +03:00
Joonas Koivunen
c1a0943559 wip: sneak in most of the private parts of tar-rs 2020-06-17 17:26:39 +03:00
Joonas Koivunen
b7b3d12036 add tar dependency 2020-06-17 17:24:23 +03:00
Joonas Koivunen
2ddb78ac3c wip add new subcrate 2020-06-08 15:03:34 +03:00
Joonas Koivunen
7799d888f6
Upgrade libp2p 0.19.0 (#169)
* chore: upgrade the libp2p to 0.18.(0|1)
* refactor: fix most of the swarm with todos

mainly leaving the multiple connections case to panic.

* feat: add ability to configure listening addr

the original random listening address is still in place.

* add test case for the panic with two connections

* fix: allow multiple connections in p2p/swarm
* doc: Connection and the any connecting address
* chore: cleanup libp2p patching examples

* refactor: rename SwarmApi::stats

perhaps roundtrip_times is more readable.

* chore: upgrade to libp2p 0.19

* fix: awaiting for binding new listening addresses

the initial implementation didn't actually wait for anything other than
asking the swarm to start listening, but now the await will complete
only after a listening address has actually been bound. this required
some nasty matching on the multiaddr protocol parts which will hopefully
ever be used by test code but ... it works now, at least a bit better.

* fix test on macos, fix unspecified addr handling
2020-05-19 17:26:57 +03:00
Mark Henderson
f4cc4a5a5c feat: /block/rm endpoint
Adding list to BlockStore trait and cleanup support

Adding list functionality and tests

wip dag put

Update Cargo.toml

Co-Authored-By: Joonas Koivunen <joonas.koivunen@gmail.com>

Delete config

fix: switching back to Vecs

feat: adding list functions to repo and ipfs

feat: working endpoint

fix: more sane newline adding

fix: clippy

fix: cargo fmt

wip: block.rm

cargo fmt

Delete refs.rs

Update lib.rs

Update fs.rs

Update v0.rs

Update v0.rs

Update fs.rs

Update mod.rs

Update mem.rs

Update mem.rs

WIP

fix: removing to_owned

WIP: Got it working but need to implement unshared and then clean up

WIP: Compiling, but empty results probably due to clone

fix: cargo fmt

feat: new result enums and implementation

fix: cargo fmt

wip: 5/8 passing tests, need options and cid in errors

wip: PR comments

fix: last test passing 🎉

fix: cargo fmt

fix: clippy and fmt

chore: socializing things

fix: adding support folder

fix: redundant clone

chore: move HandledErr

chore: fmt and TODO removal

fix: clippy

fix: cargo fmt and clippy

chore: moving to block/options.rs

fix: otiginal Cid

fix: tests

fix: clippy tests
2020-04-17 15:51:01 -04:00
Joonas Koivunen
79985e4140
Add refs endpoint (#147)
A lot of code but going back and forth as well.

* fix: request logger name for good

* wip: initial broilerplate

* feat: ipfspath parsing and walking

* refactor: rewrite to walk the path before streaming

* fix: handling 0 for ipld link

* wip: get first tests to pass

still need to figure out the Send + Sync + 'static bound, issue is with
Sync, which might come from the refs used, get_block(&cid)..

this required some unsafety to be able to present the Stream as Send +
Sync + 'static as required by hyper. not 100% sure if that pin_project
is ok to do, but the only interfaces exposed are callable as futures so
it shouldn't be too bad.

* feat: format string support
* add: manual RefsOptions deserialization to have multiple `arg`

* fix: resolve multiple paths

I had not originally noticed that we need to do the walk from multiple
paths.

* add: dag-pb specific ipfspath walking

* add: make IpfsPath better debuggable

* wip: adjust logging

* add: yield ipld parsing failed err's

* add: "specialize" ipld_links for dag-pb

* feat: support visiting unique nodes

* fix: instead of stopping, filter out too deep elements

also, this should be done when expanding the nodes, not at this stage.

* refactor: reorg and document

originally it was easier to write everything to the same file, but it
gets difficult to read after 1000 lines. while reorganising stuff into
more tight modules, some direct calls were changed not to be needed,
like RefsOptions creating the EdgeFormatter; the EdgeFormatter is not
created in the refs function itself.

chopped off parts:

 * RefsOptions stuff to refs/options.rs
 * EdgeFormatter and the string format to refs/format.rs
 * Unshared to refs/unshared.rs
 * HandledErr, StreamResponse to refs/support.rs

* refactor: minor cleanup and docs

* fix: refs tests, enable unique test

* fix: use specific rust-ipld version with cbor fix

the situation is not good, as it would make sense to re-export libipld
from ipfs as parts are already re-exported but with strange names.

* refactor: allow dead_code StringError::new

* refactor: use the Edge for refs-local as well

* chore: cargo fmt and reorder tests

* doc: replace fixme with confirmed

* add: port tests for ipfspath

* fix: unignore good_but_unsupported test

* add: test cases for slash dedup per discussion

* add: walk dag-cbor tests for IpfsPath

* add: dag-pb path walking test

* add: tests for walking over a cbor link

* add: test case for dapb link listing

* fix: refs_local test, move all tests under mod test

* fix: remove unwrap from refs-local

kept the return value as a stream. it'll at least save us the trouble of
concatenating all of the values into a big vector.
2020-04-16 16:39:48 +03:00
Mark Henderson
4f3b53c1ca fix: cleaner Cargo.lock 2020-04-15 09:47:02 -04:00
Mark Henderson
d3912d511b fix: examples and unused" 2020-04-14 08:04:06 -04:00
Mark Henderson
bf7b0535ae chore: Cargo.lock 2020-04-14 08:04:06 -04:00
David Craven
028b8074c3 wip dag put 2020-04-14 08:04:06 -04:00
Joonas Koivunen
e1d836a137 chore: update cargo lock
unsure why this happens given the changes.
2020-04-02 13:04:00 +03:00
Joonas Koivunen
9b3bc0ee91 chore: update Cargo.lock 2020-03-28 19:45:18 -04:00
Joonas Koivunen
6cbf679644
Add pubsub http (#120)
* add: pubsub http api
* add: get shoveling and subscription complications going

currently the missing piece is seeing locally sent messages in the
subscribed streams, then maybe creating a more complicated API for
subscribing which will require a single task for shoveling into the
responses.

* chore: lower timeout to pass the tests

Should probably have another drop sender here.

* fix: close stream on first error

tokio::sync::broadcast will continue after telling how many items were
lost, which seems likely with the small buffer and quickly firing more
than the buffer elements.

* fix: raise the buffer size for subscribe responses
* feat: use custom rust-libp2p to pass tests

the v0.16.2-with-floodsub-opts includes "subscribers see locally
published messages" which is needed for the conformance tests to pass.
this has been PR'd as https://github.com/libp2p/rust-libp2p/pull/1520.

* fix: pubsub test after changing the floodsub impl
2020-03-25 21:42:06 +02:00
David Craven
1e96deab76 Update Cargo.lock 2020-03-21 12:41:21 -03:00
Joonas Koivunen
ebcb230d6b refactor: rename rust-ipfs-http to ipfs-http 2020-03-17 11:14:03 +02:00
Joonas Koivunen
8b1abb3333 fix: log warning instead of eprintln 2020-03-17 11:08:33 +02:00
David Craven
794d932cf1 Remove unnecessary dependencies. 2020-03-13 13:53:55 +01:00
David Craven
1428034150 Move bitswap into it's own crate. 2020-03-13 13:53:55 +01:00
Joonas Koivunen
18975b3427 chore: refresh lockfile 2020-03-12 16:30:36 +02:00
Joonas Koivunen
c316a1c824 add: build metadata with vergen
this could be moved over to rust-ipfs but I think that people will
prefer to track their own binarys version (which is tracked hopefully in
a vcs) instead of their `rust-ipfs` deps version, which will be in their
`Cargo.lock` file.
2020-03-11 14:02:29 -04:00
Joonas Koivunen
55ad527371 fix rebased patched dep 2020-03-10 15:21:11 +02:00
David Craven
ae7ed3c852 Use rust-ipld. 2020-03-10 09:15:45 +01:00
David Craven
d20d061c9e Update Cargo.lock 2020-03-06 17:38:37 +01:00
Joonas Koivunen
e032d3d4aa
Http v0 for testing (#71)
* add first draft of the http api

* chore note on the difficulties with with_graceful_shutdown

* add the second required output line by js-ipfsd-ctl

* run cargo fmt for different formatting from rls?

* chore note on (stalled) progress

* add remaining cli args boilerplate

what is missing now is using ephemeral addresses with the warp, as
js-ipfsd-ctl doesn't always to shutdown the older one, or then it just
doesn't shut down correctly.

* fix bind to ephemeral localhost port

* add env_logger initialization

* fix faked multiaddr typo

never remember its "ip4" instead of "ipv4"

* fix do GET on every method in /id

for some reason js-ipfsd-ctl will do a POST against /api/v0/id.

* chore run cargo fmt

* Adding placeholder NOT_IMPLEMENTED endpiints

* rustfmt

* Feedback from PR

* Update http/Cargo.toml

Co-Authored-By: Joonas Koivunen <joonas@equilibrium.co>

Co-authored-by: Mark Robert Henderson <henderson.mark@gmail.com>
2020-03-05 21:38:44 +02:00
David Craven
d4d4120de1 Fix build on windows. 2020-03-03 13:00:21 +01:00
David Craven
c2ab64f83d Fix dns. 2020-03-03 13:00:21 +01:00
David Craven
edd22040d0 Perform some cleanup and update deps. 2020-03-03 13:00:21 +01:00
Rüdiger Klaehn
62cf69496d Sync with latest master and remove TSubstream type parameter 2020-02-10 16:35:38 +01:00
Rüdiger Klaehn
fce200de6f Remove protobuf 2020-02-06 19:58:10 +01:00
Rüdiger Klaehn
1c1e9fba62 Add prost! 2020-02-06 18:42:34 +01:00
Rüdiger Klaehn
4c256e46f7 Use rust-libp2p master from 2020-02-05
This solves a few issues:
-peer id inlining
-private swarms
2020-02-05 17:36:55 +01:00
Rüdiger Klaehn
313f25af31 Use libp2p 0.14.0-alpha.1 from crates.io
also update async-std dependency
2020-01-10 16:28:31 +01:00
Rüdiger Klaehn
e337b85285 Fix compile errors 2020-01-10 16:28:31 +01:00
Rüdiger Klaehn
4756d2db81 Update rust-libp2p dep to libp2p v0.14.0-alpha.1 (some hash) 2020-01-10 16:28:31 +01:00
Joonas Koivunen
a21c305634 fix aes-128-ctr to match openssl impl
this is temporary fix ... the branch seems to work and passes some
randomized tests against openssl but the PR is still pending.
2019-12-15 17:25:51 +01:00
Joonas Koivunen
efa6fc8d3d chore fix deps with rocksdb, cleanup toml 2019-12-05 20:14:24 +01:00
Joonas Koivunen
12ee9d5512 refactor cargo update and some of the fixes
- add async_trait dep for repo
 - use async fn everywhere possible
 - update toolchain to semi-latest
 - update futures 0.3
 - update libp2p 0.13
 - get rid of rocksdb for now
 - allow warnings and disable bare_trait_objects for protoc generated
 - wasteful vec workaround (shouldve used MultihashRef?)
 - stop using drain_filter (possibly correctly?)

Note: this changes the generated code
Note: feature(try_trait) remains
2019-12-05 20:14:24 +01:00
Joonas Koivunen
0cb8fae3d6 fix move away from closed libp2p PR 968 2019-11-22 16:31:10 +01:00
David Craven
78e8a8fbce
ipns: Implement dnslink. 2019-03-08 15:53:43 +01:00
David Craven
20b1b6c78c
ipns: Implement. 2019-03-08 15:53:43 +01:00
David Craven
c1a9dc0b1e
Replace all tokio deps. 2019-03-02 00:14:21 +01:00
David Craven
4ad7516071
repo: Add datastore. 2019-03-01 23:53:54 +01:00
David Craven
d1c9626321 Patch tokio to build on travis. 2019-03-01 18:46:01 +01:00
David Craven
8be9318a9c
Enable legacy mdns. 2019-02-27 15:57:50 +01:00
David Craven
ac36e50fe8
Hook up IpldDag, currently only uses local blocks. 2019-02-25 16:49:25 +01:00
David Craven
5be8b9509d
Remove local rust-cbor dep. 2019-02-25 15:40:39 +01:00