Skip to content
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

Implement Circuit Relay v2 in JS #1029

Closed
2 tasks done
Tracked by #1461
lidel opened this issue Nov 19, 2021 · 15 comments · Fixed by #1533
Closed
2 tasks done
Tracked by #1461

Implement Circuit Relay v2 in JS #1029

lidel opened this issue Nov 19, 2021 · 15 comments · Fixed by #1533
Assignees
Labels
P0 Critical: Tackled by core team ASAP

Comments

@lidel
Copy link
Member

lidel commented Nov 19, 2021

go-ipfs 0.11 will ship with circuits v2, js-ipfs should be able to talk to them.

Ref. https://github.com/libp2p/specs/blob/master/relay/circuit-v2.md

[Update 2023-01-05] In-progress PR:
#1533

#1029 (comment)

@lidel lidel added the need/triage Needs initial labeling and prioritization label Nov 19, 2021
@lidel lidel added the P0 Critical: Tackled by core team ASAP label Nov 19, 2021
@lidel lidel added need/analysis Needs further analysis before proceeding and removed need/triage Needs initial labeling and prioritization labels Nov 19, 2021
@Winterhuman
Copy link

@lidel Any update on this issue?

@mpetrunic
Copy link
Member

I would like to take this on. Should I rip circuit out of libp2p and develop it in separate repository?

@BigLep BigLep assigned BigLep and mpetrunic and unassigned BigLep Feb 11, 2022
@mpetrunic
Copy link
Member

@achingbrain We agreed on a call to do it in a separate repo, but I just saw there is already https://github.com/libp2p/js-libp2p-circuit deprecated repo. Do you know why this stuff was pulled back into js-libp2p?
If we still wanna do it in a separate repo, should we unarchive this repo?

@mpetrunic
Copy link
Member

cc @jacobheun maybe you can shed some light here.

@jacobheun
Copy link
Contributor

@mpetrunic the original consolidation effort is at #384, and it links to a larger discussion in js-ipfs. The main reasoning for pulling in these core modules to js-libp2p is to reduce the overhead of having to do independent releases and rollups for modules that don't provide any value as standalone modules. I don't think it makes much sense to have libp2p-circuit externalized to js-libp2p because I don't see it being used directly elsewhere, and it's just going to add overhead to feature/release cycles. If you want to do e2e testing with libp2p, that can also create additional testing overhead.

Unless there's something specific you're trying to achieve with it being a separate module, I'd recommend keeping it here to avoid the overhead. Circuit is pretty core to libp2p, regardless of environment, whereas some of the other standalone modules are arguably environment dependent customizations.

@mpetrunic
Copy link
Member

Honestly, my only reasoning was that we could do it in typescript and ease in migration to typescript. Will open PR with circuit v2 on libp2p repo!

@mxinden
Copy link
Member

mxinden commented Feb 23, 2022

👋 libp2p steward, rust-libp2p maintainer here. I was involved in the final steps of the protocol design and implemented Circuit Relay v2 on the Rust side recently. Happy to help from the libp2p side, e.g. with deployments to test against. Unfortunately we don't have a test-suite you could develop against. @mpetrunic feel free to ping me here or on the various other communication channels.

@mpetrunic
Copy link
Member

@mxinden Hey, tnx a lot for the offer, will ping you if I don't find anything. I'm currently struggling to get js-js test to pass 😅
Do you have some interop setup in you use?

@mxinden
Copy link
Member

mxinden commented Feb 28, 2022

Do you have some interop setup in you use?

Unfortunately not. We are working on interop tests via https://github.com/testground/testground though that is still far from complete.

For now I can only offer Circuit Relay v2 deployments to test against @mpetrunic.

@vasco-santos
Copy link
Member

@mpetrunic there are some interop tests go<->js via IPFS: https://github.com/ipfs/interop/tree/master/test/circuit

You can link libp2p in that repo and test it

@p-shahi
Copy link
Member

p-shahi commented Nov 7, 2022

This is being taken up by @ckousik now, but for some reason cannot set the assignee

@p-shahi p-shahi removed the need/analysis Needs further analysis before proceeding label Nov 15, 2022
@tinytb tinytb assigned tinytb and ckousik and unassigned tinytb Dec 2, 2022
@tinytb
Copy link
Contributor

tinytb commented Dec 5, 2022

@ckousik Could we get an update on this issue? (at some regular cadence -- e.g. once a month would be fine)

@p-shahi
Copy link
Member

p-shahi commented Dec 6, 2022

For now this has been deprioritized in favor of go-libp2p WebRTC work per libp2p/go-libp2p#1655 (comment)

@p-shahi p-shahi linked a pull request Jan 5, 2023 that will close this issue
2 tasks
achingbrain added a commit that referenced this issue Mar 2, 2023
Implements circuit relay v2

See the [relay section of the configuration](https://github.com/libp2p/js-libp2p/blob/master/doc/CONFIGURATION.md#setup-with-relay) for how to configure it.

Fixes #1029

---------

Co-authored-by: achingbrain <alex@achingbrain.net>
@BigLep
Copy link
Contributor

BigLep commented Mar 4, 2023

Reopening because there is followup work listed in #1533 (review)

If we're tracking that somewhere else, please link and close.

@BigLep BigLep reopened this Mar 4, 2023
@p-shahi
Copy link
Member

p-shahi commented Mar 4, 2023

Being tracked here: #1608

@p-shahi p-shahi closed this as completed Mar 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P0 Critical: Tackled by core team ASAP
Projects
None yet
10 participants