ipfs-rust / ipfs-embed

A small embeddable ipfs implementation
348 stars 49 forks source link

Fantastic work so far! #28

Closed cryptoquick closed 3 years ago

cryptoquick commented 3 years ago

First, I'm really impressed by all the work you've done so far. I really want to contribute, because I believe in your vision, which, as I see it, is to make a version of IPFS that is better than go-ipfs, using all that the Rust community has to offer, including sled and blake3, and focusing on a subset of forward-looking features. rather than simply reimplementing what currently exists, which is a fool's errand.

Go has some crypto library optimizations that are absolutely really well-optimized, as I've noticed from some comments on the rage project, but the Go solution of well-optimized assembly being less-than-ideal, for obvious reasons.

I am super confused about one thing, however: I would prefer this library use a QUIC implementation that implements libnoise. How is that going? I can't quite make sense of the discussion occurring all around the libp2p repo, including in this thread: https://github.com/libp2p/rust-libp2p/pull/1334

Finally, I've had lots of trouble trying to get this particular repo to build on my machine. Can you tell me the current state of this project, and where I can jump in to help move things along?

dvc94ch commented 3 years ago

I am super confused about one thing, however: I would prefer this library use a QUIC implementation that implements libnoise. How is that going? I can't quite make sense of the discussion occurring all around the libp2p repo, including in this thread: libp2p/rust-libp2p#1334

it doesn't use noise, but tls 1.3. adding support for noise in quinn might be more effort than it is worth. it seems the solution proposed in the PR of using self signed certificates should work well enough. quic support is blocked on a new quinn release, which should happen soon. it also still requires a lot of testing and bug fixing especially around the muxer. it is not easy to integrate quic into libp2p because it breaks a lot of assumptions in a library designed around transport/muxer/secure channel being separate protocols.

Finally, I've had lots of trouble trying to get this particular repo to build on my machine. Can you tell me the current state of this project, and where I can jump in to help move things along?

Can you post a build log?

cryptoquick commented 3 years ago

Actually, I got it working with your latest changes. Some of the tests don't pass in the repo itself, but I'm able to use it as a library. I think this might just actually work!! I'm stoked, I gotta say, so stoked. I feel like I have a lot more POWER that ipfs-go (and its API and reimplementations) won't ever let me have.