From First Commit to Long-Term Support: My Bitcoin Open Source Journey

Share
From First Commit to Long-Term Support: My Bitcoin Open Source Journey

Written by Ansh Sharma

A year and a half ago, my idea of Bitcoin open source was mostly a Discord server I visited late at night. Today, I work on Braidpool, a decentralized mining pool, with long-term support from Btrust.

I didn’t have a plan that connected those two points. What I had was curiosity, a project I wanted to understand, and a willingness to keep contributing, even when there was no guarantee it would lead anywhere.

Through this article, I'll be giving a glimpse into how to get started in Bitcoin open source, drawing on my own journey over the past year and a half. Perhaps it will encourage someone to take their first step and, over time, make a lasting contribution to the Bitcoin community.

Where It Started

My interest began with cryptography. In my second or third year of university, I became fascinated by how a few lines of math could let strangers verify things without having to trust one another. Bitcoin was a place where those ideas were already working in the real world.

At the end of 2024, I joined the Bitshala community on Discord. For a while, I mostly listened. I attended classes, read discussions, and tried to follow conversations that were often well beyond what I understood.

That community introduced me to Summer of Bitcoin. By February 2025, I was ready to move from watching other people contribute to trying it myself.

Finding Braidpool

Of everything I was learning about Bitcoin, mining interested me most. How do pools work? How do miners communicate with them? And why does so much of the network’s hashrate end up coordinated by a small number of pool operators?

I started reading about earlier attempts at decentralized mining pools, looking at how they were designed and what had held them back. That search led me to Braidpool.

Braidpool is building a decentralized mining pool, where miners coordinate through a peer-to-peer protocol and record their shares in a directed acyclic graph, the "braid", instead of trusting a central operator to count work and pay them fairly. It was the exact problem I had been circling, and it was being built in the open.

I started small, reading the spec and the codebase, and wrote about the project on my blog in April 2025. A month later I went through the Summer of Bitcoin screening process, and that summer I joined Braidpool as a Summer of Bitcoin intern.

Learning by Building

There was a big gap between what I knew and what the project needed. The internship gave me a chance to work through that gap, one problem at a time.

My focus was building consensus functionality directly from the Braidpool spec. A big part of that meant letting go of older code: we discarded parts of the existing codebase and implemented IPC-based, deterministic block template fetching.

Testing that work meant getting beads, the units of work recorded in the braid, mined in practice. I dug into mining protocols and got test beads mined on a private signet and cpunet using Stratum V1.

By the end of the summer, we had working foundations for much of the system. Important pieces, including payouts and Braidpool’s difficulty adjustment, were still unfinished. But I understood the project much better, and I wanted to keep building.

When the Program Ended

The hardest part of the journey came right after the internship. The program ended, the stipend stopped, and nobody was waiting for my next pull request. I decided to keep going anyway.

From August through December 2025, I worked across the codebase. I contributed to the peer-to-peer networking stack and Initial Bead Download, the header-first process that lets a new node catch up with the braid. I also added SQLite persistence so nodes could restart without losing their state.

Alongside the coding, I spent a lot of time reading. I studied Meni Rosenfeld’s analysis of pooled mining rewards and compared payout models such as pay-per-share (PPS) and pay-per-last-N-shares (PPLNS). Questions about payouts led me into threshold signatures, FROST and ROAST, and then into topics such as BitVM, covenants, Utreexo, and zero-knowledge proofs.

Not everything I read turned into code. But it helped me understand the trade-offs behind the decisions we were making.

At the end of December, I put together a proposal for a Bitshala fellowship and sent it in, honestly not expecting much. Around the same time, I also took part in Chaincode Labs’ BOSS program.

Growing Through the Fellowship

Bitshala accepted my proposal. The fellowship brought more structure to my work: monthly milestones, a public roadmap, regular reviews, and mentors who challenged me to turn ideas into working code.

Over the following months, I worked on several parts of Braidpool:

  • Implemented a PPLNS payout structure with share accounting on every submission.
  • Led the Stratum V2 integration, adapting the SRI crates and committing Schnorr signatures through authority key management.
  • Cut the cohort-finding and extend algorithms in consensus from O(N²) to O(N), and added a benchmarks crate to catch regressions.
  • Built a TaskManager for supervised async tasks and restructured the P2P layer around a SwarmContext.
  • Profiled lock contention with perf, eBPF and flamegraphs, and narrowed the hot locks.
  • Built Docker and Kubernetes infrastructure, including Helm charts on ArtifactHub, and simulated a mesh of up to 30 nodes on minikube.
  • Load tested the node with up to 1,000 concurrent mining sessions using GNU Parallel and Apache JMeter.

Another important part of that period had less to do with my own code. I began reviewing pull requests from newer contributors and helping them get their first changes merged.

Maintainers had spent time helping me learn. Now I could do some of that for someone else. It also pushed me to understand the codebase more deeply: reviewing a change means understanding not just what it does, but how it fits into the rest of the system.

Long-Term Support from Btrust

In September 2026, about a year and a half after I started contributing, Btrust agreed to support my work on Braidpool for the long term.

The biggest thing that support gives me is time. I can plan around the project and stay focused on problems that take sustained work, rather than fitting them around everything else.

There is still plenty to do: developing a suitable difficulty adjustment algorithm for the braid, finishing the Stratum V2 integration, exploring a more lock-free architecture, and continuing research into threshold signatures for payouts.

That support also comes with a sense of responsibility. Mining centralization is a risk I care about, and Braidpool is one attempt to address it. I want to help take it from a system we are building and testing to one miners can use on mainnet.

What I Would Tell Someone Starting Today

People sometimes ask me how to get a Bitcoin grant. I understand the question, but I think a more useful starting point is: What can I contribute, and how can I keep getting better at it?

In my case, support followed the work. I spent time learning the project, taking on problems, and building relationships with the people around it before long-term funding became a possibility.

A few things made a real difference

  • Pick a project and give yourself time to understand it. Staying with one codebase helped me build context, take on harder problems, and earn trust.
  • Try before you ask, then ask clearly. Mentors and maintainers do not have infinite time. Explaining what you tried and where you got stuck makes it much easier for someone to help.
  • If you can, keep contributing after a program ends. Those months after Summer of Bitcoin helped me grow from an intern working toward a deadline into a contributor taking more ownership of the project.
  • Review other people's code. It is a great way to learn, ask better questions, and help the project move forward.
  • Let your work build a track record. When you apply for support, concrete contributions give you something meaningful to point to.

A year and a half ago I was reading other people's conversations in a Discord server. I still have a lot to learn, and Braidpool still has a long way to go. But if you are where I was, curious and unsure if you belong, start with one small contribution and keep showing up. That is really all I did, and the community will always support you if you are able to build genuine Proof of work (PoW).

Read more