Keryx-miner-v0.5.6-test5-model-split

2026. 9. 22.

Fifth test release of the model-split miner. Mainnet is not affected.

What changed since 0.5.6-test4

  • A multi-GPU rig now declares its shard. On a rig, only one GPU serves the shard; the others keep a copy for PoM. The miner could pick one of those non-serving copies when looking up its shard endpoint, conclude it served nothing and stay silent. Without that declaration, no head would ever start a pipeline. Single-GPU boxes were never affected, which is why the second campaign worked and the fourth did not. The endpoint is now looked up on the GPU that actually serves the shard.

  • A head no longer waits forever for a missing shard. A head gives the links a grace period to declare, then serves or hands over. That deadline was restarted each time the request was looked at again, so it could never expire. It now runs from the first time the request is seen. The head also logs which shard tiers it is still waiting for, and a miner that holds a shard without serving it says so.

  • Links no longer drop a head while it loads. Test4 added an idle timeout on shard sessions, with a keepalive on the control link only. A head needs one to three minutes to load its weights, so the data links went quiet for longer than the timeout and were closed under it. The head now keeps every data link alive.

  • A corrupted model download is no longer stuck. When a downloaded file did not match its expected digest, it was kept on disk, and the next attempt resumed on top of the bad bytes. The file is now deleted on a mismatch, so the next run downloads it again from scratch. If you hit digest mismatch, restart the miner.

  • Shards announce the model of the current era. A miner holding a shard announced the model of the upcoming era instead of the one being mined, which would have failed its model challenge as soon as a model change was scheduled. It now announces the current one and prefetches both. Nothing changes today on mainnet or testnet.

  • Devnet support. --devnet runs a local two-shard 9B bench against a devnet node. It is meant for development only.

Reminder for shard holders

  • Ports 4001 (IPFS) and 60052 (shard gateway) open, TCP, inbound. If you use a custom gateway port, --shard-public must announce the port that actually reaches your miner.
  • A rig with several GPUs serves its shard from one GPU only. The others keep their copy for PoM. This is expected.
  • --force-model shard-N if your card is picked for the wrong shard, and --mine-when-not-synced against the public node.

How to join the testnet?

1/ Download the zip for your class and unzip it into the miner's models/ folder:

8 GB → shard 0 (5.9 GB) → https://huggingface.co/datasets/Keryx-Labs/models/resolve/main/V4-Flash-shard-0.zip 12 GB → shard 1 (9.9 GB) → https://huggingface.co/datasets/Keryx-Labs/models/resolve/main/V4-Flash-shard-1.zip 12 GB → shard 2 (9.9 GB) → https://huggingface.co/datasets/Keryx-Labs/models/resolve/main/V4-Flash-shard-2.zip 16 GB → shard 3 (13.8 GB) → https://huggingface.co/datasets/Keryx-Labs/models/resolve/main/V4-Flash-shard-3.zip 24 GB → shard 4 (19.8 GB) → https://huggingface.co/datasets/Keryx-Labs/models/resolve/main/V4-Flash-shard-4.zip 32 GB → shard 5 (27.4 GB) → https://huggingface.co/datasets/Keryx-Labs/models/resolve/main/V4-Flash-shard-5.zip

2/ A keryxtest: address created on the testnet web wallet: https://testnet.keryx-labs.com/wallet Same escrow procedure as on mainnet, with that address.

3/ Start the miner on testnet, against the public node: ./keryx-miner --testnet --mining-address keryxtest:xxxxxxxxxxxxxxxxxxxxxxxxxxxx --high --mine-when-not-synced --keryxd-address 169.58.155.203:22210 --shard-gateway 0.0.0.0:60052 --shard-public YOUR_PUBLIC_IP:60052