Thanks but you did not answer all the points and some of your
statements look wrong, like the global ideas behind this proposal
from my standpoint, which basically is inventing strange things
not reusing what is already proven to be working well and could
provide the same result, which at the end is not the expected one,
ie increasing full nodes, it sounds like a strange workaround to
prevent the centralization of the blockchain when pruning will
become the default
To answer some other comments in this thread, giving an incentive to run full nodes does not mean that someone setting up tomorrow 10K nodes will become rich and/or will be able to control the network, the later being not unlikely at all to happen in the current situation, the idea is more to motivate people that already have the resources to run full nodes, then we mix the concepts of optimizing the resources at no additional costs (and even decreasing costs since you get rewarded for the part that you have already paid but don't use) with the one of running nodes to protect its business
For example
https://gist.github.com/Ayms/aab6f8e08fef0792ab3448f542a826bf#proposal
is showing some concepts where nodes can't position themselves
where they like and are registered in the system by the others
(but forget the proof of something as written in this gist since I
think the rewards should not depend on usual miners) , so it
becomes quite difficult that they position themselves where they
like to possibly get the rewards, fake the system, freeride,
cheat, collude in pools or setup plenty of nodes
Comments below
On Tue, Apr 18, 2017 at 3:43 AM, Jonas Schnelli <dev@jonasschnelli.ch> wrote:
I know many torrent clients, and clients for protocols like Tor and i2p include the ability to set both speed limits and monthly bandwidth limits.
I worry about any type of CDN being a central point of failure.
Torrenting typically relies on a DHT, which is much easier to attack than Bitcoin's peer network.
I think the bitcoin p2p network is by significant margin the best we've got.
Yes, there is finger-print that happens if you have nodes pick an index. And the fingerprint gets a lot worse if you have a node pick multiple indexes.
Though, isn't it already required that nodes have some sort of IP address or hidden service domain? I want to say that the fingerprint created by picking an index is not a big deal, because it can be separated from activity like transaction relaying and mining. Though, I am not certain and perhaps it is a problem.
On Mon, Apr 17, 2017 at 6:14 AM, Aymeric Vitte via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org > wrote:
While I fully agree with the intent (increasing full nodes so a big miner waking up in a bad mood can't threaten the world any longer every day as it is now) I am not sure to get the interest of this proposal, because:
- it's probably not a good idea to encourage the home users to run full nodes, there are many people running servers far from their capacity that could easily run efficient full nodes
Running a full node is the only way to avoid needing to trust others. It's also how you make your opinion worthwhile for events like hard forks and UASFs. If decentralization is the primary motivation, it absolutely makes sense to encourage people to run their own full nodes. Without a full node, you are at the mercy of the governance decisions by those who do have full nodes. But if you have a full node, you can chose to opt-out of any upgrade (example: ethereum classic nodes).
- if someone can't allocate 100 GB today to run a full node, then we can't expect him to allocate more in the future
That's why I'm proposing something to decrease the storage requirements.
- this proposal is a kind of reinventing torrents, while limiting the number of connections to something not efficient at all, I don't see why something that is proven to be super efficient (torrents) would be needed to be reinvented, I am not saying that it should be used as the bittorrent network is doing but the concepts can be reused
It's different from torrents in that it uses specialized erasure coding to make sure that every block is always available, even if an adversary is running around targeting all the nodes with a particular piece.
- I don't get at all the concept of "archival" nodes since it's another useless step toward centralization
"archival" nodes are simply nodes with the full blockchain. Nobody can bootstrap on the network without them. Today, every bitcoin-core node is an archival node by default.
I think the only way to increase full nodes it to design an incentive for people to run them
The primary incentive is the sovereignty that it gives you. Running a Bitcoin full node gives you security and protection against political garbage that you can't get any other way. The network does currently depend on altruism to allow people to download the blockchain, but as long as we can keep the resource requirements of this altruism low, I think we can expect it to continue. This proposal attempts to keep those requirements low.
I believe that my proposal does meet all of the requirements listed by Maxwell.
Having a set of 8 random peers gives you a very high probability of being able to recover every single block. You would need to connect to at least 5 peers (and this is already >90% likely to be sufficient to recover every block), but if you cannot connect to 5 random peers your node is probably in trouble anyway. Highly parallel, high speed downloads are just as possible with small nodes as with archive nodes. It only takes a few bytes to indicate which part of the blockchain you have, and any 2 peers have a less than 1% chance of overlapping.
-- Zcash wallets made simple: https://github.com/Ayms/zcash-wallets Bitcoin wallets made simple: https://github.com/Ayms/bitcoin-wallets Get the torrent dynamic blocklist: http://peersm.com/getblocklist Check the 10 M passwords list: http://peersm.com/findmyass Anti-spies and private torrents, dynamic blocklist: http://torrent-live.org Peersm : http://www.peersm.com torrent-live: https://github.com/Ayms/torrent-live node-Tor : https://www.github.com/Ayms/node-Tor GitHub : https://www.github.com/Ayms