{"id":13489780,"url":"https://github.com/Snipa22/xmr-node-proxy","last_synced_at":"2025-03-28T05:31:17.595Z","repository":{"id":41967085,"uuid":"96047028","full_name":"Snipa22/xmr-node-proxy","owner":"Snipa22","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-11T16:55:18.000Z","size":109,"stargazers_count":221,"open_issues_count":90,"forks_count":210,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-03-20T23:52:36.680Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Snipa22.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-07-02T20:23:48.000Z","updated_at":"2025-03-13T16:29:16.000Z","dependencies_parsed_at":"2024-01-15T16:27:50.457Z","dependency_job_id":"c9c10de0-ca4f-4172-a0aa-bbde46682fce","html_url":"https://github.com/Snipa22/xmr-node-proxy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snipa22%2Fxmr-node-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snipa22%2Fxmr-node-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snipa22%2Fxmr-node-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Snipa22%2Fxmr-node-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Snipa22","download_url":"https://codeload.github.com/Snipa22/xmr-node-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245978200,"owners_count":20703675,"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":[],"created_at":"2024-07-31T19:00:35.027Z","updated_at":"2025-03-28T05:31:15.208Z","avatar_url":"https://github.com/Snipa22.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# xmr-node-proxy\n\n\n## Setup Instructions\n\nBased on a clean Ubuntu 16.04 LTS minimal install\n\n## Deployment via Installer\n\n1. Create a user 'nodeproxy' and assign a password (or add an SSH key. If you prefer that, you should already know how to do it)\n\n```bash\nuseradd -d /home/nodeproxy -m -s /bin/bash nodeproxy\npasswd nodeproxy\n```\n\n2. Add your user to `/etc/sudoers`, this must be done so the script can sudo up and do it's job.  We suggest passwordless sudo.  Suggested line: `\u003cUSER\u003e ALL=(ALL) NOPASSWD:ALL`.  Our sample builds use: `nodeproxy ALL=(ALL) NOPASSWD:ALL`\n\n```bash\necho \"nodeproxy ALL=(ALL) NOPASSWD:ALL\" \u003e\u003e /etc/sudoers\n```\n\n3. Log in as the **NON-ROOT USER** you just created and run the [deploy script](https://raw.githubusercontent.com/Snipa22/xmr-node-proxy/master/install.sh).  This is very important!  This script will install the proxy to whatever user it's running under!\n\n```bash\ncurl -L https://raw.githubusercontent.com/Snipa22/xmr-node-proxy/master/install.sh | bash\n```\n\n3. Once it's complete, copy `example_config.json` to `config.json` and edit as desired.\n4. Run: `source ~/.bashrc`  This will activate NVM and get things working for the following pm2 steps.\n8. Once you're happy with the settings, go ahead and start all the proxy daemon, commands follow.\n\n```shell\ncd ~/xmr-node-proxy/\npm2 start proxy.js --name=proxy --log-date-format=\"YYYY-MM-DD HH:mm Z\"\npm2 save\n```\nYou can check the status of your proxy by either issuing\n\n```\npm2 logs proxy\n```\n\nor using the pm2 monitor\n\n```\npm2 monit\n```\n\n## Known Issues\n\nVMs with 512Mb or less RAM will need some swap space in order to compile the C extensions for node.  Bignum and the CN libraries can chew through some serious memory during compile.  In regards to this, one of our users has put together a guide for T2.Micro servers: https://docs.google.com/document/d/1m8E4_pDwKuFo0TnWJaO13LDHqOmbL6YrzyR6FvzqGgU (Credit goes to MayDay30 for his work with this!)\n\nIf not running on an Ubuntu 16.04 system, please make sure your kernel is at least 3.2 or higher, as older versions will not work for this.\n\nMany smaller VMs come with ulimits set very low. We suggest looking into setting the ulimit higher. In particular, `nofile` (Number of files open) needs to be raised for high-usage instances.\n\nIf your system doesn't have AES-NI, then it will throw an error during the node-multi-hashing install, as this requires AES-NI.  If this is the case, go ahead and change the following line:\n\"multi-hashing\": \"git+https://github.com/Snipa22/node-multi-hashing-aesni.git\",\nto:\n\"multi-hashing\": \"git://github.com/clintar/node-multi-hashing.git#Nan-2.0\",\n\nIn your `packages.json`, do a `npm install`, and it should pass.\n\n\n## Performance\n\nThe proxy gains a massive boost over a basic pool by accepting that the majority of the hashes submitted _will_ not be valid (does not exceed the required difficulty of the pool).  Due to this, the proxy doesn't bother with attempting to validate the hash state nor value until the share difficulty exceeds the pool difficulty.\n\nIn testing, we've seen AWS t2.micro instances take upwards of 2k connections, while t2.small taking 6k.  The proxy is extremely light weight, and while there are more features on the way, it's our goal to keep the proxy as light weight as possible.\n\n## Configuration Guidelines\n\nPlease check the [wiki](https://github.com/Snipa22/xmr-node-proxy/wiki/config_review) for information on configuration\n\n## Developer Donations\n\nThe proxy is pre-configured for a 1% donation. This is easily toggled inside of it's configuration. If you'd like to make a one time donation, the addresses are as follows:\n\n* XMR - 44Ldv5GQQhP7K7t3ZBdZjkPA7Kg7dhHwk3ZM3RJqxxrecENSFx27Vq14NAMAd2HBvwEPUVVvydPRLcC69JCZDHLT2X5a4gr\n* BTC - 15fkPTtN8cRXD3moKWDoXjuiTaS9FgA3UE\n\n## Installation/Configuration Assistance\n\nIf you need help installing the pool from scratch, please have your servers ready, which would be Ubuntu 16.04 servers, blank and clean, DNS records pointed.  These need to be x86_64 boxes with AES-NI Available.\n\nInstallation assistance is 4 XMR, with a 2 XMR deposit, with remainder to be paid on completion.  \nConfiguration assistance is 2 XMR with a 1 XMR deposit, and includes debugging your proxy configurations, ensuring that everything is running, and tuning for your uses/needs.  \n\nSSH access with a sudo-enabled user will be needed for installs, preferably the user that is slated to run the pool.\n\nPlease contact Snipa at: proxy_installs@snipanet.com or via IRC on irc.freenode.net in #monero-pools\n\n## Known Working Pools\n\n* [XMRPool.net](https://xmrpool.net)\n* [supportXMR.com](https://supportxmr.com)\n* [pool.xmr.pt](https://pool.xmr.pt)\n* [minemonero.pro](https://minemonero.pro)\n* [XMRPool.xyz](https://xmrpool.xyz)\n* [ViaXMR.com](https://viaxmr.com)\n* [mine.MoneroPRO.com](https://mine.moneropro.com)\n* [MinerCircle.com](https://www.minercircle.com)\n* [xmr.p00ls.net](https://www.p00ls.net)\n* [MoriaXMR.com](https://moriaxmr.com)\n* [MoneroOcean.stream](https://moneroocean.stream)\n* [SECUmine.net](https://secumine.net)\n* [Chinaenter.cn](http://xmr.chinaenter.cn)\n* [XMRPool.eu](https://xmrpool.eu)\n\nIf you'd like to have your pool added, please make a pull request here, or contact Snipa on IRC!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSnipa22%2Fxmr-node-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSnipa22%2Fxmr-node-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSnipa22%2Fxmr-node-proxy/lists"}