Skip to content
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

Roadmap for allowing browser-embedded nodes to connect to Substrate networks #547

Open
3 tasks
tomaka opened this issue Oct 30, 2020 · 13 comments · May be fixed by paritytech/substrate#12529
Open
3 tasks
Assignees
Labels
D3-involved Can be fixed by an expert coder with good knowledge of the codebase.

Comments

@tomaka
Copy link
Contributor

tomaka commented Oct 30, 2020

  • Make it possible for node operators to attach a TLS certificate to their libp2p WebSocket server. I believe this can be done by adding a CLI option that passes a certificate.

  • Add a WebRTC "client" in nodes.

  • Implement some mechanism for nodes to relay WebRTC SDPs, in other words to act as signalling servers. This point is quite vague and needs more thoughts.

@tomaka
Copy link
Contributor Author

tomaka commented Oct 30, 2020

cc libp2p/rust-libp2p#1066

@tomaka
Copy link
Contributor Author

tomaka commented Jan 6, 2021

Make it possible for node operators to attach a TLS certificate to their libp2p WebSocket server. I believe this can be done by adding a CLI option that passes a certificate.

I put that item here because it believe that it isn't super hard to implement.
However, it might be easier to just ask people to put a reverse proxy with a certificate in front of the WebSocket endpoint.

@MichaelMackus
Copy link

MichaelMackus commented Feb 5, 2021

Make it possible for node operators to attach a TLS certificate to their libp2p WebSocket server. I believe this can be done by adding a CLI option that passes a certificate.

I put that item here because it believe that it isn't super hard to implement.
However, it might be easier to just ask people to put a reverse proxy with a certificate in front of the WebSocket endpoint.

You could also do what js-libp2p does in their docs for the webrtc-star server, and provide a docker-compose file to automatically setup the reverse proxy. The nice thing is this way letsencrypt setup can be automated as well.

@expenses
Copy link

expenses commented Mar 1, 2021

However, it might be easier to just ask people to put a reverse proxy with a certificate in front of the WebSocket endpoint.

We're already doing this for parity nodes, so this is probably the way to go instead of modifying the client.

@tomaka
Copy link
Contributor Author

tomaka commented Apr 7, 2021

Since this issue has been opened, we realized that in the context of a browser extension, non-secure WebSockets worked.

Therefore, another thing that can be considered is that nodes that nodes all listen through the WebSocket protocol by default, unless for example they were started using --validator.

@stale
Copy link

stale bot commented Jul 7, 2021

Hey, is anyone still working on this? Due to the inactivity this issue has been automatically marked as stale. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the A5-stale label Jul 7, 2021
@tomaka
Copy link
Contributor Author

tomaka commented Jul 8, 2021

Issue still relevant and important.

@stale stale bot removed the A5-stale label Jul 8, 2021
@tomaka
Copy link
Contributor Author

tomaka commented Jan 20, 2022

cc libp2p/specs#220

@tomaka
Copy link
Contributor Author

tomaka commented Jan 20, 2022

ipfs/js-ipfs#611 seems like a big problem.

@tomaka
Copy link
Contributor Author

tomaka commented Aug 15, 2022

Progress is done here:
libp2p/rust-libp2p#2622
libp2p/specs#412

@tomaka
Copy link
Contributor Author

tomaka commented Nov 22, 2022

Would be closed by paritytech/substrate#12529

@melekes melekes linked a pull request Dec 14, 2022 that will close this issue
@altonen altonen transferred this issue from paritytech/substrate Aug 24, 2023
@the-right-joyce the-right-joyce added D3-involved Can be fixed by an expert coder with good knowledge of the codebase. and removed U2-some_time_soon labels Aug 25, 2023
@tomaka
Copy link
Contributor Author

tomaka commented Aug 28, 2023

I don't know what the involved and some_time_soon labels really mean, but this really should be done "some time soon". It's a very high priority change for light clients, and just because it's a difficult change shouldn't mean that it should be left on the side to rot.

As a reminder, light clients have an undisclosed vulnerability that can only be fixed by WebRTC.

I know that this has been waiting for years at this point, but just because it's been waiting for a long time doesn't mean that it should continue taking a long time.

@altonen
Copy link
Contributor

altonen commented Aug 28, 2023

I think the label regarding urgency has been removed but it's still a high-priority task for us

claravanstaden pushed a commit to Snowfork/polkadot-sdk that referenced this issue Dec 8, 2023
helin6 pushed a commit to boolnetwork/polkadot-sdk that referenced this issue Feb 5, 2024
…ch#547)

* Remove useless acccount

* Remove useless basic conversion

Co-authored-by: dmitrylavrenov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
D3-involved Can be fixed by an expert coder with good knowledge of the codebase.
Projects
Status: In Progress 🛠
Development

Successfully merging a pull request may close this issue.

6 participants