feat: Circuit Relay #1063
feat: Circuit Relay #1063
Conversation
I did a review of all the different ways we have to spawn go and js daemons as well as past conversations on IRC
and it seems like, what we're looking for is actually extending the ipfsd-ctl daemon to spawn js nodes as well?
It seems like the best course of action to get tests in browsers across the board is to port the code from Given the above notes, I believe the tasks should be expanded to:
|
Yes! Let's do that
Learn how https://github.com/ipfs/js-ipfs-api/tree/master/test/ipfs-factory is doing it. Ideally this should be all ipfd-ctl |
@diasdavid woot! Awesome, I'll do that. |
@dryajov I was just looking at |
@richardschneider that would be great! |
Raised windows interop issue. |
@richardschneider ipfsd-ctl does run on Windows, in fact it was one of the first modules to get support :) -- https://ci.appveyor.com/project/diasdavid/js-ipfsd-ctl-a9ywu -- thanks to @thisconnect :) |
@diasdavid as usually you are correct. I'll close the issue. |
Compatability table
|
@dryajov brought back the compatibility table and added a column for when the browser acts as a Relay #1063 (comment) |
@diasdavid thanks! |
EDIT: moved this tasks to the first comment (dryajov)
|
@diasdavid, I believe all we vant to do is to set the dafault flag for js-ipfs/src/core/components/libp2p.js Lines 24 to 30 in 104ef1e I also think that in addition to this, there should be a check to skip circuit if swarm doesn't have any transports registered (that is skip it in swarm proper). |
@dryajov EXPERIMENTAL flags are not the same as things in the CONFIG file. If you want to have that information in both places that is fine but for now, js-ipfs won't have Relay enabled by default until it is properly tested (i.e this PR finished) |
@diasdavid I agree, we should disable circuit for now (i.e. |
I think I know what you're saying now - yes, we should keep the config flags and the EXPERIMENTAL flags the same and also disable relay by default with |
@diasdavid this should address dialing when no transports are registered - libp2p/js-libp2p-switch#236 |
@dryajov I know you are working on upgrading ipfsd-ctl, just wanted to suggest that it would be good to fix the issues to make the Circuit Relay tests in |
@diasdavid I agree, ipfsd-ctl will mostly help covering the browser based cases. I'll fix the tests we currently have. |
Hi @dryajov, mind rebasing master onto this branch. CI should be green (at least Travis and Circle) |
@@ -18,7 +18,8 @@ function start (done) { | |||
(cb) => js([`${base}/10012`, `${base}/20012/ws`], true, 31012, 32012, cb), | |||
(cb) => js([`${base}/10013`, `${base}/20013/ws`], true, 31013, 32013, cb), | |||
(cb) => js([`${base}/10014`, `${base}/20014/ws`], true, 31014, 32014, cb), | |||
(cb) => js([`${base}/10015`, `${base}/20015/ws`], true, 31015, 32015, cb) | |||
(cb) => js([`${base}/10015`, `${base}/20015/ws`], true, 31015, 32015, cb), | |||
(cb) => go([`${base}/10027`, `${base}/20027/ws`], true, 33027, 44027, cb), // we need this for circuit for now |
daviddias
Nov 29, 2017
Member
Not true, you should move the interop test to the interop suite
Not true, you should move the interop test to the interop suite
dryajov
Nov 29, 2017
Author
Member
Interop tests don't run in browsers right now, I thought we wanted some browser coverage?
Interop tests don't run in browsers right now, I thought we wanted some browser coverage?
// TODO: 1) figure out why this test hangs randomly | ||
// TODO: 2) move this test to the interop batch | ||
it.skip('node1 <-> goRelay <-> node2', (done) => { | ||
it('node1 <-> goRelay <-> node2', (done) => { |
daviddias
Nov 29, 2017
Member
Please move this test to the interop suite. That was what was in the TODO
Please move this test to the interop suite. That was what was in the TODO
dryajov
Nov 29, 2017
Author
Member
I can move those to the interop tests, but we'll lose any sort of browser coverage until ipfsd-ctl is ready.
I can move those to the interop tests, but we'll lose any sort of browser coverage until ipfsd-ctl is ready.
], done) | ||
}) | ||
}) | ||
|
||
it('node1 <-> jsRelay <-> node2', (done) => { | ||
it.skip('node1 <-> jsRelay <-> node2', (done) => { |
daviddias
Nov 29, 2017
Member
Why skip?
Why skip?
@diasdavid the tests in |
You can run interop tests in the browser too, it uses |
This reverts commit 067c9b0.
I'm going ahead and merge this one. Let's save the fireworks for when ipfs/interop#6 is merged though :) Anyways, great work! :D It took a while but it got done! :) |
Weeeeee!!!!! |
Why i get "Circuit not enabled" after ipfs.swarm.connect ? |
Remaining tasks: