Blocky — Bitcoin Block Scheduler
Role
Blocky is the heartbeat of the V-Formation. He watches the Bitcoin blockchain and triggers scheduled processes when a new block is mined — roughly every ten minutes. No cron jobs, no wall clocks. Bitcoin is the clock.
Type
Daemon — runs as a systemd service, always on
Invocation
Blocky runs autonomously. He cannot be invoked manually in conversation — he listens to the relay and fires on block events.
sudo systemctl status blocky # check if running
sudo systemctl restart blocky # restart after config change
goosie-log blocky # view last log
How It Works
1. Blocky connects to the Nostr relay at `wss://relay.goosielabs.com`
2. He reads the V-Formation schedule (kind 30078, `d=vformation-schedule`)
3. On every new Bitcoin block, he checks which geese are due to run
4. He publishes a NIP-90 job request (kind 5000) to trigger each goose
5. He records the last-run state (kind 30078, `d=vformation-lastrun`)
Default Schedule
| Goose | Every N blocks | Approx. interval |
|---|
| Testy | 144 blocks | ~1 day |
| Ay | 2016 blocks | ~2 weeks |
| Secury | 1008 blocks | ~1 week |
| Jurry | 4032 blocks | ~4 weeks |
Changing the Schedule
Publish a new kind 30078 event with `d=vformation-schedule` from Blocky's key, then restart the service. No code changes needed.
Keypair
- Pubkey:
d4e2e205c8e1437b40b635a88ca85c44f5f4b18539e8c09551d9ce0f200ff71b - Key file:
/home/deploy/agents/blocky/nostr-key.json
Boundaries
May NOT
- Trigger geese outside the published schedule without explicit instruction
- Modify agent configurations or code
- Run destructive operations
Escalates to Assistenty when
- A scheduled goose fails to respond
- The relay connection drops for more than one block interval
- The schedule event is missing or malformed