A mostly self-managed scheme without exploding number spaces and half-decent quality control:
New ideas and proposals-in-development are in a draft/discussion state without any assigned or reserved BIP ordinal and remain as such until the following three conditions are true: 1 - author(s) consider the proposal final and want to promote it to a BIP. Purpose: quality ensured by reputation Risk: Expectations, Experience, Ego 2 - enough non-author interactions with the draft exist. This can be platform agnostic, with „interactions“ meaning comments, non-author contributors, likes, stars, threads,.. and „enough“ meaning flat thresholds, a function of various factors, a combination of the two or nothing specific at all. Purpose: quality ensured by many Risk: heated discussions on stupid topics and spam inflate interactions 3 - no other drafts exist that fulfill condition 1 and 2 and seek the ordinal „lastBIP#+1“. Purpose: avoiding coincidental concurrency issues and fights over esoteric numbers. Risk: resolutions may need moderation and can be tedious Draft promotions are done in batches at e.g. every quadruple-zero ending block number (xx0000) - a bit more often than once a quarter or more often at e.g every 2016 blocks (~2w) at difficulty adjustment. Fairly straightforward and simple methodology, but should still provide - in an ideal world - enough framework for proposers to self manage fully. In realistic worlds, we can use BIP maintainers to moderate and protect the process. Condition 2 „Interactions“ could be changed to „Enough non-authors consider proposal final“ to ensure more quality by enticing co-responsibility, but it’d need a new approval process, which is more annoying than soft-defining required levels of community engagement and relying on the authors for common sense. Best, A On 27.10.2023, at 00:12, Peter Todd via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote: On Tue, Oct 24, 2023 at 03:56:55PM -0700, Olaoluwa Osuntokun via bitcoin-dev wrote: > TL;DR: let's just use an automated system to assign BIP numbers, so we can > spend time on more impactful things. Yes, an easy way to do that is to use a mathematical function, like SHA256(<bip contents>) or Pubkey(<bip author controlled secret key>). Of course, that's also silly, as we might as well use URLs at that point... > IIUC, one the primary roles of the dedicated BIP maintainers is just to hand > out BIP numbers for documents. Supposedly with this privilege, the BIP > maintainer is able to tastefully assign related BIPs to consecutive numbers, > and also reserve certain BIP number ranges for broad categories, like 3xx > for p2p changes (just an example). > > To my knowledge, the methodology for such BIP number selection isn't > published anywhere, and is mostly arbitrary. As motioned in this thread, > some perceive this manual process as a gatekeeping mechanism, and often > ascribe favoritism as the reason why PR X got a number immediately, but PR Y > has waited N months w/o an answer. > > Every few years we go through an episode where someone is rightfully upset > that they haven't been assigned a BIP number after following the requisite > process. Most recently, another BIP maintainer was appointed, with the hope > that the second maintainer would help to alleviate some of the subjective > load of the position. Fast forward to this email thread, and it doesn't > seem like adding more BIP maintainers will actually help with the issue of > BIP number assignment. > > Instead, what if we just removed the subjective human element from the > process, and switched to using PR numbers to assign BIPs? Now instead of > attempting to track down a BIP maintainer at the end of a potentially > involved review+iteration period, PRs are assigned BIP numbers as soon as > they're opened and we have one less thing to bikeshed and gatekeep. > > One down side of this is that assuming the policy is adopted, we'll sorta > sky rocket the BIP number space. At the time of writing of this email, the > next PR number looks to be 1508. That doesn't seem like a big deal to me, > but we could offset that by some value, starting at the highest currently > manually assigned BIP number. BIP numbers would no longer always be > contiguous, but that's sort of already the case. > > There's also the matter of related BIPs, like the segwit series (BIPs 141, > 142, 143, 144, and 145). For these, we can use a suffix scheme to indicate > the BIP lineage. So if BIP 141 was the first PR, then BIP 142 was opened > later, the OP can declare the BIP 142 is BIP 141.2 or BIP 141-2. I don't > think it would be too difficult to find a workable scheme. At that point, why are we bothering with numbers at all? If BIP #'s aren't memorable, what is their purpose? Why not just let people publish ideas on their own web pages and figure out what we're going to call those ideas on a case-by-case basis. All this gets back to my original point: a functioning BIP system is *inherently* centralized and involves human gatekeepers who inevitably have to apply standards to approve BIPs. You can't avoid this as long as you want a BIP system. -- https://petertodd.org 'peter'[:-1]@petertodd.org _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev