-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upstream new protocols (Yamux, TLS, Quic) #272
Comments
Friendly ping @Nashatyrev. |
Hey, that sounds exciting! In the meanwhile let me ask you some initial questions on the items you listed:
What's the reasons behind removing those dependencies?
Teku is still on Java 11, so I'm not sure how we could handle this at the moment. As an option: postpone TLS module until Teku upgrade?
Are you referring to #267 ? I believe it shouldn't be too problematic to adopt, since there were mostly structural changes and the code was not affected mostly |
Thanks @Nashatyrev , yep that makes sense to discuss with Teku. We try to minimise dependencies for security and maintainability reasons mainly, but also compiled jar size. For logging in particular we've never needed log4j in various companies over the years and always manage with the built-in logging. I'd love to remove the Java 17 requirement too. It might be possible with some vendoring of bouncy castle components. Quic also depends on TLS though, so that would also have to be post-poned. Good to hear #267 shouldn't be difficult to rebase off. |
|
Yep we're happy to include slf4j if that helps. |
For the record, log4j-api works just like slf4j these days and can work with multiple backends, not just log4j (including funnily enough slf4j from memory). It's more common to use slf4j for that kind of thing though so not unreasonable to switch to that. Teku already has some dependencies that use slf4j so needs to ensure it has a mapping to log4j in place anyway. |
Hi @ianopolous , we (Teku) will migrate to Java 17 in a couple of releases, so that shouldn't be a problem. Wonder if it is an idea to implement the changes on a branch (v1.x for example) and potentially release 1.0.0 and then we can start testing with it and when happy can merge these changes to |
@StefanBratanov , sounds like a good plan 👍 And it would be indeed a good candidate for version Just a note regarding Java 17. I believe we would also like to keep some compatibility with Android. jvm-libp2p have |
Cool, so it sounds like we've got the green light to rebase, add slf4j and submit a PR, and then we can discuss the details there? |
Ok, I've created new branch as discussed : https://github.com/libp2p/jvm-libp2p/tree/v1.0.0 I'm looking forward to integrate all the changes step-by-step with minimal atomic PRs.
@ianopolous @StefanBratanov, what do you guys think on this? |
@ianopolous just found out that you have excluded |
We care about binary size. So this is ~3MiB saving. They are mostly random util classes. |
Got it. |
BTW I've managed to remove Apache commons and use |
Nope but we can probably use one of those. |
I think we used the Base32 from java-multibase which is itself a vendored version of apache commons. |
@ianopolous Sounds good! |
Hi @Nashatyrev approved your PRs |
Ok, preparatory PRs are all merged. |
TLS PR is ready for review: #283 |
@ianopolous could you please review #285 . Yamux cases in particular. |
All that's left now that TLS is merged is:
|
@ianopolous I will be on vacation for the next week, but then I would like to sort out the If you think it makes sense we may connect on Telegram: https://t.me/nashatyrev_a |
Let's upgrade to email (I don't have telegram), and we can upgrade from there. I'm ian at peergos dot org. |
There are two more PRs to fix a yamux and a TLS regression: |
@ianopolous I'm updating README for v1.0.0 here #301 |
Sure, that'd be great, you can add https://github.com/peergos/nabu and https:///github.com/peergos/peergos if you want. |
We also have implementations of kademlia, bitswap, autonat, circuit-relay-v2 (WIP) in Nabu. |
Hi we're hoping to upstream a bunch of new protocols we've implemented based on this. Specifically Yamux, TLS, multiaddr fixes and soon Quic. We also have Kademlia and bitswap in Java on top of this here: https://github.com/Peergos/nabu These are all tested against kubo for interop.
The only potential difficulties we see are
Is there interest in up-streaming our work? What are your thoughts?
The fork is https://github.com/peergos/jvm-libp2p
The text was updated successfully, but these errors were encountered: