Comments (14)
You are right and we are working on integrating an open-source TURN server to use with Zipcall :)
from decentralized-video-chat.
Hi, check out this #33
from decentralized-video-chat.
@JayWelsh this is because it is very common for WebRTC connections to fail because of firewall/NAT restrictions. A STUN server fixes this by resolving the IPs and relaying the traffic. Without it, many calls would fail to connect.
from decentralized-video-chat.
@Chaphasilor is the only reason why a centralised server is being used to conceal the IP address? Does the client-side application never gain knowledge of the IP address of the peer they are connecting to? If so, how is the data transfer decentralised or peer-to-peer? If the server ultimately returns the IP address of the peer to the frontend, then whether or not the IP address is in the shared link seems relatively inconsequential from a security perspective. I would like to think about how to increase the decentralisation of this application, perhaps using something like Ethereum, I appreciate you taking the time to respond. <3
from decentralized-video-chat.
from decentralized-video-chat.
Am I missing something, or does this video chat, by design, require a centralised server to handle things such as socket connections & message relaying? Is there a particular reason why it is that way? My apologies if this is a silly question.
from decentralized-video-chat.
@Chaphasilor Thanks for the reply, however, I am not talking about the STUN servers, I am talking about the server.js file which seems to be an additional centralised dependency beyond just the STUN servers (i.e. the clients do not seem to be handling the STUN server related activity directly, the server.js is doing significantly more than just delivering a JS bundle to the client). Am I missing something? :)
from decentralized-video-chat.
Ahh I see what you mean. This is so we can manage rooms. You couldn't find the other party without the server, because the stations simply don't know each other. And including a target IP or something similar in the shared link would be a security issue.
Normally, decentralized means that every station knows everything, or that you require access to all stations to know everything. Here the connection and data transfer is dezentralized, but connection management is handled by a central entity.
from decentralized-video-chat.
Honestly, those are questions for @ianramzy :)
from decentralized-video-chat.
@JayWelsh we could implement a lighterweight backend for just serving static files, but there needs to be what's called a 'signalling server' in the startup/connection of the two callers. I was thinking about using a firebase implementation as well. I have worked with blockchain in the past and its a pain to use, and there are a lot more mission-critical items to fix for now. :)
from decentralized-video-chat.
@ianramzy Thanks for the response, I am considering integrating this into a decentralised application which runs on the Ethereum Virtual Machine, but it would need to be decentralised in order for me to do that. The homepage of zipcall.io says "No Server Needed" but what is being said in this thread seems to be in contravention to that. I am happy to do the blockchain-related work, I don't find it to be a pain and am quite comfortable using Ethereum. Firebase would definitely not be the right direction to head in if one intends to call this decentralised. Is there any reason why the creator of the call can not also play the role of being the "signalling server" from within the browser? :)
from decentralized-video-chat.
Thanks @ianramzy , will take a look into it.
from decentralized-video-chat.
@JayWelsh any progress? :)
If yes, you could open a PR or a separate issue!
from decentralized-video-chat.
Decentralized webrtc p2p network using kademlia
http://www.scs.stanford.edu/20sp-cs244b/projects/WebRTC%20P2P%20network.pdf
There are already lots of implementation of kademlia which you use it for signaling on a p2p network according to this paper.
I don't think that is a big issue to be solved and does not contribute much in terms of decentralization.
There is always stun/turn servers that are heavily centralized which is the main part of webrtc based application used for address lookup and transfer of media.
from decentralized-video-chat.
Related Issues (20)
- Unable To Build (npm run build) HOT 25
- Simultaneous Conected HOT 1
- Features Request : Is it possible to record the video streams in each room as separate folder? HOT 11
- npm start doesnt work if i make any changes in the html files/any other files HOT 6
- Unable to connect to the same room HOT 7
- Video Camera not opening in live server HOT 1
- Webcam video not in proper resolution HOT 1
- Cannot GET error HOT 5
- webcam is not opening on live server HOT 1
- Call recording HOT 4
- Empty messages being sent in the chat HOT 1
- Can not call if custom setup for use case: user A have camera, but user B do not have camera HOT 1
- This project is currently inactive HOT 6
- username is required
- One two weeks ooms HOT 1
- Unable to install on CentOS 7 HOT 3
- Vlog
- How soon until group calls?
- Collab Suggestion For Metaverse Project.. HOT 5
- Cannot see the others' screen if I don't have a camera
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from decentralized-video-chat.