Keith Mukai Profile picture
Non-toxic #bitcoin maxi; Lead @SeedSigner dev; Bitcoin & Nostr FOSS dev; gymnastics coach; former English teacher. I will correct your shitty grammar.
Dec 17, 2022 9 tweets 4 min read
S9 rocket ready for takeoff!

Wanted to see if a $30 4" 195cfm fan would pull enough air through an S9 for it to run at 1100W (normal front/back fans removed).

Result: Nope, but sitting steady at 900W, 11.9Th/s.

@BraiinsMining @kaboomracks Why bother with this? The external fan is so freakin' quiet that it (plus a Noctua fan for the psu) makes an S9 totally viable as a space heater in any room.

Default S9 fans (set to ~1100W) are a bit worse than a loud bathroom exhaust. Not horrible, but not quiet.
Sep 19, 2022 10 tweets 4 min read
#ProofOfWork for @SeedSigner (funded by @HRF):

First, get caught up on what you've missed in the last few months: Throughout this MicroPython R&D I've had to figure out which dev boards to use and slowly start to appreciate what each has to offer.

I started documenting them here.

Sep 19, 2022 13 tweets 5 min read
MEGA recap of the last ~4 months for @SeedSigner:

* v0.5.x has been out since April. It's f'n awesome and still gaining more features.
* But the Raspi Zero is near-impossible to find.
* We must port to alternate hardware.
* Begin MicroPython R&D hell.

Strategy:
Focus on easily-sourced microcontrollers (MCUs) instead of Pi-like single-board computers (SBCs).

The Pi Zero was an amazing cheat to get @SeedSigner off the ground quickly, but an MCU always made more sense (e.g. waiting 45s for linux to load is ridiculous).
Feb 7, 2022 13 tweets 6 min read
#ProofOfWork for @SeedSigner Week 4:

v0.5.0 PSBT flow getting so close to a complete first draft!

Nothing is final, but we've figured out solutions for so many of the challenging UI and complex tech problems in this area.

Not final. Not perfect. But getting REALLY F'N GOOD! But first a side note: A ton of work went into this @SpecterWallet release.

You'll see me continue to contribute to Specter where I can. I am full-time SeedSigner, but guess how I spend my evenings and weekends? More coding!

I have no life, y'all.

Feb 7, 2022 5 tweets 2 min read
ALMOST through the hardest parts of @SeedSigner's PSBT review screens.

BIG breakthrough: realizing we can confirm change addrs much more easily than previously thought!

We can instantly provide assurances that single sig change addrs are legit. Multisig requires a 2nd step. "35c5d905: change #0" means:

