{"id":20287026,"url":"https://github.com/moneroocean/meta-miner","last_synced_at":"2025-08-21T10:31:57.013Z","repository":{"id":37822175,"uuid":"144341629","full_name":"MoneroOcean/meta-miner","owner":"MoneroOcean","description":"Allows to add algo switching support to *any* stratum miner. Zero fees.","archived":false,"fork":false,"pushed_at":"2023-05-05T18:28:45.000Z","size":93,"stargazers_count":125,"open_issues_count":23,"forks_count":62,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-12-08T17:23:44.152Z","etag":null,"topics":["cryptonight","cryptonight-fast","cryptonight-heavy","cryptonight-lite","miner"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MoneroOcean.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-10T23:49:24.000Z","updated_at":"2024-11-21T06:13:18.000Z","dependencies_parsed_at":"2024-11-14T14:39:07.346Z","dependency_job_id":"f6c9a2ab-2938-4641-8e37-988ded524eda","html_url":"https://github.com/MoneroOcean/meta-miner","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoneroOcean%2Fmeta-miner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoneroOcean%2Fmeta-miner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoneroOcean%2Fmeta-miner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoneroOcean%2Fmeta-miner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MoneroOcean","download_url":"https://codeload.github.com/MoneroOcean/meta-miner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230507051,"owners_count":18236944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptonight","cryptonight-fast","cryptonight-heavy","cryptonight-lite","miner"],"created_at":"2024-11-14T14:37:53.783Z","updated_at":"2024-12-19T22:08:50.229Z","avatar_url":"https://github.com/MoneroOcean.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# meta-miner\nMeta Miner: allows to add algo switching support to *any* stratum miner.\n\nDoes not add any extra mining fees.\n\n## Check mm.js builtin help\n\n```\nUsage: mm.js [\u003cconfig_file.json\u003e] [options]\nAdding algo switching support to *any* stratum miner\n\u003cconfig_file.json\u003e is file name of config file to load before parsing options (mm.json by default)\nConfig file and options should define at least one pool and miner:\nOptions:\n        --pool=\u003cpool\u003e (-p):             \u003cpool\u003e is in pool_address:pool_port format, where pool_port can be \u003cport_number\u003e or ssl\u003cport_number\u003e\n        --host=\u003chostname\u003e:              defines host that will be used for miner connections (localhost 127.0.0.1 by default)\n        --port=\u003cnumber\u003e:                defines port that will be used for miner connections (3333 by default)\n        --user=\u003cwallet\u003e (-u):           \u003cwallet\u003e to use as pool user login (will be taken from the first miner otherwise)\n        --pass=\u003cminer_id\u003e:              \u003cminer_id\u003e to use as pool pass login (will be taken from the first miner otherwise)\n        --perf_\u003calgo\u003e=\u003chashrate\u003e        Sets hashrate for algo that is: rx/0, rx/wow, cn/r, cn-pico/trtl, cn-heavy/xhv, cn/gpu, argon2/chukwa, k12, c29s, c29v, c29b, kawpow, ethash, autolykos2, panthera, ghostrider\n        --algo_min_time=\u003cseconds\u003e       Sets \u003cseconds\u003e minimum time pool should keep our miner on one algo (0 default, set higher for starting miners)\n        --miner=\u003ccommand_line\u003e (-m):    \u003ccommand_line\u003e to start smart miner that can report algo itself\n        --\u003calgo\u003e=\u003ccommand_line\u003e:        \u003ccommand_line\u003e to start miner for \u003calgo\u003e that can not report it itself\n        --watchdog=\u003cseconds\u003e (-w):      restart miner if is does not submit work for \u003cseconds\u003e (600 by default, 0 to disable)\n        --hashrate_watchdog=\u003cpercent\u003e:  restart miner if is hashrate dropped below \u003cpercent\u003e value of of its expected hashrate (0 by default to disable)\n        --miner_stdin:                  enables stdin (input) in miner\n        --quiet (-q):                   do not show miner output during configuration and also less messages\n        --verbose (-v):                 show more messages\n        --debug:                        show pool and miner messages\n        --log=\u003cfile_name\u003e:              \u003cfile_name\u003e of output log\n        --no-config-save:               Do not save config file\n        --help (-help,-h,-?):           Prints this help text\n```\n\nCheck https://github.com/xmrig/xmrig-proxy/blob/master/doc/STRATUM_EXT.md#14-algorithm-names-and-variants for list of possible algo names.\n\n## Sample mm.json (to use with xmrig v2.99.0+ located in the same directory)\n\n```\n{\n \"miner_host\": \"127.0.0.1\",\n \"miner_port\": 3333,\n \"pools\": [\n  \"gulf.moneroocean.stream:10001\"\n ],\n \"algos\": {\n  \"cn/1\": \"./xmrig --config=config.json\",\n  \"cn/2\": \"./xmrig --config=config.json\",\n  \"cn/r\": \"./xmrig --config=config.json\",\n  \"cn/fast\": \"./xmrig --config=config.json\",\n  \"cn/half\": \"./xmrig --config=config.json\",\n  \"cn/xao\": \"./xmrig --config=config.json\",\n  \"cn/rto\": \"./xmrig --config=config.json\",\n  \"cn/rwz\": \"./xmrig --config=config.json\",\n  \"cn/zls\": \"./xmrig --config=config.json\",\n  \"cn/double\": \"./xmrig --config=config.json\",\n  \"cn/gpu\": \"./xmrig --config=config.json\",\n  \"cn-heavy/0\": \"./xmrig --config=config.json\",\n  \"cn-heavy/tube\": \"./xmrig --config=config.json\",\n  \"cn-heavy/xhv\": \"./xmrig --config=config.json\",\n  \"cn-pico\": \"./xmrig --config=config.json\",\n  \"rx/0\": \"./xmrig --config=config.json\",\n  \"rx/wow\": \"./xmrig --config=config.json\",\n  \"rx/loki\": \"./xmrig --config=config.json\",\n  \"rx/arq\": \"./xmrig --config=config.json\",\n  \"rx/sfx\": \"./xmrig --config=config.json\",\n  \"argon2/chukwa\": \"./xmrig --config=config.json\",\n  \"argon2/wrkz\": \"./xmrig --config=config.json\",\n  \"ghostrider\": \"./xmrig --config=config.json\",\n  \"ethash\": \"./gminer/miner --server localhost:3333 --user 87MKQonkAUsQ9MNGKB3L51PE884cTeJbgcu6zWZPZt13b632huSGu9xPZwQALhLnAadEurYA8npRPZTJUWed95ZAT17brdt --pass gpu_miner --algo ethash --proto stratum\",\n  \"kawpow\": \"./gminer/miner --server localhost:3333 --user 87MKQonkAUsQ9MNGKB3L51PE884cTeJbgcu6zWZPZt13b632huSGu9xPZwQALhLnAadEurYA8npRPZTJUWed95ZAT17brdt --pass gpu_miner --algo kawpow\",\n  \"c29s\": \"./gminer/miner --server localhost:3333 --user 87MKQonkAUsQ9MNGKB3L51PE884cTeJbgcu6zWZPZt13b632huSGu9xPZwQALhLnAadEurYA8npRPZTJUWed95ZAT17brdt --pass gpu_miner --algo cuckaroo29s\",\n  \"c29b\": \"./gminer/miner --server localhost:3333 --user 87MKQonkAUsQ9MNGKB3L51PE884cTeJbgcu6zWZPZt13b632huSGu9xPZwQALhLnAadEurYA8npRPZTJUWed95ZAT17brdt --pass gpu_miner --algo cuckaroo29b\",\n  \"c29v\": \"./gminer39/miner --server localhost:3333 --user 87MKQonkAUsQ9MNGKB3L51PE884cTeJbgcu6zWZPZt13b632huSGu9xPZwQALhLnAadEurYA8npRPZTJUWed95ZAT17brdt --pass gpu_miner --algo cuckarood29\",\n  \"autolykos2\": \"./trex/t-rex -a autolykos2 -o stratum+tcp://localhost:3333 -u 87MKQonkAUsQ9MNGKB3L51PE884cTeJbgcu6zWZPZt13b632huSGu9xPZwQALhLnAadEurYA8npRPZTJUWed95ZAT17brdt -p gpu_miner\"\n },\n \"algo_perf\": {\n  \"rx/0\": 243.6,\n  \"cn/r\": 49.8,\n  \"cn/gpu\": 12.9,\n  \"cn-heavy/xhv\": 30.5,\n  \"cn-pico/trtl\": 0,\n  \"rx/wow\": 282.2,\n  \"defyx\": 0,\n  \"argon2/chukwa\": 4725.4,\n  \"k12\": 0,\n  \"c29s\": 0,\n  \"c29v\": 0,\n  \"rx/loki\": 243.6,\n  \"cn/0\": 49.8,\n  \"cn/1\": 49.8,\n  \"cn/2\": 49.8,\n  \"cn/wow\": 49.8,\n  \"cn/fast\": 99.6,\n  \"cn/half\": 99.6,\n  \"cn/xao\": 49.8,\n  \"cn/rto\": 49.8,\n  \"cn/rwz\": 66.39999999999999,\n  \"cn/zls\": 66.39999999999999,\n  \"cn/double\": 24.9,\n  \"cn-heavy/0\": 30.5,\n  \"cn-heavy/tube\": 30.5,\n  \"c29b\": 0.1865,\n  \"c29s\": 0.23375,\n  \"c29v\": 0.4875,\n  \"kawpow\": 0.003953464329242706,\n  \"ethash\": 49860000,\n  \"autolykos2\": 144120000,\n  \"ghostrider\": 1000\n },\n \"algo_min_time\": 0,\n \"user\": \"89TxfrUmqJJcb1V124WsUzA78Xa3UYHt7Bg8RGMhXVeZYPN8cE5CZEk58Y1m23ZMLHN7wYeJ9da5n5MXharEjrm41hSnWHL\",\n \"pass\": \"x\",\n \"log_file\": null,\n \"watchdog\": 600,\n \"hashrate_watchdog\": 0\n}\n```\n\n## General configuration guidelines\n\n* Configure your miners to connect to the single localhost:3333 (non SSL/TLS) pool.\n\n* For best results separate xmr-stak/xmrig CPU and GPU miners (by using --noCPU, --noAMD, --noNVIDIA options for xmr-stak).\n\n* Prepare your miner config files that give the best performance for your hardware on cryptonight, cryptonight-heavy, cryptonight-pico, randomx, randomx/wow, randomx/arq algorithm classes (not needed for xmrig v2.99+).\n\n* If you have several miners on one host use mm.js --port option to assign them to different ports.\n\n* Additional mm.js pools will be used as backup pools.\n\n* To rerun benchmark for specific algorithm class use --perf_*algo*=0 option.\n\nThe configuration guide below is for stock xmrig. For xmr-stak/rx check [configuration guide for xmr-stak](xmr-stak.md) page.\nFor GPU mining setup using gminer algo check [configuration guide for gminer](gminer.md) page.\nFor c29 algo reference miner setup check [configuration guide for cuckaroo29](c29.md) page.\n\n## Usage examples on Windows\n\nPlace mm.exe or mm.js (with nodejs installed) into unpacked miner directory either by:\n\n* Download and unpack the latest mm-vX.X.zip from https://github.com/MoneroOcean/meta-miner/releases\n\n* Download and install nodejs using https://nodejs.org/dist/v8.11.3/node-v8.11.3-x64.msi installator and download and unpack https://raw.githubusercontent.com/MoneroOcean/meta-miner/master/mm.js\n\n### Usage example with xmrig on Windows\n\n* Download and unpack the lastest xmrig-amd (https://github.com/xmrig/xmrig/releases/download/v5.4.0/xmrig-5.4.0-msvc-win64.zip).\n\n* Modify config.json file in xmrig directory this way and adjust it for the best threads performance (out of scope of this guide):\n\n\t* Set \"url\" to \"localhost:3333\"\n\t* Set \"user\" to \"89TxfrUmqJJcb1V124WsUzA78Xa3UYHt7Bg8RGMhXVeZYPN8cE5CZEk58Y1m23ZMLHN7wYeJ9da5n5MXharEjrm41hSnWHL\" (put your Monero wallet address)\n\n* Run Meta Miner (or use \"node mm.js\" instead of mm.exe):\n\n```shell\nmm.exe -p=gulf.moneroocean.stream:10001 -m=\"xmrig-amd.exe --config=config.json\"\n```\n\n## Usage examples on Linux (Ubuntu 18.04)\n\nGet node and Meta Miner (mm.js) in the miner directory:\n\n```shell\nsudo apt-get update\nsudo apt-get install -y nodejs\nwget https://raw.githubusercontent.com/MoneroOcean/meta-miner/master/mm.js\nchmod +x mm.js\n```\n\n### Usage example with xmrig on Linux\n\n* Get xmrig:\n\n```shell\nwget https://github.com/xmrig/xmrig/releases/download/v5.4.0/xmrig-5.4.0-xenial-x64.tar.gz\ntar xf xmrig-5.4.0-xenial-x64.tar.gz\ncd xmrig-5.4.0\n```\n\n* Prepare configs for different algorithms (put your Monero wallet address):\n\n```shell\nsed -i 's/\"url\": *\"[^\"]*\",/\"url\": \"localhost:3333\",/' config.json\nsed -i 's/\"user\": *\"[^\"]*\",/\"user\": \"89TxfrUmqJJcb1V124WsUzA78Xa3UYHt7Bg8RGMhXVeZYPN8cE5CZEk58Y1m23ZMLHN7wYeJ9da5n5MXharEjrm41hSnWHL\",/' config.json\n```\n\n* Run Meta Miner:\n\n```shell\n./mm.js -p=gulf.moneroocean.stream:10001 -m=\"./xmrig --config=config.json\"\n```\n\n## Developer Donations\n\nIf you'd like to make an one time donation, the addresses are as follows:\n\n* XMR - ```89TxfrUmqJJcb1V124WsUzA78Xa3UYHt7Bg8RGMhXVeZYPN8cE5CZEk58Y1m23ZMLHN7wYeJ9da5n5MXharEjrm41hSnWHL```\n* AEON - ```WmsEg3RuUKCcEvFBtXcqRnGYfiqGJLP1FGBYiNMgrcdUjZ8iMcUn2tdcz59T89inWr9Vae4APBNf7Bg2DReFP5jr23SQqaDMT```\n* ETN - ```etnkQMp3Hmsay2p7uxokuHRKANrMDNASwQjDUgFb5L2sDM3jqUkYQPKBkooQFHVWBzEaZVzfzrXoETX6RbMEvg4R4csxfRHLo1```\n* SUMO - ```Sumoo1DGS7c9LEKZNipsiDEqRzaUB3ws7YHfUiiZpx9SQDhdYGEEbZjRET26ewuYEWAZ8uKrz6vpUZkEVY7mDCZyGnQhkLpxKmy```\n* GRFT - ```GACadqdXj5eNLnyNxvQ56wcmsmVCFLkHQKgtaQXNEE5zjMDJkWcMVju2aYtxbTnZgBboWYmHovuiH1Ahm4g2N5a7LuMQrpT```\n* MSR - ```5hnMXUKArLDRue5tWsNpbmGLsLQibt23MEsV3VGwY6MGStYwfTqHkff4BgvziprTitbcDYYpFXw2rEgXeipsABTtEmcmnCK```\n* LTHN - ```iz53aMEaKJ25zB8xku3FQK5VVvmu2v6DENnbGHRmn659jfrGWBH1beqAzEVYaKhTyMZcxLJAdaCW3Kof1DwTiTbp1DSqLae3e```\n* WOW - ```Wo3yjV8UkwvbJDCB1Jy7vvXv3aaQu3K8YMG6tbY3Jo2KApfyf5RByZiBXy95bzmoR3AvPgNq6rHzm98LoHTkzjiA2dY7sqQMJ```\n* XMV - ```XvyVfpAYp3zSuvdtoHgnDzMUf7GAeiumeUgVC7RTq6SfgtzGEzy4dUgfEEfD5adk1kN4dfVZdT3zZdgSD2xmVBs627Vwt2C3Ey```\n* RYO - ```RYoLsi22qnoKYhnv1DwHBXcGe9QK6P9zmekwQnHdUAak7adFBK4i32wFTszivQ9wEPeugbXr2UD7tMd6ogf1dbHh76G5UszE7k1```\n* XLA - ```SvkpUizij25ZGRHGb1c8ZTAHp3VyNFU3NQuQR1PtMyCqdpoZpaYAGMfG99z5guuoktY13nrhEerqYNKXvoxD7cUM1xA6Z5rRY```\n* XHV - ```hvxyEmtbqs5TEk9U2tCxyfGx2dyGD1g8EBspdr3GivhPchkvnMHtpCR2fGLc5oEY42UGHVBMBANPge5QJ7BDXSMu1Ga2KFspQR```\n* TUBE - ```TubedBNkgkTbd2CBmLQSwW58baJNghD9xdmctiRXjrW3dE8xpUcoXimY4J5UMrnUBrUDmfQrbxRYRX9s5tQe7pWYNF2QiAdH1Fh```\n* LOKI - ```L6XqN6JDedz5Ub8KxpMYRCUoQCuyEA8EegEmeQsdP5FCNuXJavcrxPvLhpqY6emphGTYVrmAUVECsE9drafvY2hXUTJz6rW```\n* TRTL - ```TRTLv2x2bac17cngo1r2wt3CaxN8ckoWHe2TX7dc8zW8Fc9dpmxAvhVX4u4zPjpv9WeALm2koBLF36REVvsLmeufZZ1Yx6uWkYG```\n* XTNC - ```XtazhSxz1bbJLpT2JuiD2UWFUJYSFty5SVWuF6sy2w9v8pn69smkUxkTVCQc8NKCd6CBMNDGzgdPRYBKaHdbgZ5SNptVH1yPCTQ```\n* IRD - ```ir3DHyB8Ub1aAHEewMeUxQ7b7tQdWa7VL8M5oXDPohS3Me4nhwvALXM4mym2kWg9VsceT75dm6XWiWF1K4zu8RVQ1HJD8Z3R9```\n* ARQ - ```ar4Ha6ZQCkKRhkKQLfexv7VZQM2MhUmMmU9hmzswCPK4T3o2rbPKZM1GxEoYg4AFQsh57PsEets7sbpU958FAvxo2RkkTQ1gE```\n* XWP - ```fh4MCJrakhWGoS6Meqp6UxGE1GNfAjKaRdPjW36rTffDiqvEq2HWEKZhrbYRw7XJb3CXxkjL3tcYGTT39m5qgjvk1ap4bVu1R```\n* XEQ - ```Tvzp9tTmdGP9X8hCEw1Qzn18divQajJYTjR5HuUzHPKyLK5fzRt2X73FKBDzcnHMDJKdgsPhUDVrKHVcDJQVmLBg33NbkdjQb```\n* XTA - ```ipN5cNhm7RXAGACP4ZXki4afT3iJ1A6Ka5U4cswE6fBPDcv8JpivurBj3vu1bXwPyb8KZEGsFUYMmToFG4N9V9G72X4WpAQ8L```\n* DERO - ```dero1qygrgnz9gea2rqgwhdtpfpa3mvagt5uyq0g92nurwrpk6wnn7hdnzqgudsv6t```\n* CCX - ```ccx7dmnBBoRPuVcpKJSAVZKdSDo9rc7HVijFbhG34jsXL3qiqfRwu7A5ecem44s2rngDd8y8N4QnYK6WR3mXAcAZ5iXun9BQBx```\n* BLOC - ```abLoc5iUG4a6oAb2dqygxkS5M2uHWx16zHb9fUWMzpSEDwm6T7PSq2MLdHonWZ16CGfnJKRomq75aZyviTo6ZjHeYQMzNAEkjMg```\n* RVN - ```RLVJv9rQNHzXS3Zn4JH8hfAHmm1LfECMxy```\n* RTM - ```RUCyaEZxQu3Eure73XPQ57si813RYAMQKC```\n* ERG - ```9fe533kUzAE57YfPP6o3nzsYMKN2W2uCxvg8KG8Vn5DDeJGetRw```\n* BTC - ```3HRbMgcvbqHVW7P34MNGvF2Gh3DE26iHdw```\n* BCH - ```18sKoDSjLCFW9kZrXuza1qzEERnKi7bx8S```\n* ETH - ```0xfE23a61548FCCE159a541FAe9e16cEB92Da650ed```\n* ETC - ```0x4480Ad73a113BEFf05B2079E38D90c9757Ecb063```\n* LTC - ```MGj8PU1PpTNDDqRHmuEqfDpH3gxp6cJrUU```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoneroocean%2Fmeta-miner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoneroocean%2Fmeta-miner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoneroocean%2Fmeta-miner/lists"}