-
Notifications
You must be signed in to change notification settings - Fork 184
WIP feat: Add py-libp2p to rust-libp2p interoperability tests suit #664
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
Conversation
Hi @lla-dane and @varun-r-mallya here is the interop test suite for Rust-libp2p and Py-libp2p. Let me know if you have any questions. follow the manual setup guild. the automatic scripts are not completed yet. |
@paschal533 : Kindly don't open new pull requests. Please use git rebase or squash and work on the original pull request. Adding new pull requests will make it very difficult for rust-libp2p team to track anything. Closing the new pull request. |
Alright Manu. I had no idea that you have shared the Previous PR with the Rust team. I will Rebase and continue from there. The new PLDG cohort members are having some difficulties trying to follow up with the previous PR because a lot of changes have been done since I created it, that was why I decided to create a fresh new PR with recent updates. |
@paschal533 : The link to #620 was shared twice in community calls both by Dave and me, and also at the rust maintainer calls as we required help on rust-libp2p front. Thought you were aware about it as we do see you at these calls. On the same note, I re-opened your pull request as we will keep 2 versions of interop testing: one, which will be submitted for test plans repo and the other, which will be used for internal testing (think of it like dev branch). Interop testing has to be handled with deep care. Learned it recently from an experience from another libp2p's module, whose build image got updated leading to failure of all the interop tests. We will not submit to test plans repo unless we are thorough on all fronts. |
Alright @seetadev, I have taken note of that. I will update the new cohort members on what to do. Thank you. |
Let me try testing with the changes made in this PR in that case and will reflect these on #620. |
Alright |
What was wrong?
The current libp2p ecosystem lacks standardized interoperability tests between different language implementations. This creates uncertainty about cross-implementation compatibility and makes it difficult to identify protocol negotiation issues, encryption compatibility problems, and stream multiplexing incompatibilities.
Solution
This PR adds a complete test framework that validates:
🔌 Transport Layer Compatibility
🔐 Security Layer Interoperability
🔀 Stream Multiplexing Verification
🤝 Protocol Negotiation Testing
/ipfs/ping/1.0.0
) negotiation📊 Performance Metrics
Files Added
Key Features
🐍 Python Implementation (
py_node/ping.py
)🦀 Rust Implementation (
rust_node/src/main.rs
)🧪 Automated Test Scripts
Improved Error Handling
Testing
Manual Testing
Current Test Status
✅ Working Components
🔍 Active Issues Being Debugged
Yamux Frame Parsing Issues
Current test results show Yamux frame parsing problems:
Root Cause Analysis:
Current Status:
Expected Results (Once Fixed)
Verification Checklist
To-Do
Cute Animal Picture