-
Notifications
You must be signed in to change notification settings - Fork 29
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
go-ipfs retrieves content from js-ipfs #19
Comments
Updates here. After adding in support to go-multiplex for half closed streams (which are, in my opinion, unnecessary) we have discovered that the js implementation of multiplex also does not support half closed streams. We're working on fixing that |
As soon as these last test passes -- daviddias/multiplex#2 --, we should be golden! |
@whyrusleeping did you get the chance to bubble up the changes yesterday? |
working on it. Tests arent passing for some reason, will look at them as soon as i can. In the meantime you should be able to build off of that branch and test |
Getting a: # JS side
LIBP2P_MUXER=multiplex jsipfs daemon
# ...
» jsipfs id
{
"id": "QmWxqpnDn1ZFcaJQ8nEpAkcTz9xR8foaNXnwpY9THi34e7",
"publicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChWiNNuHw1cCabhbtvSaCxH0KcY2ueipkasRkHYkJ6QfrpCO8mvK0QGbLMpK9YlzZ+Yc1tKUwydVwxNLu7msqau6kKCAgpOJ1II3U9ct4Mx59w4SGY8m5bWZXgTmqx6Tw03CzZl206/sPnRq+tzxsGdizQo+rZQtYr8fiHlF8G4YDy0QLO2gCbn5sxRvza/TlJeDpR1Nu1nlXWJJkQaxfNCsih3HxtXlmE2IfzFW+HZaSRiqh7Hxrn01UWcnY+O91Mhr3WQkyaRch09fBBS7vcQigTu+m+anhNVNrRiVGtn2uB4RV6CYSb3XCAmP76BpRa8lAN9Ew/EjgK0xh4azgtAgMBAAE=",
"addresses": [
"/ip4/127.0.0.1/tcp/14002/ipfs/QmWxqpnDn1ZFcaJQ8nEpAkcTz9xR8foaNXnwpY9THi34e7",
"/ip4/127.0.0.1/tcp/14003/ws/ipfs/QmWxqpnDn1ZFcaJQ8nEpAkcTz9xR8foaNXnwpY9THi34e7",
"/ip4/192.168.2.215/tcp/14002/ipfs/QmWxqpnDn1ZFcaJQ8nEpAkcTz9xR8foaNXnwpY9THi34e7",
"/ip4/192.168.2.29/tcp/14002/ipfs/QmWxqpnDn1ZFcaJQ8nEpAkcTz9xR8foaNXnwpY9THi34e7"
],
"agentVersion": "js-ipfs",
"protocolVersion": "9000"
}
#....
# Go side
> LIBP2P_MUX_PREFS="/mplex/6.7.0" ipfs daemon
# ...
> ipfs swarm connect /ip4/127.0.0.1/tcp/14002/ipfs/QmWxqpnDn1ZFcaJQ8nEpAkcTz9xR8foaNXnwpY9THi34e7
Error: connect QmWxqpnDn1ZFcaJQ8nEpAkcTz9xR8foaNXnwpY9THi34e7 failure: dial attempt failed: failed to add conn to ps.Swarm: selected protocol we don't have a transport for |
@diasdavid you have to pass: |
Continue testing, it works for a lot of cases, but when we start talking about bigfiles (50MB++), go-ipfs kills the connection it has with js-ipfs, doing swarm connect again will result in go-ipfs closing the socket again. This might be related with the tests @whyrusleeping saw failing Update: got a Panic;
|
@diasdavid Is there more info to that panic? like, the line above that says |
@diasdavid Ah, I see how a panic could occur there. But the interesting thing is that it could only happen if you sent data after sending a close to me. |
@diasdavid @whyrusleeping what's the status of this? @diasdavid how can I reproduce the panic you are seeing? |
Tried the latest branches mentioned here with the interop tests from js-ipfs. Seems there is still a lot of things not working currently. Current setup:
Command:
|
I discovered that identify is failing, when using the above mentioned setup, it works fine if I switch to spdy. |
More updates
|
I have a branch with types + logging for multiplex on the js side here: https://github.com/dignifiedquire/multiplex/tree/flow |
|
One more PR: libp2p/js-libp2p-switch#179 and we are good to go for browser multiplexing! |
I think this is done cc @dignifiedquire |
Shipped and released :) |
Acceptance Criteria
This requires getting a stream multiplexer functional in both languages.
Background
go-ipfs and js-ipfs do not share a working stream multiplexer. The ones that work go-go are not implemented in javascript and the ones that work js-js are not implemented in go.
The text was updated successfully, but these errors were encountered: