Collider sweep untuk BTC puzzle (metode kangaroo / pollard) yang berjalan 100% di GPU Apple Metal. Folder ini self-contained dan dirancang supaya bisa di-copy/clone ke Mac mana pun (termasuk Mac M4 16 GB+) tanpa Path atau binary yang terikat device.
runners/run_all_colliders.sh— master controller: sweep semua configconfigs/collider_jump_*_rnd.confyangENABLED=1, 1 GPU process sekaligus.runners/run_collider_jump.sh— per-config runner (random subrange per round, checkpoint otomatis dicheckpoints/randomColliders<PZ>.js).configs/collider_jump_p*_rnd.conf— target puzzle (p140/145/150/155/160 aktif, p30 off).tools/metal-kangaroo/— sourcemain.m+kangaroo.metal+Makefile+build.sh. Binary tidak di-commit; di-compile otomatis di device tujuan.checkpoints/— progress tiap puzzle (ikut terbawa, lanjut dari mana tahap terakhir).setup.sh— inisialisasi satu kali di Mac baru.
- macOS + Apple Silicon (arm64). Metal hanya ada di Apple Silicon.
- Xcode command line tools:
xcode-select --install(untukclang). - Tidak ada path hard-coded; semua relatif terhadap folder ini.
bash /path/ke/collider/setup.shScript akan: chmod runner, compile metal-kangaroo untuk arch ini, dan verifikasi
GPU device terdeteksi (cetak nama GPU, mis. "Apple M4").
bash runners/run_all_colliders.sh start-all [detik_per_round] [kangs]
bash runners/run_all_colliders.sh status
bash runners/run_all_colliders.sh stop-allContoh: start-all 600 → tiap config diskak 600 detik lalu lanjut ke config berikutnya,
berputar terus sampai ketemu MATCH atau stop-all.
- Binary pakai
MTLCreateSystemDefaultDevice()+ compute kernelkangaroo.metal, jadi walk terjadi di GPU, bukan CPU. - Saat start, baris
GPU device: <nama GPU>muncul di log (lihatlogs/<puzzle>.metal.log) — itu konfirmasi GPU aktif. - Cek cepat tanpa sweep:
tools/metal-kangaroo/metal-kangaroo --gpu-info.
- Pool kangaroo (
KANGS) otomatis menyesuaikan RAM: di 16 GB -> 16384 (4× lipat dari nilai config 4096). RAM lebih besar -> pool lebih besar lagi. Pakai config asli:COLLIDER_FIXEDKANGS=1 bash runners/run_all_colliders.sh start-all. - Kalau GPU beda (mis. M4 Pro/Max dengan lebih banyak core), naikkan manual via arg
ke-3:
start-all 600 32768.
Saat metal-kangaroo mencetak SOLVED k = <priv>, runner otomatis:
- parse private key dari log,
- panggil
tools/sweep/sweep.pyyang:- derivasi address dari
PUBKEYconfig (P2PKH), - cek
TARGET_HASH160cocok, - fetch UTXO via blockstream/esplora,
- bangun + tanda-tangani tx P2PKH mengirim saldo penuh (minus fee) ke alamat tujuan,
- broadcast.
- derivasi address dari
- catat
tools/sweep/sweep_done.log(tanpa priv key) agar tidak dobel sweep.
Alamat tujuan (kemana kirim):
- default:
1PqYBqJAsT6AVCAr6ueuTYuRUu61NHet5(BTC puzzle-solve sweep addr, AGENTS.md). - override: file
tools/sweep/SWEEP_ADDRESS, atau envSWEEP_ADDRESS=.... - tes tanpa broadcast:
SWEEP_DRYRUN=1(cetak raw tx, tidak di-broadcast).
Validasi sudah dilakukan: derivasi address cocok dengan vektor known (priv d2c55
-> 1HsMJxNiV7TLxmoF6uJNkydxPFDog4NQum), dan tiap signature self-verify lolos.
Pastikan Mac target punya akses internet (HTTPS ke blockstream.info) untuk fetch/broadcast.
- MATCH valid dijamin: sebelum mengirim saldo,
sweep.pymemverifikasipriv -> PUBKEY -> TARGET_HASH160persis sama dengan config. Kalau tidak cocok, sweep di-batalkan (tidak ada dana yang terkirim ke key salah). Bukti: dry-run dengan privd2c55mencetakMATCH VALID: priv -> PUBKEY -> TARGET_HASH160 verified OK. - Sweep working dijamin: serialisasi tx + tanda tangan sudah diuji live ke
node blockstream testnet (
--testnet). Tx diterima & di-decode node (HTTP 400bad-txns-inputs-missingorspent= hanya ditolak karena input dummy tak ada dana, bukan karena format/signature salah). Artinya path broadcast (POST /tx) dan format wire tx benar. - Tes sendiri kapan saja tanpa risiko dana:
python3 tools/sweep/sweep.py --config <conf> --priv <hex> --dry-runpython3 tools/sweep/sweep.py --config <conf> --priv <hex> --testnet(bukti live ke testnet)
- Pindah antar Mac: cukup copy folder ini.
setup.shakan rebuild binary bila arch berubah; path relatif jadi tidak masalah username/folder. pgrep/pkilldi-scope kecollider/...supayastop-alltidak membunuh collider lain (mis.b1000) yang kebetulan jalan di Mac yang sama.- Saran: tambahkan
tools/metal-kangaroo/metal-kangarooke.gitignoreagar binary hasil compile device tertentu tidak ke-commit.