5 ms·
The number of existing bootstrapping nodes do not solve the fundamental problem of current centralized bootstrapping. Not even if a virtual box costs $1 instead
by tzpardi 10y ago
The number of existing bootstrapping nodes do not solve the fundamental problem of current centralized bootstrapping. Not even if a virtual box costs $1 instead of $10. The issue is how a connecting node knows about other nodes in the network, and the current propagation of this information i.e. the DNS or IP of the seed nodes introduces centralization.
The closest and best solution for this problem was the early days idea of Bitcoin to use IRC to publish the listening seed information, but IRC still not decentralized, so IMHO decentralized bootstrapping is a real problem which we need to solve.
I kicked out a discussion for this at https://groups.google.com/forum/#!topic/streembit-dev/Xl2DpGpd-vw https://groups.google.com/forum/#!topic/streembit-dev/Xl2DpG...
- the8472 10y agoIt is decentralized in the sense that it is not centralized, i.e. there is no central entity in control managing entry into the network. The key point is that any node in a p2p network can be used to join the network, so any number of independent entities can publish lists of ways to join the network. Certainly, i would also love some multicast/anycast support on the IP level, but we don't have that, so making sure that you have many independent entry points into the network is the next best thing. Maybe you're thinking distributed, not decentralized? https://i.imgur.com/YsiiKeq.png https://i.imgur.com/YsiiKeq.png
- zzzcpan 10y agoI don't think bootstrapping per se is a problem. You only have to do it on first install and this allows for a simple solution to distribute bootstrapping in time, i.e. changing hardcoded bootstrapping data every N minutes, so new users could bootstrap from different nodes, than the users before them and so on. A bigger problem is how software is developed. The development itself is centralized, but even worse, traditional software development approaches cannot predict all future problems, but rely on fixing them to keep the software working, which means it must be delivered to users in a centralized way too.
- tzpardi 10y agoI am sorry, but centralized network bootstrapping is a very well known issue and unsolved problem of decentralized networks. http://ryandoyle.net/assets/papers/Distributed_Bootstrapping_of_P2P_Networks-RDoyle.pdf http://ryandoyle.net/assets/papers/Distributed_Bootstrapping... http://grothoff.org/christian/dasp2p.pdf http://grothoff.org/christian/dasp2p.pdf http://www.net.in.tum.de/fileadmin/TUM/NET/NET-2014-08-1/NET-2014-08-1_01.pdf http://www.net.in.tum.de/fileadmin/TUM/NET/NET-2014-08-1/NET... You say: "i.e. changing hardcoded bootstrapping data every N minutes, so new users could bootstrap from different nodes" The fundamental issue is, changing the data where? The node who wants to connect to the peer network, obviously cannot obtain the information from the peer network itself (as node is not connected), so obtain the information from where? Currently, all decentralized applications, including my system Streembit use the techniques of obtaining the information from a centralized source - which is the oxymoron of decentralization. If a web services or other centralized applications provide the new node with the list of existing listening/connected nodes then the solution is surely not decentralized. Government agencies or cyber-criminals only need to attack the hard coded, listening seed nodes and then the network is done and never can be back again until a new list of hardcoded seed nodes is published via the application source code or via other channels. As I said above, Satoshi's original idea to obtain the seed info from IRC was the closest to decentralization, but since IRC is centralized itself I am sure you can see how far that is from the a decentralized bootstrapping. We have the solutions on local decentralized networks such as mDNS and UDP multicasting which uses protocol level solutions, and we are investigating to solve the problem at Streembit with IPv6 anycasting. <<< A bigger problem is how software is developed. The development itself is centralized, but even worse >>> I disagree. Open source software can be forked and then you can adopt as much democratic development methods and governance as you want.
- zzzcpan 10y ago> The fundamental issue is, changing the data where? The node who wants to connect to the peer network, obviously cannot obtain the information from the peer network itself (as node is not connected), so obtain the information from where? Ok, you are assuming that the node already has the binary somehow. But that's not the case. In the real world we have to ship binaries to users. And this is where you can put your different bootstrapping data for different users. You can go a lot farther: let users generate a binary distribution of the software to share with each other and hardcode bootstrapping data there obtained from a running network by that user. > Open source software can be forked The majority of users are not going to do that, they just don't have the skills. At best there will be a few popular distributions of the same "decentralized" software, with majority of installations controlled by a few entities. At worst - just one centralized entity that controls every installation.