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
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