Replies: 5 comments 6 replies
-
@seetadev interop-py-js-libp2p/
├── js_node/
│ └── ping-server.js # JS ping listener
├── py_node/
│ └── ping_client.py # Python dialer
├── scripts/
│ └── run_test.sh # Launch both nodes and validate
├── README.md # This file how do you suggest to add other test like |
Beta Was this translation helpful? Give feedback.
-
@acul71 , @Nkovaturient and @paschal533 : Great initiative. Appreciate the efforts. I am opening an issue right away. |
Beta Was this translation helpful? Give feedback.
-
Wish to share some key meeting points from JS-libp2p maintainer's meeting. To enable successful
Once these are in place, basic interop tests (e.g., successful echo and RTT) can be conducted reliably. @acul71 , @paschal533 and @Nkovaturient : Looking forward to the PR. Interop tests will be added at https://github.com/libp2p/test-plans |
Beta Was this translation helpful? Give feedback.
-
@Nkovaturient |
Beta Was this translation helpful? Give feedback.
-
Hi @acul71, @Nkovaturient, @seetadev I've been working on the py-libp2p ↔ js-libp2p interop testing and found an interesting issue with the multistream-select negotiation. The initial connection and Yamux muxing works fine, I can see successful stream creation in the logs. The problem occurs during protocol negotiation when js-libp2p tries to read the multistream response. Python side shows streams with IDs 1 and 3 being created, but then hits a The connection establishment is successful (both sides show proper peer IDs). Yamux multiplexing is working (streams are being created). The failure happens specifically in the multistream-select protocol negotiation. The JS side is timing out/aborting when trying to read the protocol response Potential issues I'm investigating:
The fact that we get to the point of creating Yamux streams suggests the core networking stack is compatible, but there's something subtle in the protocol negotiation layer that's causing the abort. I'm going to dig deeper into the multistream-select implementation differences and see if there are any known compatibility issues between the Python and JS versions. Will update with findings. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
🔄 Py ↔ JS libp2p Interoperability:
/ipfs/ping/1.0.0
The goal of this project is to establish interoperability between
py-libp2p
andjs-libp2p
, with a focus on the core/ipfs/ping/1.0.0
protocol.It enables testing, validation, and cross-implementation compatibility between Python and JavaScript libp2p stacks.
🎯 Objective
Ensure that a
py-libp2p
node can connect to and exchange pings with ajs-libp2p
node using:/ipfs/ping/1.0.0
protocol🛠️ Tech Stack
py-libp2p
js-libp2p
/ipfs/ping/1.0.0
✅ Phase 0: Setup & Basic Ping
JS (Listener)
js-libp2p
node with/ipfs/ping/1.0.0
handlerPython (Dialer)
py-libp2p
node/ipfs/ping/1.0.0
and send a 32-byte payload🔍 Phase 1: Interop Validation
Tests
Logs
📦 Directory Structure
🧪 Sample Multiaddr Flow
📊 Success Criteria
/ipfs/ping/1.0.0
opens🚀 Future Roadmap
Following successful ping interop:
/libp2p/identify/1.0.0
testBeta Was this translation helpful? Give feedback.
All reactions