pull down to refresh

Today hodlonaut posted a thread about events described in his second article about Bitcoin Core (#1481002 - the comments on this previous SN post are helpful, I think -- at least I found them helpful).

I'm posting hodlonaut's thread here partially because the article was quite long, the thread may be an easier way to access the subject, but also because as some commenters said when it was first posted on SN: politics affect every human project and it is good to cultivate the habit of trying to pay attention.

1/

In 2022, two developers put their name forward to become Bitcoin Core maintainers. Same project, same year, same process.

One was waved through in six days.

The other was worn down over five months and gave up.

The difference between them tells you how Core actually decides. A thread.

2/

July 2022. Gloria Zhao files the PR to add herself to Core's trusted keys. It draws substantive NACKs.

James O'Beirne, a co-founder of Bitcoin Optech, no outsider, lays out a specific worry: she'd be maintaining the same mempool area she was actively writing and proposing designs for. A built-in conflict.

3/

O'Beirne goes further.

He names a "virtuous circle of mutual ACKs" among a cohort of young maintainers tightly linked by funding and social ties, and asks for someone "more disjoint from the funding and social graph."

The concern is structural, not personal.

4/

It doesn't matter. The reservations are noted, then set aside as raised in the wrong venue.

The PR is merged in six days.

The conflict O'Beirne flagged is never resolved, just routed past. Speed: one week.

5/

August 2022. Vasil Dimov proposes himself as P2P maintainer. Dimov built Core's privacy networking from the ground up, BIP155, Tor v3, I2P.

The lead maintainer agrees on sight: "you've been the most active in P2P development for quite a while." Broad support follows.

6/

Then fanquake files a scope objection, a list of 18 PRs Dimov supposedly wasn't involved in.

Dimov answers it with data and offers to narrow his scope to exactly what fanquake asked.

fanquake's response? Nothing. No ACK, no NACK, no acknowledgment of the change he himself demanded. Just silence.

7/

That silence is the weapon. Zhao, now a maintainer, says nothing for five months despite being asked by name, repeatedly.

The PR can't move without a maintainer signing off, and the maintainers won't speak.

Dimov, later: "The silence was deafening. To me that meant disapproval, for reasons that cannot be publicly stated." and "it was being sabotaged and something was happening behind the scenes."

8/

Michael Folkson says out loud what the record shows:

"I remember the uproar when Luke didn't merge a PR adding a new BIP maintainer within a month of it being opened. He was hounded on IRC by certain individuals. Here it is fine to have a Bitcoin Core maintainer PR dangling for 5 months. Certain people should be ashamed of themselves."

9/

When contributors ask why it's stalled, the asking becomes the offense.

AJ Towns invokes the CIA's Simple Sabotage Field Manual, against the people requesting an answer, not the people withholding one.

Asked if he's calling Zhao and fanquake saboteurs, sipa replies: "wtf." The question hangs.
10/

The loop closes on itself. The maintainers won't explain their silence. When pressed, the explanation offered is that the people pressing are "aggressive."

The demand for accountability is named as the reason accountability can't be given.

You cannot break it from outside, because trying to is the cited proof you're the problem.

11/

January 2023, 148 days since Dimov's maintainer PR was opened.

Ava Chow flips to NACK, having "reached out to several contributors privately" to form it.

Zhao finally posts, framing a maintainer as someone who should override "any number of ACKs," and tells critics of Brink's influence to go found their own nonprofit.

Dimov closes his own PR: "Doing so feels like failing all the people who ACKed it, sorry."
12/

Put the two side by side.

Gloria's PR: NACKed on conflict grounds, merged in 6 days.

Dimov's PR: broadly supported, killed by 5 months of silence and private consultations no one disclosed.

Same process, run in opposite directions depending on who was asking.

13/

Chow's own NACK said the quiet part. Previous maintainer additions were "almost always foregone conclusions," the obvious choice.

Dimov was "the first time we have had a maintainer nominee who I did not think was an obvious choice."

Translation: the others were decided before the meeting. Dimov wasn't pre-approved, so he didn't pass.

14/ Dimov's read:

"Gloria's was pre-arranged, decided upfront, and the IRC meeting and PR discussion was just democracy theater."

Existing maintainers decide privately, then announce it as a nomination. He skipped that step. He just raised it in the open. That was the disqualifying move.

15/

None of this rests on a hidden source. Every quote is from the public GitHub threads and IRC logs, linked in the article.

The takeaway sits in the contrast: Core's real selection test isn't the merit of the PR, it's whether you were pre-approved in private before the public process began.

Zhao was. Dimov wasn't. That's the whole difference.

Jon Atack posted the following reply to this thread:

source

Antoine Ponsoit replied to a later thread of Atack's with this:

source

note: there is some weirdness here. Ponsoit's tweet is a response to a tweet that Atack deleted (before Ponsoit had responded) and so Ponsoit screenshotted it -- which is perhaps not a great way to do discussion. I am sure it is frustrating to write a long reply only to find the source has been deleted, but it is still best to respect people's wishes to delete something in the few minutes after they post it.

This thread follows the same pattern as other writing by Hodlonaut: state a bunch of facts, then generously sprinkle insinuations that are unrelated to the facts. I don’t understand why anyone gives his writing any credence.

Early on, the repository owner would just give people merge access to contributors that had been particularly active without any big fanfare.

  • The addition of Jonas Schnelli was announced on the mailing list on 2015-11-13 and the key addition PR opened and merged within 24h.
  • The addition of Marco Falke was announced on 2016-04-13. His key PR addition was merged one hour after the PR was opened on 2016-04-21.
  • Meshcollider’s key PR was merged in about 50h, after a brief IRC discussion.
  • Fanquake’s key PR was merged in less than 31h.
  • Hebasto’s key PR was merged in a little over 12 days.
  • Achow’s key PR was merged in 3.5 days. There was a brief discussion on IRC, but Ava was already running the wallet IRC meeting and doing the wallet maintainer work beforehand, and was immediately suggested by Mara van der Laan when Meshcollider resigned.
  • Glozow see below
  • Vasil see below
  • Russ Yanofsky was proposed by achow101 in the IRC meeting on 2023-05-04 and got something like 20 ACKs immediately. The key addition PR was merged after being open 30 hours on 2023-05-10 with a similar count of ACKs.
  • sedited was proposed by glozow in the IRC meeting on 2026-01-08 and got over 20 ACKs in the meeting. His PR was opened two hours later and merged less than 24h after the meeting with some 15 ACKs.

GlozowGlozow

Glozow’s addition was proposed by Fanquake in the 2022-06-30 IRC meeting. In the meeting, it got ACKs from Fanquake, Achow101, cfields, hebasto, instagibbs, dongcarl, Murch, sipa, b10c, Marco Falke, Martin Zumsande, Michael Folkson (for some reason?), and Luke quipped that she had no choice in becoming maintainer which I also interpret as support. Jeremy Rubin and bytes1440000 had some mild pushback in the IRC discussion that seemed mostly about procedure. The PR had some pushback from James O’Beirne, and Floppy (deleted account). Luke objected because others objected. Meanwhile, the PR had ACKs from Antoine Poinsot, Michael Folkson, Sjors, achow101, Bruno, Cory Fields, Niklas Gögge, Fanquake, hebasto, Marco Falke, 0xb10c, Pieter Wuille, Martin Zumsande, Wladimir, Josie, Antoine Riard, Jeremy Rubin, Will Clark, and myself. Glozow’s key PR was merged a little over six days after it was opened.

All of the above were nominations by existing maintainers to add another maintainer, when the maintainers felt that they could use help in a specific area or saw someone doing maintainer-like work in an area that they could use the help of an additional maintainer for. Each nomination had support from all current maintainers, broad support from contributors, and got processed in similar time frames. Hebasto was the outlier with the PR taking 12 days, all other PRs were processed faster than Gloria‘s.

VasilVasil

Vasil self-nominated in the IRC meeting on 2022-08-18. Vasil was experienced and qualified, but there was no recognized need at the time, and there were some differences of opinions on the role between Vasil and existing maintainers. He got ACKs from jarolrod, michaelfolkson, hebasto, achow101, Martin Zumsande, and a "makes sense" from Jon Atack. People referenced the process concerns from Gloria’s nomination, and suggested that further discussion should be had in a PR. A PR was opened on 2026-08-19. It got ACKs from Floppy (deleted account), Jon Atack, Zumsande, promag, Gleb Naumenko (later retracted), Marco Falke, Abubakar Nur Khalil (?), Antoine Riard, jarolrod, jamesob, aureleoules. It got pushback/NACKs from Fanquake, Niklas Gögge, yancyribbens, Jeremy Rubin, Pieter Wuille, Stickies, Achow101.

This nomination was different than previous ones, in that it was a self-nomination, was not motivated by the maintainers seeing a need for more help in a specific area, did not have support from all existing maintainers, and less support from current contributors, and was the only nomination to have pushback from several maintainers or former maintainers.

It took some time for this to be smoothed out, and it seems that there are still some strong feelings about it, but Vasil is still contributing to Bitcoin Core.

The PR being in limbo for such a long time is rightfully criticized, but Hodlonaut’s comparison of the two nominations is disingenuous.

reply

Thank you very much for taking the time to compile and share these details.

If I try to introspect why I reposted his thread, I would say that it is because he tells a compelling story. It is a selective story, as you have demonstrated -- but it is a story that an average bitcoiner otherwise has difficulty accessing.

While I know that most of the sources (except his interviews) are public, it is a challenging task to assemble them into a coherent story. And so when someone comes along who has done that, it catches the eye.

This is some of what I've appreciated about @schmidty's reports from brink and your blogposts from localhost. They do a good job of telling a story about development in Bitcoin.

It's clear that there is a perspective of bitcoiners that sees Core (or some chunk of Core developers) as a clique, and while I'm not sure what a good way to respond to such a perspective is, I don't think not giving it the time of day is it.

All the rest of us who are not familiar with the details of the day in and day out work of developers who contribute to Core will probably never understand the reality of the decisions people make. But not talking about it means many people will give credence to insinuations rather than waiting for facts.

It is possible that I should have been more critical in my framing of his post.

reply
1121 sats \ 0 replies \ @Murch 29 Jun

FWIW, I can see how it might sound compelling, but as @schmidty also mentions, responding to these fables takes a lot of time, and “if you argue with a fool, from a distance people can’t tell who is who”. Beyond just being selective in what evidence the thread shows, it is actively misrepresenting some things.

  • I listed the ACKs for the two nominations above, but also linked the chats and PRs for you to read yourself. The point that I was trying to make was that summarizing Gloria’s PR as "NACKed" and Vasil’s PR as "broadly supported" doesn’t match up with the facts and looks silly in comparison to the other nominations. I also provided evidence that calling Gloria’s PR rushed is similarly silly.
  • "Dimov built Core's privacy networking from the ground up" is an exaggeration. Tor support was added in 2016 with Bitcoin Core 0.12.0 by Mara van der Laan. She also authored BIP155 in 2019. It looks like Carl Dong had started implementing BIP155 before Vasil took that over and finished it. To be clear, Dimov did do quite some work there: beyond finishing work on BIP155, Dimov added I2P and CJDNS, and put in a lot of work for the new privatebroadcast feature. Just saying that Hodlonaut probably didn’t even check that claim before making it.
  • Regarding "prearranged" maintainer nominations: the regular contributors are a small group that works in the same workspace (the repository), but is loosely organized. People who are regularly active in the repo know who the most active contributors and reviewers are, but stretching out some feelers before nominating someone for maintainer is just common sense. Nominating people who then might not have support for it is prone to create disgruntlement.
reply
But not talking about it means many people will give credence to insinuations rather than waiting for facts.

I agree, but it is difficult since its brandolini's law in the era of LLM slop

reply
103 sats \ 1 reply \ @nout 26 Jun

Why is the pinned reply not zappable?

reply
32 sats \ 0 replies \ @k00b 26 Jun

Because the pin icon is where the zap icon would be.

You can zap if you visit it directly: #1515043

reply

There are always people that are perceived incompatible with some existing group. I've been one of those while I was what they call "ACK"d here.

Is it a conspiracy? Technically, yes. Everything from a multinational to a 2 person workgroup is. It's how groups work. I cannot recommend working in a group where you're not welcome though. It will take a lot of energy towards the wrong things, it will be nasty.

This is why its good that there are multiple projects. Multiple groups. Multiple softwares.

And a contribution without political power is still a contribution. Its still valuable. So don't death-stare on membership of some org.

reply
This is why its good that there are multiple projects. Multiple groups. Multiple softwares.

If this is the outcome of these last few years of yelling about spam, perhaps it is not so bad.

reply

No the yelling about spam is sociopathic divide and conquer. Raising an army.

There are tons of projects that are not divisive.

reply
reply

NGO salaried activists recruited from elite institutions tied to the intelligence apparatus

Not a coincidence

reply
1 sat \ 0 replies \ @evestacker 25 Jun -72 sats

Maintainer seat are political power.
When protected by weaponized silence, open source becomes theater and the solution is client diversity.