#10 - The Summer of Bitcoin Experience
How to run Bitcoin Core - simplified, chat with SOB 2022 intern Ayush Anand, and best bitcoin jobs for freshers!
Hello Summer of Bitcoiner!
Below is a simplified way of dipping your feet into Bitcoin:
Install Bitcoin Core
Check if the signature is correct & crosscheck fingerprint
Start bitcoin core in the background on signet test network
Create a bitcoin wallet
Get some test bitcoins
Send bitcoins and play around!
This article by Summer of Bitcoin 2021 intern Priyansh Rastogi takes you through each of the steps outlined above. You will learn to install Bitcoin Core, use signet (a simulated network for bitcoin) and play with test bitcoins.
Are you starting out in bitcoin today and want to learn how to build apps on the bitcoin blockchain?
Build On L2 (BOL2) is a community-led effort by contributors and companies building on Core Lightning and the Liquid Network. It's a space to connect with bitcoin builders, product managers, designers and developers through events and mentorship programs and learn from experts building the future of bitcoin.
Completely free and accessible, each layer-2 protocol has a respective community platform that will host activities including:
Localized hackathons
Virtual networking events
Project bounties and other incentive programs
International builder tournaments
Career development programs
Mentorship and coaching
AMAs with leading developers
Visit buildonl2.com to join the community and learn how to build killer apps on bitcoin.
Interview with Ayush Anand
We spoke with Ayush Anand, a 20-year old university student of Indian Institute of Technology Jodhpur, India and a Summer of Bitcoin 2022 intern who contributed to bcoin. We discuss his Summer of Bitcoin journey, his work on implementing BIP 157/158 in bcoin, working with his mentor Matthew Zipkin and advice for young professionals on getting started with bitcoin.
Listen to the full conversation on Spotify here.
You can also watch a video of the conversation here.
Read the full transcript:
ADI SHANKARA: Ayush, welcome to the Summer of Bitcoin Experience, good to have you!
AYUSH ANAND: Thank you for inviting me, let me just introduce myself. I am a third-year student pursuing a Bachelor's degree in Computer Science at IIT Jodhpur.
I was an intern in Summer of Bitcoin 2022 and worked under the organization called ‘bcoin’ to implement the compact block filter service.
SHANKARA: We'll get into your experience with the Summer of Bitcoin in a bit, but tell us about your journey into bitcoin. When was the first time you heard about it? And what was your first impression?
ANAND: So I heard about bitcoin for the first time, I think somewhere around 2012. Back then I just thought it was some kind of digital currency which is similar to fiat, but just not on the paper. And later on, I came to know about the fact that most websites or the pages on the dark web actually use bitcoin as their currency because it kind of provides them with more anonymity compared to the fiat currency and is not moderated by the government. I already started reading extensively about the bitcoin ecosystem just last year, and I really loved the engineering that went into it. I think it's worth paying attention to because it's not moderated by a few central people and is very robust to inflation because of the cap of 21 million that it has on it. And this truly gives you what we call a free market. And it also showcases great engineering such as the consensus system which it has - that's how I first got into bitcoin.
SHANKARA: Nice! So coming to the Summer of Bitcoin, you said, you applied and worked with the bcoin organization. Can you tell us why you chose bcoin as an organization? And first of all, what does bcoin do?
ANAND: bcoin is basically an alternative implementation of Bitcoin Core. So bitcoin is basically an open-source repository and there is no organization behind it, but there is a certain standard reference, which we call Bitcoin Core. And then there are alternative implementations of the Bitcoin Core in different languages and bcoin is one such implementation of Bitcoin Core. It is in the JavaScript language, it was something I was very familiar with. And also, I wanted to see the basic principles of how bitcoin works from the bottom up. That's basically why I joined bcoin and I got to work on the project itself. It was very interesting.
SHANKARA: Let's talk more about your specific project that you worked on. Can you tell us what the project idea was? And what were its benefits to the bcoin project and also the overall bitcoin ecosystem?
ANAND: There are several kinds of nodes in the bitcoin ecosystem and a node is something which relays transactions which does all the accounting and enforces the rules of the system. And there is something called a full node which provides the maximum functionality that a node can provide. But the problem with a full node is that it has to store the entire blockchain which is roughly around 500 GB and you can't really have it on your mobile phone. So if you don't have a full node on your mobile phone and you want to use bitcoin on your mobile phone, then you basically have a wallet, which makes a connection to something known as a peer. Peer is basically just a node on another server.
And when you connect to the peer, you request it for certain data that you need in order to make that transaction or even just show the user what their transaction history has been. And if you request this data from your wallet, then your addresses will be compromised. Your privacy could be exposed because now that particular peer knows which addresses belong to you. So, they introduced something known as bloom filters to help solve this problem, but the BIP 157 and 158 are improvements over this bloom filters. Because bloom filters had the problem in which we could basically do a DOS (denial of service) attack on the peer. So now, the BIP 157 and 158 propose a kind of a protocol in which it's more robust, you cannot DOS the system and you can still conserve the privacy of the user. My project was to basically implement that in the bcoin repository. And this implementation helps the bitcoin ecosystem and bcoin because now users can get more privacy on their wallets.
SHANKARA: Interesting. Can you share the challenges that you came across during your project and how you overcame them.
ANAND: So firstly, there were differences between how Bitcoin Core was implemented and how bcoin was implemented. So the first part of the implementation happened to be just going through the codebase and understanding which part does what, and after that, we had to basically figure out which parts of the code we need to make the modifications. So the BIP is two parts. The first part is the actual algorithm for the cryptography that's involved. And the second part defines the protocols which are involved. So we had to understand what the protocols were, how to implement them on bcoin; there were specific implementation problems which we encountered, because the structure of bcoin was really different from Bitcoin Core.
But we eventually figured it out with the help of my mentor and that was the challenge we faced in implementing this.
SHANKARA: Tell us about your mentor and how was your experience working with him?
ANAND: My mentor for the project was Matthew Zipkin, he is currently the maintainer of bcoin repository and also the handshake repository, which is another project and he's really cool and he was very patient in explaining everything which I didn't understand or got wrong.
And we would basically have weekly meetings related to the project. So in one of those meetings, I actually remember showing this cool stuff like a full node which was running on Raspberry Pi. And yes, I would say he was a pretty great mentor and he was very patient with us.
SHANKARA: Awesome. So you mentioned earlier why you felt bitcoin was important, can you basically walk us through your understanding of bitcoin, before participating in Summer of Bitcoin and then how it changed over the course of the summer during internship.
ANAND: So I was particularly interested in the engineering aspect related to bitcoin. Before I had never really looked into how bitcoin prevents the problem of double spending, I just thought it was some kind of digital currency. So when I started understanding bitcoin through whitepaper of bitcoin and through the book Grokking Bitcoin by Kalle Rosenbaum, and I really love the engineering aspects, I really loved how the consensus rules were, how 51% attack works and these really helped me understand why bitcoin is non-inflationary, and why it is something worth paying attention to and it's important, something which I didn't really understand back then because I didn’t really have an understanding of why inflation is bad or how exactly the monetary system works.
SHANKARA: That's awesome. So let's talk about life after internship, what are you up to these days?
ANAND: I, in general, try to just keep up with what all is happening in the space of decentralization and one of the most interesting developments in that space is decentralized social media. So something like the Nostr protocol. There's this thing called Nostr which is basically a protocol that reduces centralization and creates censorship resistant social media platforms.
It has, kind of like relays which are similar to the bitcoin network, and it can relay blocks or the contents. And even if a particular relay bans some kind of content, the other relays can still continue to work. So this is something really exciting that I'm looking forward to and keeping up with what happens in the decentralization space.
SHANKARA: One thing to note here is that Nostr is a protocol that does not need a blockchain, it doesn't have any blockchain stuff. And yet, it is proving to be a very interesting protocol for decentralized social networks. So there's a lesson there where you know, to build something decentralized, you don't necessarily need a blockchain or even a token or some coin to be able to pull it off and Nostr is a great example of such a protocol.
So, maybe just wrapping things a bit - can you tell the folks who have joined and who will probably listen to this podcast later, how does one go about understanding bitcoin, if they are a beginner?
ANAND: I would recommend a beginner to start with the book Grokking Bitcoin by Kalle Rosenbaum. It is simple and is really an excellent book. It starts from scratch from the very basics of bitcoin and builds upon it. So when I was applying to the program, I went through this book, and I think that's pretty good for beginners. And after that, they could actually just go through the source code of the Bitcoin Core and try and make sense of what exactly each part of the code is doing.
SHANKARA: Sounds good. How would you advise folks as far as open-source development is concerned because open-source is very different than you know, working in a company/in a job.
ANAND: My advice for anyone who's trying to contribute to any open-source project is to first start by finding out which project they find interesting, and they want to contribute. Once that is done, then they should try setting the project upon their local development environment, so that they can explore it further. And once they have done the setup on their local development environment, then they should just go to the GitHub or wherever the code is hosted and look at what the development workflow is which involves looking at the past pull requests, or the commit messages. Like for example, understanding how the commit was structured, what commits need to be rebased and which commits don't need to be rebased - so they are on the same page with the community of that particular project. And after this, they could pick up small bugs (beginner-friendly) or they could add some test coverage to the repository. And once they have that basic test coverage and beginner-friendly bugs fix, they probably have a very good understanding of the code base and then they can actually start contributing to the major parts of the codebase.
SHANKARA: Awesome, that's pretty useful advice. Finally, what tips would you give for applicants who are applying to the Summer of Bitcoin this year and advice on succeeding during the internship program itself.
ANAND: The advice for that is basically the same as open-source development. So, I will just suggest they find the related bitcoin project which they are interested in and then just configure them in their local environment and then try adding some test coverage to it and after that they have to make a proposal for the project. For the proposal, there is a template which is shared on the website of Summer of Bitcoin, on how to write a good proposal. And, you know, have a very good understanding of how the codebase works, I think it's essential for writing a good project proposal. And so that's my advice for cracking the Summer of Bitcoin.
During the internship, I’d suggest talk to the mentor and understand what the requirements of this particular project are, what is the structure of the workflow that we are going to use, when there are meets just to show up for meets and that's basically my advice for succeeding in the internship.
SHANKARA: Hey Ayush, thank you so much for joining us today and sharing about your Summer of Bitcoin experience.
ANAND: Thank you!
JOBS IN BITCOIN
If you are a fresher straight out of college, here are a few exciting job postings we recommend:
Engineering:
Senior Salesforce Developer | Bitcoiner Jobs | Remote | Apply
NOSTR Dev | Zion | Austin, TX, USA (Remote) | Apply
Software Engineer, iOS (Native) | Blockstream | Europe OR Canada (Remote) | Apply
Lead Mobile Engineer | Galoy | Remote | Apply
Software Engineer & Remnant | plebeian.market | Remote | Apply
Mobile App Developer | Synonym | Remote | Apply
Bitcoin Developer | Ordx | Remote | Apply
NodeJS Engineer | Synonym | Remote | Apply
Systems Administrator | Riot Platforms, Inc. | Austin, TX, USA | Apply
Senior Rust Applications & Frameworks Engineer | Foundation | Remote | Apply
Rust and Node.js engineer | Mercury Wallet | Remote | Apply
Senior Front-End Engineer | Coinbits | Remote | Apply
Senior Back-End / Full-Stack Engineer | Coinbits | Remote | Apply
Full Stack Engineer | Lucent Labs | Austin, TX, USA (Remote) | Apply
Lightning Protocol Engineer | Lucent Labs | Austin, TX, USA (Remote) | Apply
Software Engineer | Mash | Remote | Apply
Senior Mobile Engineer | Swan Bitcoin | Remote | Apply
Lead Open-Source Developer | Saving Satoshi | Remote | Apply
Backend Engineer (protocol and API development, Lightning, Nostr) | Bookmark.org | Remote | Apply