Comments (12)
Yep. However, there are still one or more central servers ("root nodes") in that setup. I agree though; we could probably piggyback on the BitTorrent DHT:s.
from syncthing.
Have a look at ToxProject's DHT implementation as well - they seem to have figured out the private connection thing...
from syncthing.
Changing this to "won't fix" because I'm not convinced of the advantages.
from syncthing.
The lack of reliance on a centralised server is surely a massive advantage - what if the server goes down?
from syncthing.
@naught101 You still need a central server, or root node, how else does a client just starting up join the DHT?
Edit: in any case, while this is an obvious advantage for something like BitTorrent where you have hundreds or thousands of nodes, it's not clear to me that that applies here. A given cluster is composed of a handful of nodes. Dependence on a third party lookup server can be avoided by either giving some node a static address that can be configured on the others, or setting up a discovery server of your own somewhere trusted. If it was a real worry, syncthing could trivially be extended to handle multiple discovery servers returned by DNS.
from syncthing.
I think any node should be able to use multiple discovery servers and act as discovery server if configured to do so, and discovery servers should know about each other, this way there will be multiple discovery servers, helping speed up the network and keeping it working if one of them goes down.
I don't think it's important at the moment though
from syncthing.
@calmh you're right, it is necessary (I'm not very familiar with the system, I'm probably speaking out of turn, really), but my understanding is that with DHT the server would be under much less stress, as it is basically just acting as a starting point for the client to bootstrap themselves into the network, and after that, it doesn't need any contact with the client. I guess the server stores less info, which is potentially a good thing for privacy.
As fazo96 says, it's probably something that could be implemented later.
from syncthing.
@naught101 Yep, for sure the load is distributed. Currently, the load is negligible but this may be a relevant point in the future. Privacy wise I think the situation is about the same - the exposed info should be considered public, since anyone can query both the central server and the hypothetical DHT.
Anyway, I'm not discounting this feature, just pushing it until it becomes obviously necessary.
from syncthing.
Regarding this (old) issue, I think @calmh has a solid point about "until it's needed." I too would like increased decentralization, but it may well be premature, and the discovery server and relay pool server are themselves open source, which helps prevent "lock-in."
It also turns out there are beautifully presented usage statistics at https://data.syncthing.net/. Question: do the data start then, or is that just the viewable window? (I think it's all the data based on my reading of the code, but...) (0.10.0 release notes don't seem to mention adding the usage tracker.)
Also - I think it would be useful to see some reporting of the load on the various servers; then if us geeks see the load going up too much over time, we can get cracking on implementing DHT!
from syncthing.
Quick ping to mention that the central server is down at the moment, would a DHT have prevented downtime?
from syncthing.
Discovery is not down. We have 3 redundandt servers in 3 continents.
from syncthing.
My mistake, sorry.
from syncthing.
Related Issues (20)
- Panic "fatal error: runtime: mcall called on m->g0 stack" HOT 4
- Show the version on the web GUI page HOT 2
- Make address field in remote devices panel clickable to open administration GUI HOT 1
- Sync/Connection speed plummets when web UI is open on PC HOT 3
- Windows Listed Version Older Than Running Version HOT 2
- add run on mobile data / run on wifi options to pc HOT 2
- Syncthing cannot detect changes live in folder linked with junction on Windows
- Web GUI Refreshing Ad Eternum HOT 1
- LDAP - can't login if domain controller password is needed
- Expand Prometheus Metrics to state device/folder names
- meta.js is sent with the wrong MIME type HOT 6
- add exit on sync or execute on sync
- Device connection state metric HOT 6
- Connect devices with XMPP (and also Ad-Hoc commands!) HOT 6
- Data is too short, but why?
- Add local sync mode HOT 1
- Interface without JS (HTML and Gemini) HOT 1
- Creation date gone after sync HOT 1
- Include an option in the GUI to run Syncthing on startup HOT 1
- Sync reserved characters proposal HOT 9
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 syncthing.