Complete rebranding of all components: - Core miner: xmrig -> miner (binary, version.h, CMakeLists.txt) - Proxy: xmrig-proxy -> miner-proxy - CUDA plugin: xmrig-cuda -> miner-cuda - Heatmap: xmrig-nonces-heatmap -> miner-nonces-heatmap - Go CLI wrapper: miner-cli -> miner-ctrl Vendored XMRig ecosystem into miner/ directory: - miner/core - XMRig CPU/GPU miner - miner/proxy - Stratum proxy - miner/cuda - NVIDIA CUDA plugin - miner/heatmap - Nonce visualization tool - miner/config - Configuration UI - miner/deps - Pre-built dependencies Updated dev fee to use project wallet with opt-out (kMinimumDonateLevel=0) Updated branding to Lethean (domain, copyright, version 0.1.0) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Stratum mining protocol
login
Miner send login request after connection successfully established for authorization on pool.
Example request:
{
"id": 1,
"jsonrpc": "2.0",
"method": "login",
"params": {
"login": "48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD",
"pass": "x",
"agent": "XMRig/2.6.0-beta2 (Linux x86_64) libuv/1.8.0 gcc/5.4.0"
}
}
Example success reply:
{
"id": 1,
"jsonrpc": "2.0",
"error": null,
"result": {
"id": "1be0b7b6-b15a-47be-a17d-46b2911cf7d0",
"job": {
"blob": "070780e6b9d60586ba419a0c224e3c6c3e134cc45c4fa04d8ee2d91c2595463c57eef0a4f0796c000000002fcc4d62fa6c77e76c30017c768be5c61d83ec9d3a085d524ba8053ecc3224660d",
"job_id": "q7PLUPL25UV0z5Ij14IyMk8htXbj",
"target": "b88d0600"
},
"status": "OK"
}
}
Example error reply:
{
"id": 1,
"jsonrpc": "2.0",
"error": {
"code": -1,
"message": "Invalid payment address provided"
}
}
job
Pool send new job to miner. Miner should switch to new job as fast as possible.
Example notification:
{
"jsonrpc": "2.0",
"method": "job",
"params": {
"blob": "0707d5efb9d6057e95a35f868231780b3a8649c4e57f3c77eaf437329243eef0b9f4b6987d05b900000000cae7754cb85a0ad8eebf3e0bf55f3ec5e754a1d6b05d46e5c358f907dbcbb72b01",
"job_id": "4BiGm3/RgGQzgkTI/xV0smdA+EGZ",
"target": "b88d0600"
}
}
submit
Miner send submit request after share was found.
Example request:
{
"id": 2,
"jsonrpc": "2.0",
"method": "submit",
"params": {
"id": "1be0b7b6-b15a-47be-a17d-46b2911cf7d0",
"job_id": "4BiGm3/RgGQzgkTI/xV0smdA+EGZ",
"nonce": "d0030040",
"result": "e1364b8782719d7683e2ccd3d8f724bc59dfa780a9e960e7c0e0046acdb40100"
}
}
Example success reply:
{
"id": 2,
"jsonrpc": "2.0",
"error": null,
"result": {
"status": "OK"
}
}
Example error reply:
{
"id": 2,
"jsonrpc": "2.0",
"error": {
"code": -1,
"message": "Low difficulty share"
}
}
keepalived
Non standard but widely supported protocol extension. Miner send keepalived to prevent connection timeout.
Example request:
{
"id": 2,
"method": "keepalived",
"params": {
"id": "1be0b7b6-b15a-47be-a17d-46b2911cf7d0"
}
}
Example success reply:
{
"id": 2,
"jsonrpc": "2.0",
"error": null,
"result": {
"status": "KEEPALIVED"
}
}