Hello bitcoin developers,
My name is Juan Alemán, and this is my first post to the mailing list. But I've been involved with Bitcoin since 2017. First only as a hard money investor, but later also as a developer, specially fascinated by this permanent medium. I hope this proposal can be appreciated by all perspectives as a pragmatic (maybe unorthodox, but timely) solution to move forward in agreement.
The changes in v30 defaults got my attention (similar to many of you), as they are completely opposite to what has historically been "standard" practice. A highly controversial change that surfaces the influence over default policy in the network, escalating to the point of a fork proposal.
First, it must be reminded that a fork should be unnecessary if defaults are simply reverted, while still allowing all policy possibilities.
After my second PR attempt was (also) closed (and I was blocked from the repo), I realized that the main issue here is social-political, not technical. It's about the powerful influence the "Official Reference Implementation" centralized node software repository has.
This needs a different kind of solution. I'd like to propose a high-level structural change to the "Official Bitcoin Repository": Separating consensus code from policy-based node distribution.
Problem Statement:
The "official" Bitcoin Core node repository (https://github.com/bitcoin/bitcoin) maintains consensus code while also defining default relay and mining policies, among all other node functionalities, in a single piece of software. This concentration of responsibilities leads to elevating this single repository to a "pedestal", thus a point of centralization, giving a few too much influence.
This kind of influence can be considered "harm" when abrupt default policy changes (like v30's shift toward permissive data carrying) disrupt "standard" network practices and its users.
However, the v30 release itself may have caused a point of no return, where "globally agreed standardness" is no longer a realistic expectation. Bitcoin's hidden limits are being revealed.
Proposal:
To address humans' flaws, I suggest reorganizing the repository structure to better safeguard against unwarranted political (policy) influence.
1. Rename and Refocus Core Repo:
Rename (github.com/)bitcoin/bitcoin to bitcoin/bitcoin-core. This repo would focus mainly on consensus rules, removing arbitrary or non-critical policies from its scope. It becomes a neutral base for ALL node implementations, emphasizing on hardening and testing consensus without policy distractions.
2. Introduce Node Client Repo(s):
Create a separate repository for the full-featured node client, starting with (github.com/)bitcoin/bitcoin-node as the foundational template. This would effectively serve as the direct replacement for the current bitcoin/bitcoin node software. This repository embeds the consensus-focused bitcoin-core (objective), while including "current core devs"-recommended default policies (subjective). Other clients would use this as their foundation, to customize policy and beyond. (Also, there is nothing preventing multiple bitcoin-node-<type> existing in parallel, best addressing default-bias concerns.)