Search code examples
javascriptnode.jslibp2p

js-libp2p doesn't create a new stream


My full source code is available here: https://github.com/Gbr22/p2ptunnel

listener:

$ node listener.js
Listener ready, listening on:
/ip4/192.168.0.101/tcp/10333/p2p/QmcrQZ6RJdpYuGvZqD5QEHAv6qX4BrQLJLQPQUrTrzdcgm                                                                             m
/ip4/127.0.0.1/tcp/10333/p2p/QmcrQZ6RJdpYuGvZqD5QEHAv6qX4BrQLJLQPQUrTrzdcgm   
Connected to:  Qma3GsJmB47xYuyahPZPSadh1avvxfyYQwk8R3UnFrQ6aP

dialer:

$ node dialer.js
Dialer ready, listening on:
/ip4/192.168.0.101/tcp/61305/p2p/Qma3GsJmB47xYuyahPZPSadh1avvxfyYQwk8R3UnFrQ6aP                                                                           aP
/ip4/127.0.0.1/tcp/61305/p2p/Qma3GsJmB47xYuyahPZPSadh1avvxfyYQwk8R3UnFrQ6aP  
Connected to:  QmcrQZ6RJdpYuGvZqD5QEHAv6qX4BrQLJLQPQUrTrzdcgm

The expected outcome would be to have new stream with protocol: /p2ptunnel/1.0.0 logged to both the listener and the dialer.

But for some reason await connection.newStream(Protocol.id) doesn't resolve and doesn't reject either


Solution

  • As it turns out, the current latest version (0.37.3) of js-libp2p is broken.

    Running npm i [email protected] fixed my issue.

    See: https://discuss.libp2p.io/t/js-libp2p-doesnt-create-a-new-stream/1545/2 and https://github.com/libp2p/js-libp2p/issues/1306