* For the seed that we selected to sign this psbt (ID'ed by its fingerprint)...
* The addr from the psbt was confirmed to match the seed's first (#0) change addr.

This is undeniably my seed's correct change addr. My change is not being stolen.
Feb 6, 2022 5 tweets 2 min read
Experimenting with this @SeedSigner PSBT warning screen.

If your coordinator software gives you an evil PSBT that steals your change output, this would call that out.

But legit txs can obv be a full spend, too.

So too scary or confusing for noobs? Better wording ideas? Obv a noob could misconstrue "input value" with "OMG is it stealing my WHOLE WALLET?!!"

But I think noobs are unlikely to ever construct a tx that spends exactly a whole utxo (and so wouldn't see this warning) unless they're actually sweeping their whole wallet.
Feb 6, 2022 4 tweets 2 min read
Learning a lot more about what info @SeedSigner can pull out of a #Bitcoin PSBT.

What if you try to sign a PSBT w/the wrong seed? How do we detect that it is the wrong seed? Should we try to stop you or are there edge cases where it's better to let you try?

Live demo thus far! @SeedSigner IF it makes sense to still offer the "Sign PSBT" button on what looks like the wrong seed, how should that be indicated?

The added question mark isn't super helpful, but there isn't much room to work with either.
Jan 17, 2022 8 tweets 4 min read
Been collecting random easy-to-source metal plates to try to work out a super low budget, under-the-radar version of the awesome @SeedSigner SeedQR plates that @SeedMint21 has been testing.

My improvised versions obv won't be as nice nor as durable, though. These credit card-sized bottle openers (wha..., why?) make the best impression of the bunch. Thicker and studier than they look. Shiny, smooth, w/nice rounded edges.

No indication of what grade of stainless steel. Assume meh.

But only $1.25 each!

amazon.com/gp/product/B08…
Jan 16, 2022 4 tweets 2 min read
Basic demo of @SeedSigner experimental "breathing" caution box UI concept for dangerous screens.

But the real work is under-the-hood: a new reusable threading class for components with independent side loops. Unfortunately threaded code is REALLY HARD to get right.

I did not get it right.
(it "breathes" but nothing else!)

Simple bug I'll get resolved soon or showstopper that'll make me abandon this approach? Dunno. Welcome to the fun of real-time coding!
Jan 14, 2022 4 tweets 3 min read
I can no longer recommend the hammer headers for @SeedSigner builds.

The hammering jig cracked and then I did my best to improvise around it. Everything went way downhill from there.

I'm only going to solder the gpio headers on now. ImageImageImage Here was the beginning of the end. Cracked the thick hammer bar but was able to finish this one.

The next two (not on video) were total failures in multiple ways. The jig itself just has too much wobble in its vertical guides. And acrylic just isn't strong enough, apparently.
Sep 18, 2021 7 tweets 3 min read
I wanted to copy the fully-synced #Bitcoin blockchain data from my @getumbrel node to a new raspi that I'm setting up.

Quick 🧵on how to do it: Image * First you have to STOP the Umbrel services but keep its Pi running.

You want the Bitcoin Core data to be frozen in time so that it doesn't get out of sync with itself when you're copying (which will take a while).

In order to stop Umbrel...
Sep 18, 2021 7 tweets 3 min read
My original #Bitcoin Core node (from Nov 2019!) finally maxed out its 500GB ssd a few days ago.

Bought a 1TB and cloned the old drive.

Quick 🧵 on how to swap your SSD: I use @SpecterWallet so first I backed up my Specter data and Bitcoin Core's wallets dir using `scp` from my Macbook. `scp` uses the same login credentials as ssh.

(obv your directories on your Pi will vary)
Sep 17, 2021 6 tweets 3 min read
Compact @SeedSigner acrylic + zip tie v2 "case"! ImageImageImage This mini camera is $8 more than the standard one but is nice and compact.

I sandwiched the build with this $5 acrylic protector. But the screws are too short once you stuff the camera underneath it so had to resort to zip ties. ImageImage
Jul 30, 2021 8 tweets 6 min read
1/ So psyched to get the RHR shoutout today from @MartyBent and @ODELL!

Tons of fun stuff happening in @SeedSigner. Here's a quick walkthrough:

First, quickly generate a brand new seed w/high entropy via the onboard camera! (coming in the next release). RIP dice rolls. Image 2/ The full 720x480 image is run through SHA-256 to generate your 24-word mnemonic. The full image is never displayed (only the center crop). The image is never saved.

@SeedSigner is stateless so everything goes away when you turn it off. ImageImage
Nov 24, 2019 11 tweets 4 min read
1/ #Bitcoin advocates always say you should run your own full node but the arguments for why are often murky or esoteric ("because freedom!").

As I've taken the dive I'm seeing more and more substantive reasons. Not abstract. Not philosophical. Do X and you gain Y.

Thread: 2/ @ElectrumWallet requires a full node

- Manage your hardware wallets w/out handing all past & future tx info to Ledger Live, etc.
- Easily set up your own multisig wallets. No need for partial custodial services like Casa.
- Privacy-enhancing coin labeling & utxo selection.
Aug 8, 2019 20 tweets 6 min read
1/Why #bitcoin matters now.

Trump wants to look good for 2020. No surprise there. Strong economic numbers--especially GDP--are crucial.

So: trade war! Force a huge economy (China) to buy more of our products. Cranks up GDP. Yay us, right?!

Except China's fighting back. 2/China is devaluing their currency. Sounds bad for them, ya? So counter-intuitive.

A weaker Yuan makes it harder for China to import goods (they can't afford to buy other countries' stuff).

But also makes it cheaper for others to buy Chinese goods (our bucks go further).