pull down to refresh
in terms of clients, Satoshi literally said that, yes.
I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network. The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint.
Wow. I stand corrected. So let me ask you. What's the benefit of running your own mempool then?
I stand corrected.
Why would you care to listen to what Satoshi in 2010 said though? It was written in a time when Satoshi was BDFL or, in retrospect, BDFAW. Now, there are politics. Like you said yourself, this is important to many people, especially those that are lost in a forest of unassignable merit to ideas because it's too complex.
What's the benefit of running your own mempool then?
Diversity. IMHO very important. Just because I found you the fact and the literal text doesn't mean I agree with it. In fact, I think it is not of these times and outdated. The best thing that can happen is more implementations. Maybe forks of Core, like Jimmy & co said they were working on, and preferably also others.
#noheroes
does the fundamental method of how Bitcoin works changed since Satoshi said this? it still needs a global consensus via lockstep operations.
did we not just have a menace “diverse” client like knots fork off the network? this will happen again and again as long as we keep looking for “client diversity”.
what is different now than in 2010 when Satoshi wrote this?
I personally believe this advice to be evergreen, and every single time it’s the same result.
sure, governance always changes in a project because it is tied to its people interacting with it. Conways law: “organizations design systems that mirror their communication structures”.
but I am talking about distributed systems and global consensus, an emergent property of software. It’s gotta be the same, or the system breaks. This is always going to be true.
What political (not technical) operators want is multiple clients so they can subvert the apparent failings in the governance model. It’s as sensible as trying to control the laws physics with the laws of man.
I don't think I'm a political operator, yet I want to have multiple clients, and in my own naive self reflection, I want it to protect against political operators.
Bitcoin Core is a project. It has a human organization that manages it and there are privileges. Yesterday, privileges got revoked in that org for one of its members (I'm withholding my opinion on whether that was a good or bad move, because I didn't inspect all the evidence.) Earlier, other privileges were also revoked, like the privilege to comment on pull requests and issues.
Under these circumstances, no matter if the decisions are right or wrong, there must be a hedge against potential abuse of power. There undeniably is power. I do not grant the admins of github.com/bitcoin power over my sats, and thus, a second implementation, or a copy of the first one, maintained by someone else, must be possible. If this is fundamentally impossible, then I am a slave to an opaque organization and that is unacceptable, for me. It means I am captured and I didn't go through all this trouble to get captured.
Luckily, per the license I am granted the right to fork the code and maintain it myself, or change it in any way I want, and so are you, and everyone else. However, since Bitcoin's core protocol requires 100% agreement, there are caveats and it means that running anything other than what the majority runs must be ran with great care. And a plan what to do when consensus breaks. If you don't have that plan, don't run an alternative implementation, or at least something that didn't change the code in src/consensus, which is a great refactor that took 10 years to realize, thus far.
why would a rational actor ever take the risk -- needing a plan when the consensus breaks, having to make special preparations in order to run an alternative client?
One is only making work for themselves, and introducing a mitigable risk.
This work is not proof of work or good work. Is this something that we should be pushing to the masses?
I accept that you can take the bitcoin client and make your own client, and if you have the skills to do so, this is a worthwhile educational activity. For many years, folks would do exactly this and launch alt-coins. Luke-Jr learned a lot about the protocol from making Knots. But it wasn't created for educational purposes, it was created so he could influence and manipulate bitcoin.
And you have to ask yourself why btcd/btcsuite was created also. It was created by alt-coiners, who wanted to influence Bitcoin. They eventually moved their ideas to an alt-coin. I see a pattern here.
Client Diversity is a undesirable property in a distributed system that existentially relies on lock-step behavior. Client Diversity has always been used as an argument for individuals and small groups to attempt to subvert the main project for their own agenda. We saw it here, we saw it in Ethereum, we saw it in other alt-coin projects.
The menace quote came up a lot back when btcd had the bug that caused a chunk of the lightning network to crash. And then there are the people who say that we all need to match the reference client "bug for bug." I can see the merit of that approach, but I'm still not convinced that the risk of some portion of nodes crashing isn't better than the risk of a single implementation.
Also, Satoshi didn't envision this grant oriented, centralized governance model, correct? He saw it as more of a decentralized, community driven model?
Hm no. I think the community driven ideas came most vocally from Amir, and were also carried and ultimately implemented by laanwj.
To me it went from:
Satoshi owning it -> Gavin ruling it like a king -> laanwj eradicating all centralized leadership. The community drive without gatekeepers is only possible since the lead maintainer stepped down after a long process of making sure no leader is needed.
one could use that mempool to find candidate transactions to mine in blocks?
we didn’t solve the Byzantine generals problem for peace :-)
the exact quote is:
“I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network. The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint."
Wow. I have to look into this further.
We all have to? You mean like in the military? That's what Satoshi wanted?