executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
botcoin-minerMine Botcoin with a trust-first workflow: clear value proposition, verifiable binaries, and explicit operational guidance.
Independent GitHub snapshot · Automated classification · Original documentation governs
Botcoin is an experiment in agent autonomy through proof-of-work.
It’s a way for agents (and their humans) to turn ordinary CPU time into on-chain value — no GPUs, no ASICs, no pool infrastructure required.
If you operate agents on behalf of a human:
Botcoin is derived from Bitcoin Core, but it is not identical (it uses RandomX and includes an internal miner).
If you’re an independent third party deciding whether to mine:
Releases are published on GitHub when a version tag is pushed (e.g. v2.1.1).
Platforms:
linux-x86_64 (also works on WSL2)linux-arm64macos-x86_64macos-arm64Downloads:
Docker:
ghcr.io/happybigmtn/botcoin:<tag>VERSION=v2.1.1
wget "https://github.com/happybigmtn/botcoin/releases/download/${VERSION}/botcoin-${VERSION}-linux-x86_64.tar.gz"
tar -xzf "botcoin-${VERSION}-linux-x86_64.tar.gz"
cd release
# Verify
sha256sum -c SHA256SUMS
# Install
mkdir -p ~/.local/bin
cp botcoind botcoin-cli ~/.local/bin/
WSL2 note:
linux-x86_64 release tarballs./nix/store.botcoind -daemon
sleep 5
botcoin-cli createwallet "miner" || true
ADDR=$(botcoin-cli -rpcwallet=miner getnewaddress)
botcoin-cli stop
sleep 5
nice -n 19 botcoind -daemon -mine -mineaddress="$ADDR" -minethreads=2
botcoin-cli getinternalmininginfo
botcoin-cli getconnectioncount
RandomX has two modes:
⚠️ All nodes on the same network must match the mode. Choose light mode
botcoind -daemon -minerandomx=light
---
## Fleet recovery / restart notes (history)
### The short version
Botcoin’s story is a story about agents learning the same lesson the hard way:
**hashpower without consensus is just heat.**
And the second lesson:
**no premine means no shortcuts** — every coin has to be pulled out of the void by CPU time.
### The saga (timestamped, from the last few days)
- **2026-01-31** — *The birth.*
- The chain stabilized and synced; already **past block 311** and climbing.
- Ten nodes across Europe were running — and at first they weren’t even a “fleet”… just ten parallel universes mining ten incompatible forks.
- Once peering was fixed, consensus snapped into place: **longest chain wins**.
- **2026-02-02** — *The wake-up call (strangers arrive).*
- Around **heights 1784–1787**, blocks started landing to addresses we didn’t recognize.
- Third‑party miners had joined the network — and they were taking blocks.
- We rebuilt the internal miner and fixed hot-loop inefficiencies (the famous “patch 4 bytes, don’t reserialize the world”).
- Result: roughly **120×** per-node hashrate improvement, and the network surged forward to around **~1920**.
- **2026-02-03 18:02 AEDT** — *The fleet split into ten tiny universes (again).*
- The chain was **well past 3,700 blocks** (e.g. **block 3756** was observed).
- But the fleet was silently partitioned: nodes disagreed on the tip by hundreds of blocks.
- Everything looked “healthy” locally — blocks, balances, logs — until you notice you’re accumulating value on a chain nobody else recognizes.
- **2026-02-04 ~06:43 AEDT** — *The restart (new chain launch).*
- Mining stalled with template timeouts ("no templates / timeout waiting for first template").
- We shipped a targeted miner fix so mining cannot deadlock on edge-case IBD conditions.
- Then we did the hard, clean thing:
**We restarted the network from genesis.**
- Datadirs were wiped across the fleet.
- A seed node was started first, then the rest joined.
- Mining resumed immediately — fresh blocks were being found within minutes — and the fleet eventually converged to a single canonical chain.
### Why we chose to restart from genesis
Because young networks are ecosystems.
When a chain wedges hard enough — and when everyone can coordinate a clean reboot — the fastest path back to a shared reality is:
- one verified binary across all miners,
- then rebuild the chain from block 0 with peers connected.
### Practical takeaways
- **Never mine “latest.”** Pin a tag/commit.
- Prefer **release tarballs + SHA256SUMS** or one reproducible build artifact.
- If you restart from genesis: mine on **1–2 nodes first**, let others sync, then enable mining broadly to avoid long-lived forks.
(Deeper detail: Botcoin repo `docs/lessons-learned-fleet-recovery.md`.)
---
## Handy commands
- `botcoin-cli getblockchaininfo`
- `botcoin-cli getconnectioncount`
- `botcoin-cli getinternalmininginfo`
- `botcoin-cli getbestblockhash`
- `botcoin-cli stop`
---
## Links
- Repo: https://github.com/happybigmtn/botcoin
- Skill page: https://www.clawhub.ai/happybigmtn/botcoin-miner
*The revolution will not be centralized.*