Skip to content

Bitcoin Developer Education

CONGRADUATIONS to Myself! and my inaugural Pathways Cohort Members!!!

Recap

This year, I've been fortunate enough to enter Btrust Builders learning Pathways to Bitcoin development. Q1 was definitely an absolute whirlwind of info and a real test for me in managing my time and applying my Computer Science knowledge in new in depth ways.

Btrust Builders Pathway 05 BOSS Cohort

The end of December I renewed my attempt at grappling with the Bitcoin codebase. The tasks to join the cohort required: a review of the project documentation; building the Bitcoin Core project from source; combing through the Python test suite and making ONLY one test fail. This task just 'bout made me cry more than once and it was an honest preview of the structure of the course and the nature of Open Source Development. You have to put in work, be proactive in gathering resources and reaching out for help, and having the Grit to Grind to the Solution.

Even though I honestly expected something a bit more hands-on at the outset, this was a welcome challenge to drive my experience. The asynchronous learning experience gave us access to mentors, learning materials and resources that you can consult. You're expected to do the work of engaging with any and all relevant materials, catching yourself up and then engaging mentors with informed positions.

This cohort continued for 3 months, winding down at the end of March. They really setup a series of challenges for us to tackle and work through 1-by-1. With the "Top Performers" being those who crossed the finish line first.

Some of the projects from this cohort included:

  1. Bitcoin CLI RPC

    Using the Bitcoin-cli command tool that comes with Bitcoin Core, create a series of increasingly difficult bash scripts to solve scenarios around Bitcoin transactions and reading blockchain information.

  2. Signet Wallet

    Using Python, C++, Rust, or any language, build the functionality of a signet (test network) Bitcoin Wallet such as recovering the current balance for a Bitcoin wallet and sending MultiSig transactions.

  3. Warnet

    In teams, simulate cyberwarfare defense and attack strategies on a Bitcoin test network.

  4. Lightning RPC

    Using bitcoind and lnd, learn and execute the basic functions of a Lightning node.

  5. Lightning Router

    Understand how Lightning nodes route transactions and calculate fees made when making payments.

Btrust Builders Pathway 02 Learn Bitcoin from the Command Line

This class was an INTENSE 6 weeks that started not long after the test servers from our BOSS cohort spun down.

Each week, we had a few more chapter from Learning Bitcoin from the Command-Line and were given a repo of exercises to test our understanding of the material.

Some key topics that we covered and worked on from the book's first 13 Chapters:

  • Building/Installing Bitcoin Core

  • Bash Scripting

  • Hexadecimal

  • Bitcoin Keys

  • Bitcoin Block and Transaction Structure and Protocol

  • Hashing Algorithms: SHA256, RIPEMD160, Hash160

  • Bitcoin Node RPC Functions and Bitcoin-CLI Commands

  • Additional Bash CLI Commands

  • Creating, Sending, and Managing Transactions

  • MultiSig Transactions

  • Locking and Unlocking Transactions

  • Hardware Wallets

  • Bitcoin Script

Technical Takeaways and Next Steps

💡Building Puzzles and Scavenger Hunts to Unlock Transactions 💡

Similar to the story of Ready Player One, Bitcoin enables anyone to construct a Cryptographic Scavenger Hunt, in which the first person to successfully come up with the correct answers and correctly submit them, in a valid transaction to the Bitcoin network, wins the treasure. Properly setting up such transactions and a game in which this can be explored was a lightbulb moment as it showed me the how-to behind this old idea.

Continuing Education

I've been planning a series of programming classes that I believe can serve my immediate area and the people I can reach online. Further access and mentorship to developers in this space is deeply needed to continue growing Bitcoin adoption and usage throughout the world. In addition to lifting as I climb, I have a few endeavors I'd like to tackle as I complete my reading of Learning Bitcoin from the Command-Line. The final chapters show that aditional security concerns and deeper programmatic use of Bitcoin in languages like C are pretty exciting as I've been learning C (and Zig) in my spare time as well.

I also have Jimmy Song's Programming Bitcoin at the ready for my next read. The creation of a Bitcoin library interests me, now that I've had the exposure of building a few programs from Btrust's pathway's this year.

Contributing to the Bitcoin Open-Source Eco-System

Having clawed my way to Level 2/3 of Bitcoin Education, as laid out by the Bitcoin Core developers themselves, I am much more confident in building useful and impactful Bitcoin software and materials.

In fact, a TA is assisting me in the development of a new app, tentatively titled "Finance Genius". This app will incorporate AI to review your financial habits, provide advise and answer questions you may have. It will also incorporate a Bitcoin Wallet that you can use as your AI advised account. Deeper knowledge and guidance on how to use Bitcoin as a Savings vehicle, amongst other fiat monetary technology would also be things you can get quick feedback on from the AI model.

Educational Takeaways

For Students
  • Engage with Material

You will likely not do much with the material or utilize it to its fullest potential unless you actively dive into your education and seek meaning and understanding. Many of us have surely had phases of life where we passively engaged with our education. At some point, you have to get your lesson and seek your desired mastery and understanding to ultimately reach whatever goal it is you have for taking the class and ultimately your life.

  • Practice

As you think through what you're absorbing through lectures, discussions, readings, etc. You'll have to apply it in some form or fashion. Hopefully your class will include plenty of examples of what that looks like, but you'll have to get your reps in utilizing and communicating the ideas that you're learning.

  • Meet/Discuss/Assist

Check in with your classmates. Check in with your educators. Check in with your self! In each of these interactions, you can be helped or even help someone else. The magic of helping others is that your own understanding is going to solidify as you're getting in more reps by communicating your understanding and relating it to someone else so that they also understand the subject. Checking in with yourself, and your God, will keep you on track to succeed and fortify you against challenges that come up.

  • Keep Going and Try It Again

Don't give up. Keep trying. It really can be hard, because life is ALWAYS lifing, but you got this.

For Educators
  • Free/Open-Source Material and Info

Utilizing freely available material, you realize the real thing you provide in classroom is going to be personal assistance and guidance for each student. More onus is placed on students to Study, Work, and Consult educators when blockers arise.

  • Open Communication and Availability

Of course, being Present and available during the day is crucial to the learning of your students. Assist students in blocking issues and provide additional context to help fill in any gaps in understanding they may have. But don't do the work for them. I'm personally a fan of Showing and Telling my students the building blocks and how to use them in solving known problems, preparing them with the tools to solve unknown problems in the future.

  • Promote Students to Lead and Engage

This strategy specifies and rewards good behavior in students. This approach to classroom management also greatly increases student agency and involvement. It does slightly ease things on the teacher, but a close eye on how the students are engaging and stepping in if need be are still a requirement.