This has to do with a concern voiced by Micah Zoltu that the community’s node implementations are not creating an optimal “node running experience”, potentially lowering the number of full nodes and leading to centralization risks.
He indicates that this may be the result of incentive mis-alignment for those developing implementations, leading to the sub-optimal prioritization.
Copied from a series of comments made by Micah Zoltu in the ethereum/research gitter channel:
ETH incentives to run the user agent
I’m concerned that Ethereum node build quality is becoming more and more of a problem that is going to lead to centralization. As a user, I have tried using both Geth and Parity, but both of them have their own set of problems that result in me spending an increasing amount of time dealing with them. I, in general, can’t just “run a node in the background” on my desktop, I have to constantly be doing operations works to keep the thing on. While this is personal experience, in speaking with other developers and users, the sentiment is generally the same. Running a full node is a bunch of headache. I am very rapidly finding myself considering switching away from running a full node to just using a centralized node provider like QuikNode or Infura.
I worry that this is going to lead to centralization risks over time as running a node is not about just having some free computing resources, but also being willing to dedicate time to operations work (along with knowing how to do that operations work.
I, unfortunately, don’t have a great solution for this problem though I do think the fact that there is no clear business model for client developers is certainly a big part of the problem. While the various clients do have funding, that funding isn’t predicated on building a competitive product that attracts users. Thus, similar to government work, there isn’t a strong incentive to build something that actively incites people to use it, you just have to build something that is “good enough to pass muster with the people funding you”.
Now don’t get me wrong, I do think that everyone working on clients right now cares greatly about Ethereum and wants the platform to succeed and they are trying to build something good.
However, due to the incentive mis-alignment I don’t believe any of the clients have, for example, a product manager that is doing user-research to find out what features users want (not just the dev team) and then prioritizing those features along with others. Instead, I believe both teams are run more like open source shops where the dev team fixes/builds what they want or think is most important, which may not align with what end-users actually want.
For example, as an end user what I want is to not have to do operations work. I care significantly less about getting a 3% CPU reduction or 100% disk utilization reduction (even though these things are useful to me, they don’t have as much impact as the thing “just working”).
I suspect (I could be wrong) that if there was a product manager doing user research, user testing, data analytics, etc. we would see that I’m not the only one that wants their Ethereum node to “just work”.
A number of developers and end-users I know have stopped running full nodes of their own for this reason (too much operational headache) and this trend worries me as currently (Proof of Work) Ethereum’s security model is dependent on decentralization of full nodes (as well as miners, but that is a separate topic).
License: CC0