├── start.sh ├── Dockerfile ├── config.json └── README.md /start.sh: -------------------------------------------------------------------------------- 1 | docker build -t monero_stratum . 2 | docker run -p 3333:3333 -p 1111:1111 -p 8082:8082 --add-host="localhost:192.168.65.1" monero_stratum 3 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:16.04 2 | 3 | RUN apt-get update 4 | 5 | RUN apt-get install git cmake build-essential libssl-dev pkg-config libboost-all-dev golang -y 6 | 7 | RUN git clone https://github.com/monero-project/monero.git 8 | WORKDIR /monero 9 | RUN git checkout tags/v0.10.3.1 -b v0.10.3.1 10 | RUN cmake -DBUILD_SHARED_LIBS=1 . 11 | RUN make 12 | 13 | ENV GOPATH=/go 14 | RUN go get github.com/goji/httpauth 15 | RUN go get github.com/yvasiyarov/gorelic 16 | RUN go get github.com/gorilla/mux 17 | 18 | WORKDIR / 19 | RUN git clone https://github.com/sammy007/monero-stratum.git 20 | WORKDIR /monero-stratum 21 | RUN MONERO_DIR=/monero cmake . 22 | RUN make 23 | RUN go build -o pool main.go 24 | 25 | WORKDIR /monero-stratum 26 | 27 | ADD config.json /monero-stratum/config.json 28 | 29 | CMD ["./pool", "config.json"] 30 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "address": "45Dizd9V5VvanN7YmJcNo6ddp8pcyuxFgFkL9zipWRnTfZJeQ5F4PFN7Dn9b5GkJnMiVQ1PVG8DyTfmjouLFBWtp5HYjs9w", 3 | "bypassAddressValidation": false, 4 | "bypassShareValidation": true, 5 | 6 | "threads": 2, 7 | 8 | "estimationWindow": "15m", 9 | "luckWindow": "24h", 10 | "largeLuckWindow": "72h", 11 | 12 | "blockRefreshInterval": "1s", 13 | 14 | "stratum": { 15 | "timeout": "15m", 16 | 17 | "listen": [ 18 | { 19 | "host": "0.0.0.0", 20 | "port": 1111, 21 | "diff": 5000, 22 | "maxConn": 32768 23 | }, 24 | { 25 | "host": "0.0.0.0", 26 | "port": 3333, 27 | "diff": 10000, 28 | "maxConn": 32768 29 | } 30 | ] 31 | }, 32 | 33 | "frontend": { 34 | "enabled": true, 35 | "listen": "0.0.0.0:8082", 36 | "login": "admin", 37 | "password": "", 38 | "hideIP": false 39 | }, 40 | 41 | "upstreamCheckInterval": "5s", 42 | 43 | "upstream": [ 44 | { 45 | "name": "Main", 46 | "host": "192.168.65.1", 47 | "port": 18081, 48 | "timeout": "10s" 49 | } 50 | ] 51 | } 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # What is it? 2 | 3 | This project will allow you to solo mine using any monero miner you like, be it CPU or GPU (literally any miner that works with a stratum pool)! 4 | 5 | By running `start.sh` (if you have docker installed) you are automatically creating a [Monero Stratum pool](https://github.com/sammy007/monero-stratum.git) in your local machine. 6 | 7 | You can then connect any miner you like to this pool by connecting to localhost:3333 (or remote_ip:3333 if your miner is on another computer). 8 | 9 | Just remember to edit the `configs.json` with your wallet's address and upstream address. 10 | 11 | The upstream address is where the pool gets the blockchain and its real-time updates (to read and submit new blocks). 12 | 13 | In practice this means you need to have `monerod` (monero daemon) running somewhere (in the local machine where the pool is running for eg.). 14 | 15 | Other alternative is to download monero-wallet-gui and start the daemon there. 16 | 17 | If it is your first time you'll have to download the entire blockchain (it will take hours), or you can just download it from [here](https://downloads.getmonero.org/blockchain.raw) and then import it to your wallet app using `monero-blockchain-import --verify 0 --input-file ./blockchain.raw`. 18 | 19 | `monero-blockchain-import` should be within the folder of monero-wallet-gui or your [monero](https://github.com/monero-project/monero.git) installation (check the Dockerfile of this project to see how monero is installed). 20 | 21 | ## The noob way 22 | 23 | So, in sum if you are a beginner: 24 | 25 | 1. Install monero-wallet-gui. 26 | 2. Download the blockchain and use the `monero-blockchain-import` command as I stated above, or just leave the wallet synchronizing for about half a day. 27 | 3. Change the address in the `config.json` file to your wallet receive address (or leave mine there if you are feeling generous :) ). 28 | 4. Run `sh start.sh` and wait some minutes until you start seeing logs like `2017/08/29 23:56:51 Loading config: /monero-stratum/config.json`. 29 | 5. Configure any miner of your choice (eg. xmr-stak-nvidia, ccminer, etc) and configure it to use this stratum, for eg. my miner was configured this way: `ccminer -o stratum+tcp://192.168.0.108:3333 -u `, where `192.168.0.108` is the IP of the machine running this docker container, which could be `localhost`. 30 | 6. You can also activate the solo mining option in the Advanced tab on your monero-wallet-gui to add some more horse power. 31 | 7. Take a look at http://localhost:8082/ in the machine where you're running the container. 32 | 8. Enjoy your solo mining! 33 | 34 | **Note:** You can add more miners, if you are able to host this online you can create your own online private pool! 35 | 36 | --------------------------------------------------------------------------------