-
Notifications
You must be signed in to change notification settings - Fork 175
initial-setup of py-webrtc #557
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
Just a note, py-libp2p is using |
@pacrob noted, will modify, thanks! |
New Commit entails the following changes:-🔧
|
Commit: refactor-webrtc-setup-and-loopback-testDescription- Key improvements to the` webrtc.py` file in the `libp2p.transport.webrtc` module:
✅ ICE Trickling: Implemented and now symmetric (caller/callee) Updates:
Troubleshooting ahead:
Test_loopback.py Result:Lint Run Result: All lint issues fixed except
|
@Nkovaturient : Great progress. Please try and arrive at a good conclusion on the issues by Thursday. |
@seetadev yeah, updating you shortly. |
@seetadev
|
@Nkovaturient : Thank you so much for sharing the updates and code commits. Appreciate your contribution. Wish if you could debug some of the build issues that are not passing after running the latest CI/CD checks. Wish to also share that I discussed with rust-libp2p team on webrtc and documented a test plan for webrtc fallback relay testing matrix : #601 Please keep in touch with @Winter-Soren as he implements circuit relay and hole punching (support needed for webrtc in production). |
@seetadev Sure, actively working on the build issues + test suite |
… add-webrtc-in-pylibp2p
… add-webrtc-in-pylibp2p
@Nkovaturient : We are almost through with the circuit relay PR. @Winter-Soren and I will be moving over to hole punching initiative in the coming week. Will keep you posted. This will help you have the requisite NAT Traversal stack required in WebRTC. Autonat is complete and productionized. @Winter-Soren has ensured NAT Traversal features are production ready. Please try AutoNAT functionality, which is fully ready: please visit autonat implementation video and testcases video |
@seetadev humbly appreciate ur updates! Im taking care of it. |
… add-webrtc-in-pylibp2p
return actual_hash == expected_hash | ||
|
||
|
||
def create_webrtc_direct_multiaddr(ip: str, port: int, peer_id: ID) -> Multiaddr: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are here 2 functions for direct_multiaddr.
if not isinstance(peer_id, ID): | ||
peer_id = ID(peer_id) | ||
|
||
base = f"/ip4/{ip}/udp/9000/webrtc-direct/certhash/{certhash}/p2p/{peer_id}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we get port also as optional argument with default value 9000 instead of hardcoding
@Nkovaturient : Hi Neha. Hope you're doing well. Thanks again for your efforts. Wish to also thank @sukhman-sukh for his feedback and review to the PR. To help accelerate finalization and testing, could you please add @sukhman-sukh as a collaborator to your current WebRTC PR? He’s been closely following the architecture and has already worked on related components, so his input and hands-on support should help us move things forward more quickly. Thanks again for your continued efforts — this is an exciting milestone for the project, and we’re looking forward to seeing it land soon. |
Hello there @seetadev Looking forward to collaborate wid @sukhman-sukh on further improvements and robust setup. Thank you! |
@Nkovaturient : Thanks for the update. Sure, please include the feedback points by @sukhman-sukh in the latest PR. Wish to share that @sukhman-sukh is working on developing a NAT integrated transport layer production stack for webrtc (private to private) and integrating dcutr (hole punching), circuit relay and autonat in this issue: please visit #773 . You can also ask him to include the NAT traversal integration, and contribute, integrate NAT traversal workflows in webrtc-direct efforts shared in the new PR at #780 . He did review this current PR (#557) before beginning the webrtc efforts and arrived at a set of key milestones he needed to achieve (in sync with the latest NAT traversal developments). |
What was wrong?
Issue #546
Implementations & Enhancements
(RTCPeerConnection)
for direct communication.SDP
exchange via aWebSocket-based signaling server
(listen_signaling).(RTCDataChannel)
for efficient peer-to-peer messaging.WebSockets
are used for signaling to register and communicate SDP offers/answers.peer discovery
(initiate_connection).GossipSub
to enable decentralized peer advertisement & discovery.multiaddr
parsing for WebRTC protocolsQuestions
1.) Should we rely entirely on WebSockets for signaling, or use DHT as a fallback?
2)Multiaddr Handling & Validation
3.)Peer Discovery Optimization
To-Do
Helpful resources
js-libp2p-webrtc
go-libp2p-webrtc