Okay so I showed up at Zone01 Kisumu this morning not really knowing what to expect. The email said 9 AM and I got there at like 8:45 because I was lowkey nervous.
First thing - free lunch is real. They mentioned it in the email but I wasn't sure if it was one of those "technically yes but good luck" situations. But yeah lunch happened.
Anyway the main thing we did today was setting up Bitcoin Core in regtest mode. I thought this was gonna be a nightmare because last time I tried installing anything blockchain related on my laptop it took me like 3 hours and I almost threw the whole machine out the window.
But honestly? It was smooth.
Here's what we did:
Step 1 - Make the directory
mkdir ~/.bitcoin
That's it. Hidden folder. Done.
Step 2 - Create the config file
I used VS Code because vim scares me outside of quick edits.
code ~/.bitcoin/bitcoin.conf
Step 3 - Paste the config settings
Just copied what the instructor put on the screen. regtest=1, server=1, daemon=1, plus a rpcuser and rpcpassword. Nothing complicated.
Step 4 - Start Bitcoin Core
bitcoind -regtest
And... nothing happens. That's actually correct lol. It runs in the background. I kept staring at my terminal like "did it crash?" but nope. That's just how daemon mode works.
Step 5 - Check if it's alive
bitcoin-cli -regtest --rpcwait getblockchaininfo
Got back a huge JSON response with "blocks": 0 and all that. Felt like a hacker even though I just copy pasted.
Then we did the exercises. Created two wallets (alice and bob because why not keep it simple). Generated addresses for both. Mined 101 blocks to alice's address and suddenly she had 50 BTC. Well, regtest BTC. But still.
I tried to send 10 BTC to bob and typed -regtst instead of -regtest like an idiot. Got an error. Fixed it. Transaction went through.
The fun part was inspecting the raw transaction. I kept trying to pass the address to getrawtransaction and getting errors because obviously that's not how it works. You need the TXID. Once I figured that out (and stopped trying to pass "$ALICE" like a variable name is gonna work), I could see all the details. The vin, vout, witness data, everything.
We also generated different address types - legacy, bech32, bech32m. The bech32m addresses look wild. bcrt1pruhsp4g66cca... yeah that's a lot of characters.
By the end of the day I had:
- A working regtest node
- Two wallets with balances
- Successfully sent transactions
- Explored blocks and mempool
- Generated 3 types of addresses
The whole setup from zero to mining blocks took maybe 20 minutes. Most of that was waiting for bitcoind to start the first time.
What I appreciated is that the instructors didn't just hand us commands to copy. They explained what each config setting does. regtest=1 means private test network. server=1 enables the RPC server so you can talk to Bitcoin Core from the command line. daemon=1 runs it in the background. Simple stuff but it makes sense now.
One thing I messed up - I had a typo on a blockhash when trying to inspect a block. Left a quote mark open or something. The error message was actually helpful for once. "blockhash must be of length 64" - okay fair enough.
The WhatsApp group is active. People were posting their errors and getting answers within minutes. The "killall bitcoind" command saved at least three people who somehow started multiple instances.
Tomorrow we're doing more. I think we get into the Lightning Network setup. But for day 1? I'm calling it a win. My laptop didn't catch fire. I didn't get stuck on config hell. And I actually understand what regtest mode is for now.
If you're doing this bootcamp and haven't set up yet - just follow the steps in order. Don't skip the config file. Use --rpcwait when you first check because bitcoind takes a second to wake up. And don't put quotes around your blockhash when you forget to close them like me.
That's it. Day 1 done. 4 more to go.
Posted from Kisumu after way too much chai
Top comments (0)