4.2 KiB
Ratchet Operations
Normal Monitor Cycle
Run these commands from the repository root:
./scripts/ratchet
This prints the cockpit and tells you exactly what to do next.
The cockpit also prints Ratchet Pathway Forecast. That section is the stretched-out research path:
- Immediate: the next operational step.
- Midterm: the likely next experiment stage.
- Longterm: what could happen after multiple reports mature.
Those probabilities are workload and workflow estimates, not promises of mining profit.
If the cockpit tells you to collect one fresh sample, run:
./scripts/ratchet once
The result is a recommendation only. observe means no action is recommended. manual_canary means a tiny research experiment is inside the configured loss budget. manual_bid means a manually placed bid clears profit-seeking discount and risk guardrails.
The report's sampled price min/avg/max uses public Braiins snapshots only. Manual imports are still stored and can drive evaluation, but they do not pollute live market summary statistics.
The strategy price is depth-aware when orderbook depth is available: it prefers suggested_bid_btc_per_eh_day over raw best ask. This prevents top-of-book slivers or already-matched asks from looking cheaper than actually executable depth.
Repeated Sampling
For short monitor sessions:
./scripts/ratchet watch 6
This runs for about six hours at 5-minute intervals. It is bounded by design.
At the end of a normal watch, inspect the ratchet record:
./scripts/ratchet experiments
The ledger is the main artifact. It says what was tested, how long it ran, what actions the strategy would have considered, and what adaptation should be considered next.
After a completed watch, the cockpit should not immediately recommend another identical watch. It enters post-watch cooldown, which means the current stage is complete and the next useful operator touch is a later fresh sample.
During cooldown, the cockpit prints a progress bar, remaining minutes, and the earliest next action time. To let the app wait and perform the next monitor-only refresh after explicit approval, run:
./scripts/ratchet pipeline
The pipeline prints its plan and asks for yes or no before doing anything. It never places Braiins orders.
Forever Lifecycle
For unattended monitor-only autoresearch:
./scripts/ratchet supervise
The supervisor is stateful. It writes lifecycle state and events into data/ratchet.sqlite, so a restart can continue from the current phase instead of starting over.
Check the persisted lifecycle state:
./scripts/ratchet supervise --status
This is still monitor-only. Manual Braiins bids remain outside the app unless separately recorded.
Manual Exposure Tracking
When you manually place a Braiins order, record it:
./scripts/ratchet position open --description "Braiins order abc" --maturity-hours 72
The supervisor then blocks new experiments while the position is active. This is the stateful bridge for real-money operations that can run for days or weeks.
Close it only when the exposure is truly finished:
./scripts/ratchet position close POSITION_ID
If a run already happened before automatic bookkeeping was available, reconstruct it from the stored SQLite snapshots:
./scripts/ratchet retro 2026-04-25T19:08:00+00:00 2026-04-25T21:05:00+00:00
Manual Market Snapshot
If Braiins public endpoints are unavailable, use:
PYTHONPATH=src ./.venv/bin/python -m braiins_ratchet.cli import-market examples/market_snapshot.example.json
Edit a copy of the example JSON with values read from the Braiins UI. Do not put secrets in that file.
Interpreting The Proposal
breakeven_btc_per_eh_day: estimated expected mining value at current OCEAN/network inputs.expected_reward_btc: expected OCEAN reward before subtracting Braiins spend.expected_net_btc: expected reward minus Braiins spend.score_btc: risk-adjusted score after applying the configured penalty.maturity_note: how long to wait before treating a canary result as mature under the TIDES window.
Safety
The program never places orders. Manual execution remains outside the repo and should use the Braiins UI, not this code.