#13 - The Summer of Bitcoin Experience
An overview of bitcoin blockchain in action - mempool, chat with SOB 2022 intern Davidson Souza and best bitcoin jobs for freshers!
Hello Summer of Bitcoiner!
Thought of the Week
In the years 2015-2017, it was really very easy to get bitcoin payments done with minimum fees, since the market was not very competitive.
But in the recent years, the bitcoin payments market has seen a lot of growth.
Hence more congestion. This calls for a way to visualize when the blockchain is relatively full/empty to initiate transactions/test features etc.
Enter mempool; its a list of unconfirmed transactions in bitcoin blockchain.
A mempool explorer helps you to see the state of mempool and can be really helpful to estimate fees and transaction confirmation time.
In the above image you can see a queue of confirmed and unconfirmed blocks.
Mempool.space suggests the fees based on the state of the current mempool.
It also has graphs showing the accepted fee trends in past and live incoming transactions size.
The chart itself represents the current mempool. The colored layers represent transaction fee rates in the image below.
The pink at the bottom represents unconfirmed transactions in the mempool with a 1 - 2 sat/vB fee rate.
In the layer above that, you see unconfirmed transactions with a 2 - 3 sat/vB fee rate. The layer above that, 3 - 4 sat/vB. And so on and so forth.
With the above data, one can customize their fees accordingly. Once you’ve initiated or made the transaction, you can see its status using mempool.space. 😎
The above excerpt is from the blog - mempool.space, making smart decisions through mempool visualizer! by Priyansh Rastogi, Summer of Bitcoin 2021 intern.
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 Davidson Souza
We spoke with Davidson Souza, a 22-year-old university student from Instituto Federal de Educação, Ciência e Tecnologia do Sudeste de Minas Gerais, Brazil and a Summer of Bitcoin 2022 intern who contributed to Utreexo. We discuss his journey into bitcoin, his Summer of Bitcoin project, life as an open-source developer and 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: Davidson, welcome to the Summer of Bitcoin Experience.
DAVIDSON SOUZA: Thank you, it's an honor to be here.
SHANKARA: All right, let's start with your introduction. Can you tell us where you're from and what do you do?
SOUZA: So I'm from Brazil, and I just finished my graduation in computer science. And I have been kind of looking at bitcoin for a long time. I am passionate about this technology and all the implications. And last year, Lucas, who works at Lightning Labs, sent me a message that you should participate in Summer of Bitcoin because you want to get started with contributing to bitcoin open source. I didn’t know where to start and thought this might be a good pointer to start. And then I joined it and it was a very pleasant experience. So I am now working as a full time bitcoin developer. I have a grant from Vinteum, which is a nonprofit from Brazil that helps Latin American developers in bitcoin. And it's a magical experience!
SHANKARA: That's amazing. So Davidson, let's start with your first tryst with bitcoin. When was the first time you heard about it and what was your first impression?
SOUZA: I first heard about it a while ago, I think like 2014 or 2015. When the internet actually came where I live, a reliable internet connection. I ran a node and experimented, with all this Silk Road stuff and magic internet money. I was a teenager then I guess - this stuff just seemed cool. And I started playing with it but didn't quite grasp the implications of bitcoin at the time because I didn't have the intellectual need for this, but after some years, I guess 2017 and 2018, I started studying economics and especially Austrian economics. And I've found out about how bad the fiat system is. How unfair and how bad it is for humanity. My head just turned back to bitcoin because bitcoin isn't, at least to begin with, it isn't only about magic internet money and all the nice stuff I was looking for. But before that, it is a solution to one of the worst, if not the worst problem with humanity right now, which is the fiat system. So when I realized that, bitcoin simply didn't leave my mind. It was always on my mind and I was always thinking about the implications of this technology and how it's changing the world forever.
SHANKARA: Nice and when exactly was this, which year?
SOUZA: I think it was 2018.
SHANKARA: I see. Awesome. So then, you know, you started to look for opportunities in the space and you mentioned in the beginning that you were looking for; you were interested in this space and Lucas, who works at Lightning Labs, asked you to apply to the Summer of Bitcoin. But how did you get in touch with Lucas in the first place?
SOUZA: We had the Brazilian version of the seminars from Chaincode - Lucas and Bruno who’s now the Head of Education at Vinteum. They were organizing a small version, just a test version with some, just a few people and some people that already have interest in bitcoin, and it was a very nice experience. The group was really people with general interest and very knowledgeable people. And Lucas said, I don't like to say nice things about myself because it's always biased, but Lucas told me that I have a very good knowledge of bitcoin and it would be a waste if I didn't work with it. So since the first seminars, he was like, hey, you should apply to something like a company or you should start contributing with open source and Lucas, he's been always like, you should do something with bitcoin, you should start a career on this and when he sent me the Summer of Bitcoin link, I was like, I will apply but I don't think I will make it to the final rounds because so many people will look at it and there will always be good people andI don't think I can pass and when I made the finals and delivered my project, I was very happy and the sensation was really nice!
SHANKARA: Awesome. So let's talk about your experience with the Summer of Bitcoin; you applied, you obviously got through the selection process. Tell us about that journey, from applying to selecting the organization. What organization you worked with, what was the project idea?
SOUZA: When I applied, I received an email that we should look at podcasts by Robert Breedlove and join the discord. I introduced myself, and then I had some technical sessions, and I was generally surprised in a good way that the first session was about money. And I talked about this with some friends from the local bitcoin community. They're all really surprised because you can't understand bitcoin if you don't understand money, and you don't understand why money is broken. So the fact that the first thing you will look at is - what is money and why money is broken, is really interesting and fascinating. And after that, I started looking at organizations and see which projects should I apply for. It was really hard to take only three because there were a lot of cool projects. I could imagine having fun working on all of them. At the end of the day, I just picked the ones that I was most familiar and most interested in.
Now looking back, I think that my decision and the final results was the best path because now I work on this project full time. I had never participated in a program like Summer of Bitcoin before, so I had no idea how to write a big project proposal, but the website had some useful resources and some examples from Google Summer of Code. And I took those examples and wrote my project ideas, my project plans and I think I liked the result, and the text was nice. And I got selected, it was a surprise but I accepted it very happily and started doing my project. I liked the result of the project. I did everything the project required and even beyond that, and I learned a lot during this process. Calvin, who was my mentor was very helpful. He always gave me some very nice feedback. I really learned a lot about open-source and some skills that even if I don't work with open source in the future, those skills will be very helpful especially when it comes to teamwork and project management and other soft skills that you only can get while working with projects and people.
SHANKARA: Interesting, so you worked with Calvin - who was your mentor on Utreexo. Can you tell us what Utreexo is? And then maybe we can also talk about your specific project that you did during Summer of Bitcoin.
SOUZA: Utreexo is a dynamic hash accumulator to represent the UTXO set. So when you have a node, which is the backbone of the network, nodes have to store the current set of unspent transaction outputs because in bitcoin you have transaction outputs and you combine those outputs as inputs for transactions and you create new outputs of money that are always distributed into these outputs. So in order to validate a transaction you need the previous outputs, the outputs that are being spent. So you need something called the UTXO set. It's just a big database with all UTXOs. But this is a burden for nodes because it's a big set, you have to keep it closer to the CPU, when you get a block coming you do like thousands of requests to this database. So if you have a one terabyte external drive, my drive itself is large and it's really slow to validate because you have to do lots of IO. So instead of doing the actual search, we use a hash dynamic accumulator. So the accumulator represents the same data, the same set, but very compact. It's logarithmic to the size of the original set. So let's say you have 4 billion UTXOs, so you only need 32 hashes to represent it. And when a transaction comes in, when making this transaction, it sends you a proof that this output is in the set. So you receive proof, you verify, if the proof verifies against the accumulator you have, it means this UTXO exists. And it's not spent yet. With that you can build highly efficient nodes that don't require much gigabytes of data for storage, or fast disk because you don't have to do IO all the time.
SHANKARA: And your specific project during the summer? You want to talk about that?
SOUZA: I had to port the existing Go code to Rust because some people asked Calvin if they could try a Rust version, because UTXO is mainly written in Go. And some people went to Calvin and asked - Hey, can I have a Rust version? And they probably started doing it but they didn't quite make it and my project was to take the algorithms from Go and implement them in Rust.
SHANKARA: Nice, and so Rust is a very interesting and upcoming language. Did you already know how to program in Rust or was that something you picked up during the summer?
SOUZA: I knew how to program in Rust but not in the quality level that big open source projects require. So I had to learn a lot of more advanced concepts of the language and concepts of open-source project quality in general. But I knew from the beginning how to program in Rust.
SHANKARA: So you've mentioned Calvin a few times. Tell us how the experience was working with him during the summer.
SOUZA: It was very helpful. I think that having someone that you know is there to help you with your questions and give you feedback when you're starting, you will make some some basic mistakes and someone will say hey, this is not good, do that instead and and point you to the right direction - that is very helpful, especially when you don't have any prior experience working with open source. He's still very helpful as I'm working with Utreexo currently - he always has some nice comments. We have always had nice interactions.
SHANKARA: So you know after the summer ended, you continued to work on Utreexo and you mentioned early on that you're now working full time on bitcoin. Tell us more about what you're working on today.
SOUZA: After we ended, Lucas contacted me to apply for a grant from Vinteum. Of course I accepted it. Working full time on bitcoin is a dream. The grant said that I'm working with Utreexo but I can work on other stuff as well if I want. I looked at some ideas of other things to do but now I've more focused on the Utreexo side of things. I'm doing a proof of concept node using Utreexo. So it's a very simple node that you connect to some peers, download blocks and proofs and you use the advantage of Utreexo, not needing much disk so you use less than a gigabyte of disk for this node. It validates all transactions, all blocks, but it doesn't take much space. And this node also comes with an electrum server implemented in it. So if you run it, it will follow your wallet, index your transactions and you can connect to whatever wallets that supports electrum protocol in it.
So it's a nice way to demonstrate Utreexo for people. I already have a working node, you can take a wallet and connect with it, view balances, view all your transactions. And I am now trying to test it a little bit more and add some extra functionalities.
SHANKARA: Interesting! So I'm curious, what is life like as a full time open-source bitcoin developer?
SOUZA: Yes, it's very different from a job because I am my own manager, and I have to go after what I need to do. There is no one telling - Hey, you should do this and that - I have to go after what I have to do. I also make my own time and I have to have some discipline. Once you don't have it, you have to build some discipline by yourself and it's really hard at least for me because I am someone that - I lose my focus very easily, because if I see a text about something completely unrelated, because I'm very curious, if I see a text about something completely unrelated, I waste hours looking about the subject of text, so I have to build a discipline that if I see a text I have to leave it to night time or weekend. I have one meeting with the Utreexo guys and that's it. All the other time, I’m on by my own and say it's really weird because people here have this idea of a job where you go somewhere else and work there for a few hours and then come back home. But the challenge I see is that you have to have this research personality, you have to go after what you want to need to do and you also have to have some discipline. This was the hardest thing to learn when I started but now I think I am getting used to it.
SHANKARA: Alright. So on that note, what advice would you give for someone who you know, is beginning to build on bitcoin in the open source world?
SOUZA: This is very personal stuff. So everyone should have their own way to learn, but you have to realize that you are on your own. Even though there are helpful people out there that will help you but you are mostly on your own. So you have to learn how to look at a project and look at how we need this project and this and that and how to find your domain because no one will point you -Hey, you should do this. You come into the project and say hey, what about this, and people will give you feedback and say if it's a good idea if they don't think it's a good idea, they will tell you what, so there are helpful people, but they won't be like telling you, hey do this and that. So if you look at a project that you like, and you say - hey I want to contribute to this project. The best thing you should do is take the project and try to do something - like try to break it and show there is a problem or try to write helpful documentation. There is something that I see a lot of projects like you can learn by documenting because if you are documenting the code, you will read it and understand what's going on. And while you're reading, you can possibly find some bugs or some optimizations. So it's really go after it, don't expect people pointing directions for you.
SHANKARA: What are your favorite recommendations for those who are interested in learning about bitcoin?
SOUZA: I learned bitcoin, at least the technical part by doing. I want to understand how the P2P network works - I just made a small node - I wrote this before I joined university. So it's very nice to see code, but I learned how to do peer to peer network work. It's general for programming. In programming you learn by doing. So if you’re learning a specific concept about bitcoin, dig into it, take a weekend and say I will focus on this project. Like if you want to learn how mining works, write some software, do some math and get really deep into it because there is no easy way to learn something - especially in computer science.
SHANKARA: Finally, any tips for applicants to crack the Summer of Bitcoin internship program?
SOUZA: First of all, don't do as I did. It will not let you pass. I received a very specific response for one other project I applied for. The thing that made them choose someone else was because I didn’t do my proof-of-work. If you join Summer of Bitcoin, don't join with this negative mentality I had. If you like a project and you think you will apply to this project, then join & go write some PRs and actually solve issues. And even though you don't know, where the code is and stuff, you can always have some useful insights, some general insights about PRs and issues and you can always test. If it breaks, you say, it's broken. If it doesn't break - you say hey, it's not breaking my machine. And really do your proof of work because this is one of the criteria for being accepted in a project.
There are some helpful material on the site so you don't need to be too nervous about it. Just try to show that you have some knowledge about the project, that you are really willing to learn what you don't know and that you are really looking forward to it. And mostly have fun because if you really have liked the project you are working with, the chances of you being selected are high because you will show big interest. You have lots of interaction, which is positive for your approval. So having fun and using the spirit for learning the maximum you can is always a good advice.
SHANKARA: Alright Davidson, this is super awesome. Before we go in, where can people find you and learn more about your work?
SOUZA: I'm not a very social network person, so if you want to look at what I'm doing, you should definitely go to GitHub, which is my name, https://github.com/davidson-souza and I have my Utreexo stuff there. And I think about starting a blog, but haven't yet, so if I do, I will just put it in my GitHub so you can see and I have my twitter, but it's not my name. So it's very hard to find.
SHANKARA: Alright, we'll post those links to both your socials as well as GitHub in the show description. Davidson, thank you so much for joining us today and sharing about your Summer of Bitcoin experience.
SOUZA: Thank you for having me here. It's a pleasure. And good luck to everyone that's applying this year. And as I said, have fun and learn as much as you can! :)
JOBS IN BITCOIN
If you are a fresher straight out of college, here are a few exciting job postings we recommend:
Engineering:
NodeJS Engineer | Synonym | Remote | Apply
Mobile App Developer | Synonym | Remote | Apply
Back end / Full stack Engineer | Amber App | Remote | Apply
Software Engineer | Mash | Remote | Apply
Mobile developer(IOS and Android) | Easepay | Nigeria - Remote | Apply
Platform Engineer | Lightning Labs | Remote | Apply
Design:
Video Editor (Part-time) | Swan Bitcoin | Remote | Apply