- For this year’s Blockchain Commons internship, Christopher Allen had an uncommon “problem”: too many quality applications to turn down.
- Instead, he expanded the program to accommodate 7 interns where he usually only accepts one.
- With the internship drawing to a close, the interns have just about completed their projects – but that doesn’t mean they’re done contributing to Bitcoin’s open source landscape.
When Christopher Allen received applications for the 2020 Blockchain Commons internship, he had a problem: He had more applications than he had ever received in the internship’s history, and all from stellar applicants.
This was a good problem to have, of course, and Allen tackled it head-on by expanding the internship program. He typically only takes one intern under his tutelage, but this year he took on 7.
With so many extra hands, each intern had the opportunity to work on a project of his or her preference. Each of these projects went toward improving software in the Blockchain Commons repositories.
As the internship draws to a close, the interns’ contributions to free and open-source software (FOSS) are nearing completion and will soon be open to the public to use.
The Blockchain Commons: a hub for open-source software
Allen founded the Blockchain Commons in 2018 in a bid to keep Bitcoin’s development open and distributed.
In a past life, he helped pioneer the OpenSSL/TLS protocol, an encryption standard for securing data transmitted over the internet. Come 2014, the Heartbleed Bug compromised the OpenSSL implementation of the encryption standard, which handled 60% of the internet’s traffic at the time (and with it, trillions of dollars of online commerce).
The flaw was promptly patched. But Allen took that tribulation to heart and vowed to not allow a single point of failure to threaten the security of other software projects he works on.
Cue Allen’s discovery of Bitcoin and the founding of the Blockchain Commons. After a brief tenure at Blockstream, Allen founded his not-for-profit benefit organization to do his part to keep Bitcoin’s development distributed.
Now, after a summer of tinkering, his newest interns have enriched the codebase and Github libraries of some of the Blockchain Commons’ principal projects – including the addition of a project of their own design.
What these budding Bitcoin developers created
For their new group project, the interns began building Spotbit, a software for curating Tor-supported bitcoin (BTC) price feeds.
Led by Dartmouth senior Christian Murray with assistance from Nishit Shah, the modular, self-hosted feed draws pricing data from 100 cryptocurrency exchanges across various stablecoin and fiat trading pairs. Users can choose which exchanges they want their feed to tap into, which trading pairs to support and what data they want to store. If a user doesn’t want to host a Spotbit node, they can connect to others.
Besides Spotbit, each intern has an individual project which they work on alongside Allen to improve.
Gorazs Kovacic, a student from Hungary, for example, has been working on the Blockchain Commons’ code for the Lethe Kit. The DIY hardware wallet – so-named after the river of Greek mythology that cleansed the underworld’s denizens with amnesia of their past lives – is an air-gapped hardware wallet, meaning it cannot come in direct contact with an internet-connected device.
Instead it uses partially signed Bitcoin transactions (PSBTs) which allow users to sign a transaction on the device and then port that transaction to a computer using an SD card; this way, the private key needed to sign the transaction is never revealed to an internet-connected device.
Kovacic has been working on integrating animated QR codes and Shamir secret shares (a cryptographic technique for dividing a private key into multiple parts) into the Lethe kit.
Another intern, Gautham Ganesh Elango, is working on Gordian, a Bitcoin full-node implementation which runs over Tor.
The software operates similarly to Bitcoin node dashboards like My Node by offering its users a graphical user interface (GUI) for interacting with Bitcoin Core.
A GUI (an interface type we use everyday when commanding our Macs and PCs with iOs or Windows, to give one example) is the user-friendly, layman’s version of the command-line interface – the raw coding terminal that developers use to speak to their devices.
The project has a mobile version (Gordian Wallet) and a desktop version (GordianServer).
Elango, a freshman from Australia, is also building out an accounting tool which will allow Gordian users to import transaction and price data to Microsoft Excel for tax purposes.
For another project, Elango and fellow intern Javier Vargas are stepping into the role of instructor by fleshing out the Blockchain Commons’ documentation of RPC codes for managing a Bitcoin node from the command-line interface.
Almost all the tools the interns have been working on contribute to each others’ tech stacks (Spotbit, for example, provides price data for the Gordian Wallet). Showing that there’s more to open-source development than coding, cross-project collaboration is one of the internship’s key instructional points.
For Murray, this was indeed one of the internship’s primary lessons: that open-source development means creating sustainable tools that go beyond a solitary use case.
“This was my first introduction to open-source development, and definitely one of the big learning curves is learning to collaborate effectively and developing processes for yourself. A lot of the stuff I wrote before I got here was something I needed to work one time, but this is a lot more about something that is going to work all the time,” he told CoinDesk.
Murray said that he plans to continue to work on Bitcoin open-source software after the internship, whether professionally or otherwise. This was a common thread for the soon-to-be alumni of the Blockchain Commons.
Kovacic, who is already diving into other open-source repositories like Blockstream’s c-lightning, said the internship “reaffirmed my position that I want to work in the Bitcoin space.”
For his part, Elango agreed, saying the internship shook off his apprehension about approaching the seemingly daunting task of maintaining open-source projects.
“It’s definitely got me interested in Bitcoin open-source development. At first I was kind of intimidated by these large open-source projects. After the internship, I’ve become more comfortable with doing large contributions to these projects. Once I learn the basics of C++ I may start contributing to Bitcoin Core. And if not Bitcoin Core specifically, then some other open-source project,” he told CoinDesk.
Looking ahead to the next cohort of interns
With this internship coming to a close, Allen is offering another one that will begin in October and end in December. He stressed that the latest internship hopes to pull in more talent from Bitcoin-adjacent fields, not just the realm of computer science. This could mean students studying law, library science or other disciplines to help improve aspects of Blockchain Commons’ documentation.
When Allen asked his students what they would say to incoming interns, Murray answered in the spirit of what may be considered the internship’s core ethos: Ask plenty of questions and cooperate with others whenever possible.
“If I could give advice to anyone coming in it would be: don’t be afraid to ask for help when you need it. We have one group chat and I wanted to be professional and not spam the chat with questions. One time, I had spent several hours trying to fix this Github commit and couldn’t figure it out. But then Gorazs ended up giving me this one-line solution. If I had asked the question early, I would have saved a lot of time.”