SatsAndSports's avatar
SatsAndSports
npub1zthq...xm56
Into bitcoin, specifically cashu. When I'm not working in the fiat mines, I'm into cycling and camping
SatsAndSports's avatar
SatsAndSports 1 month ago
So happy that my clanker uses printfs everywhere, unlike all that complicated technology that Big Debugger tries to push image
SatsAndSports's avatar
SatsAndSports 1 month ago
The source for Claude Code was accidentally released Now we have proof that smaller codebases are always the best ๐Ÿ˜€ #OpenCode4EVER image
SatsAndSports's avatar
SatsAndSports 1 month ago
My next step in the cashu spilman channel will be a 'client proxy' and a 'server proxy'. The server proxy will sit in front of typical services like Nostr relays or Blossom, but they will enforce payment and will raise 402 errors if the payment is missing Similarly, the client proxy will run on your device to insert the payment into the request before it's send to the server Blossom seems like a good place to start, to charge for uploading; I checked a few details about the protocol today, BUD-02 allows to upload to one server (the server proxy) where the server proxy will 'redirect' the client to the *real* Blossom server for future reading, and I think that typical Nostr clients will 'do the right thing' when they are behind the proxy It should be easy for us to extend the functionality of this 'server proxy' over time. Nostr and Blossom today, but it could wrap other things in future
SatsAndSports's avatar
SatsAndSports 1 month ago
A tiny Cashu Spilman channel update; I should make these more often: While the server side (i.e. payment receiver) code is in a reasonable state for now, in terms of flexibility and a clear state machine, I'm now catching up with a similar approach on the client side Just today, I'm adding an 'Opening' state to the client, just before 'Open'. The client opens a channel by creating a 'funding token' with the mint, a token which is in a 2-of-2 multisig very similar to a Lightning channel. If the swap (or melt) which creates that fails (or *appears* to fail, from the client's point of view), then the client should probably try again or use NUT-09 to get the response. So I'm implementing and testing that now The code is now a library which depends on the CDK, i.e. no longer a (disorganized!) fork of the CDK:
SatsAndSports's avatar
SatsAndSports 1 month ago
After big code changes, ask your agent if there were any surprises while it was working. I always find it interesting; sometimes it raises important details that it otherwise wouldn't have told me about Ask it what changed and what didn't. If you think that a particular task is a conventional refactor of a particular module and it shouldn't affect any tests or any other modules, it's good to verify this afterwards
SatsAndSports's avatar
SatsAndSports 1 month ago
In Marmot, I think that a bad actor could "retrospectively" fork the group by taking an old state of the group chat and forking it (sending a different message, adding/removing a user) and then add an old timestamp and sign it before broadcasting it today Clients would then "reorg" on top of this new history, as the timestamps of the nostr events are used as the "source of truth" I guess the point I'm making, as others have pointed out, is that timestamps in nostr shouldn't be trusted
SatsAndSports's avatar
SatsAndSports 1 month ago
To keep using your Claude subscription in OpenCode #OpenCode4ever image
SatsAndSports's avatar
SatsAndSports 1 month ago
"OpenClaw containerization failed. Dr. Freeman, report to the coastline immediately."
SatsAndSports's avatar
SatsAndSports 1 month ago
Having fun setting up slightly better containerization of my dev environment Using 'bwrap' (bubblewrap) so the my dev user has very little awareness of the rest of the machine. For example, it can't see all the processes that are running (just it's own processes) Next, I'll set up a proxy on localhost to forward my LLM requests, so that I don't need to share my API key with this dev user. Eventually, I'll extend that proxy to process Cashu channel payments, to pay myself bitcoin and stress test that system. I haven't tried them yet, but apparently 'cage' and 'weston' are good ways to allow that dev user to open a window on the display of my normal user I wish I'd done this earlier, and I hope somebody hasn't already hacked me by getting my clanker to run exploit code! (I'm kinda tempted to get a new laptop, to be very strict about what runs on it, and from there reset all my important passwords)
SatsAndSports's avatar
SatsAndSports 1 month ago
Thanks to AI, I'm starting loads of new projects. I guess that's the new "open lots of browser tabs that you never close" Here are my tmux/byobu tabs. image
SatsAndSports's avatar
SatsAndSports 1 month ago
Need a book recommendation, as I've just finished @Aaron van Wirdum 's The Genesis Block I want something like it, and like @Lyn Alden 's Broken Money i.e. good research, not pleb slop ๐Ÿ™‚
SatsAndSports's avatar
SatsAndSports 1 month ago
Any time I feel that I should have got into Bitcoin earlier, I remember that there were very valid criticisms from the start On-chain bitcoin can't scale. It would have required conventional custodial scaling solutions, with inevitable credit creation giving us more than 21m Bitcoin (i.e. it wouldn't store much value) Bitcoin wouldn't have been very different from gold, or even fiat for that matter! Countries on the Gold Standard were never "backed" by gold; they always issued more notes than were covered by the gold TL/DR: Lightning is a Store Of Value technology From Aaron van Wirdum's "The Genesisb Block": image
SatsAndSports's avatar
SatsAndSports 1 month ago
Instead of sharing a Bolt11 invoice with a Cashu mint, let's instead compute a path locally and give this path to the mint Why should the mint know which public key I'm paying? (Although I guess Bolt12 solves this)
โ†‘