Skip to content

Commit

Permalink
KawPow Mining Pools - Ravencoin, Neoxa, Meowcoin (akash-network#347)
Browse files Browse the repository at this point in the history
* Add kawpow-pool

Add support for Ravencoin, Neoxa, and Meowcoin!

* Update port mappings

* Add README and cleanup to final images

* Bump Image

* Touch up README

* Update signedBy

* Remove blocknotify for now
  • Loading branch information
88plug authored Oct 19, 2022
1 parent f246983 commit f32d586
Show file tree
Hide file tree
Showing 22 changed files with 1,048 additions and 0 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,16 @@ Awesome DeFi apps you can deploy on Akash

### Mining Pools

Pre-configured mining pools. Help distribute hashrate and secure your favorite coins!

KawPow Algorithm

- [Ravencoin Pool](kawpow-pool-ravencoin)
- [Neoxa Pool](kawpow-pool-neoxa)
- [Meowcoin Pool](kawpow-pool-meowcoin)

XMR/Monero

- [monero-pool by jtgrassie](monero-pool)

### Peer-to-peer File Sharing
Expand Down
14 changes: 14 additions & 0 deletions kawpow-pool-meowcoin/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM ubuntu:22.04
RUN apt-get update ; apt-get dist-upgrade -yqq ; apt-get install -y git wget unzip
RUN wget https://github.com/JustAResearcher/Meowcoin/releases/download/V1.0.3/MEOW-1.0.3-CLI-x86_64-linux-gnu.tar.gz
RUN tar -zxvf MEOW-1.0.3-CLI-x86_64-linux-gnu.tar.gz
RUN mkdir -p /root/.meowcoin

EXPOSE 9766

ENV PRIVATE_KEY=

COPY blocknotify /root/.meowcoin/blocknotify
COPY starter.sh /

ENTRYPOINT ["./starter.sh"]
31 changes: 31 additions & 0 deletions kawpow-pool-meowcoin/Dockerfile-pool
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM ubuntu:18.04
RUN apt-get update ; apt-get install -y git sudo software-properties-common
RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata

RUN add-apt-repository -y ppa:chris-lea/redis-server ; add-apt-repository -y ppa:bitcoin/bitcoin ; apt update
RUN apt install -y libdb4.8-dev libdb4.8++-dev libssl-dev libboost-all-dev libminiupnpc-dev libtool autotools-dev redis-server
RUN apt install -y git npm nodejs
RUN apt-get install -y apt-transport-https software-properties-common build-essential autoconf pkg-config make gcc g++ screen wget curl ntp fail2ban
RUN cd ~
RUN git config --global http.https://gopkg.in.followRedirects true
RUN git clone https://github.com/88plug/kawpow-pool

EXPOSE 8080

RUN cd kawpow-pool/ ; chmod +x ./install.sh ; ./install.sh
COPY start.sh /

ENV DAEMON_HOST=
ENV DAEMON_PORT=
ENV DAEMON_USER=
ENV DAEMON_PASS=

ENV WALLET=
ENV FEE_WALLET=
ENV FEE_AMOUNT=0.1
ENV RAVEN_ENABLE=false
ENV NEOXA_ENABLE=false
ENV MEOWCOIN_ENABLE=true
#1% fee

ENTRYPOINT ["./start.sh"]
66 changes: 66 additions & 0 deletions kawpow-pool-meowcoin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# NOMP KawPoW Algorithm Mining Pool
Highly Efficient mining pool for Coins based on KawPoW algo!

# Highly modified for the Akash.Network
Supports Ravencoin, Neoxa, Meowcoin

### Requirements

# I already have a Mewocoin wallet and private key

Great! You are steps away from your own private mining pool. Click Deploy and update the required variables with your wallet information

```
WALLET=
FEE_WALLET=
PRIVATE_KEY=
```

After the deployment has started click on the URI / URL in the Deployment Details page to access the web interface.

# I don't have a Meowcoin wallet or private key.

You need a Meowcoin wallet address and private key to setup the mining pool. If you do not have one, simply deploy this default template without any WALLET or PRIVATE_KEY defined.
In Cloudmos, select "Shell" and from the services tab click on "meowcoin". In the "Type command window" use the 2 following commands to generate a new address and show the private key of the new address.

```
/meowcoin-cli getnewaddress
YOUR_NEW_ADDRESS
/meowcoin-cli dumpprivkey YOUR_NEW_ADDRESS
```
* Replace YOUR_NEW_ADDRESS after dumpprivkey to get the private key!

You can now update the variables in the deployment with your new wallet and private key. Be sure to write down the private key or keep it in a safe place!

# Connecting to the Mining Pool / Stratum Ports

The mining pool is pre-configured to map each stratum port to an ephemeral port. After your deployment is successful you will see the new port numbers to connect to.

# What about security?

The default template is configured to only deploy to audited Akash providers. If you remove this `signedBy` attribution key you are putting your private key at risk.
The pool wallet should NEVER be used for long term/cold storage of coins.

-------
### Screenshots
#### Home<br />
![Home](https://raw.githubusercontent.com/Satoex/kawpow-pool/master/docs/frontend/home.png)

#### Pool Stats<br />
![Pool Stats](https://raw.githubusercontent.com/Satoex/kawpow-pool/master/docs/frontend/poolstats.png)<br /><br />

#### Miner Stats<br />
![Miner Stats](https://raw.githubusercontent.com/Satoex/kawpow-pool/master/docs/frontend/minerstats.png)<br /><br />

#### Payments<br />
![Payments](https://raw.githubusercontent.com/Satoex/kawpow-pool/master/docs/frontend/payments.png)<br /><br />

-------
### Node Open Mining Portal consists of 3 main modules:
| Project | Link |
| ------------- | ------------- |
| [KawPoWNOMP](https://github.com/Satoex/kawpow-pool.git) | https://github.com/Satoex/kawpow-pool.git |
| [Stratum Pool](https://github.com/GRinvestPOOL/kawpow-stratum-pool-1.git) | https://github.com/GRinvestPOOL/kawpow-stratum-pool-1.git |
| [Node Multihashing](https://github.com/zone117x/node-multi-hashing.git) | https://github.com/zone117x/node-multi-hashing.git |

-------
Binary file added kawpow-pool-meowcoin/blocknotify
Binary file not shown.
132 changes: 132 additions & 0 deletions kawpow-pool-meowcoin/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
---
version: "2.0"

services:
kawpow-pool:
image: cryptoandcoffee/akash-kawpow-pool:9
expose:
- port: 17117
to:
- service: meowcoin
#Pool API
- port: 8788
to:
- global: true
#P2P Port
- port: 8080
as: 80
to:
- global: true
#Web UI Port
- port: 10001
as: 10001
to:
- global: true
#Difficulty: 0.001
- port: 10002
as: 10002
to:
- global: true
#Difficulty: 0.01
- port: 10003
as: 10003
to:
- global: true
#Difficulty: 0.1
- port: 10004
as: 10004
to:
- global: true
#Difficulty: 0.5
- port: 10005
as: 10005
to:
- global: true
#Difficulty: 1
- port: 10006
as: 10006
to:
- global: true
#Difficulty: 2
- port: 10007
as: 10007
to:
- global: true
#Difficulty: 4
- port: 10008
as: 10008
to:
- global: true
#Difficulty: 0.5
env:
- RAVEN_ENABLE=false
- NEOXA_ENABLE=false
- MEOWCOIN_ENABLE=true
- WALLET=
- FEE_WALLET=
- FEE_AMOUNT=0.1
- DAEMON_HOST=meowcoin
- DAEMON_PORT=9766
- DAEMON_USER=user1
- DAEMON_PASS=pass1
meowcoin:
image: cryptoandcoffee/akash-meowcoin:3
expose:
- port: 9766
to:
- service: kawpow-pool
env:
- PRIVATE_KEY=
profiles:
compute:
kawpow-pool:
resources:
cpu:
units: 2
#Min 0.01 / Max 256 cpu.units
memory:
size: 4Gi
#Min 8Gi for kawpow-pool / Max 512Gi
storage:
size: 8Gi
#Current blockchain size is > 144Gi
#Max 32Ti
meowcoin:
resources:
cpu:
units: 2
#Min 0.01 / Max 256 cpu.units
memory:
size: 4Gi
#Min 8Gi for kawpow-pool / Max 512Gi
storage:
size: 10Gi
#Current blockchain size is > 144Gi
#Max 32Ti
placement:
akash:
#######################################################
#Keep this section to deploy on trusted providers
signedBy:
anyOf:
- "akash1365yvmc4s7awdyj3n2sav7xfx76adc6dnmlx63"
#######################################################
#Remove this section to deploy on untrusted providers
#Beware* You may have deployment, security, or other issues on untrusted providers
#https://docs.akash.network/providers/akash-audited-attributes
pricing:
kawpow-pool:
denom: uakt
amount: 10000 #Keep high to show all bids
meowcoin:
denom: uakt
amount: 10000 #Keep high to show all bids
deployment:
kawpow-pool:
akash:
profile: kawpow-pool
count: 1
meowcoin:
akash:
profile: meowcoin
count: 1
85 changes: 85 additions & 0 deletions kawpow-pool-meowcoin/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
#!/bin/bash
cd kawpow-pool/
ls
chmod +x *.sh
service redis-server start
rm package-lock.json
rm -rf node_modules

npm install

sed -i '/const TAGS/,/taggedHash;/d' node_modules/bitcoinjs-lib/src/crypto.js

if [[ $NEOXA_ENABLE == "true" ]]; then
sed -i 's/NEOXA_ENABLE/true/g' pool_configs/neoxa.json
sed -i 's/WALLET/"'"$WALLET"'"/g' pool_configs/neoxa.json
sed -i 's/FEE/"'"${FEE_WALLET}"'"/g' pool_configs/neoxa.json
sed -i 's/AMOUNT/'${FEE_AMOUNT}'/g' pool_configs/neoxa.json
sed -i 's/HOST/"'"${DAEMON_HOST}"'"/g' pool_configs/neoxa.json
sed -i 's/PORT/'${DAEMON_PORT}'/g' pool_configs/neoxa.json
sed -i 's/USER/"'"${DAEMON_USER}"'"/g' pool_configs/neoxa.json
sed -i 's/PASS/"'"${DAEMON_PASS}"'"/g' pool_configs/neoxa.json
else
sed -i 's/NEOXA_ENABLE/false/g' pool_configs/neoxa.json
sed -i 's/WALLET/"'"$WALLET"'"/g' pool_configs/neoxa.json
sed -i 's/FEE/"'"${FEE_WALLET}"'"/g' pool_configs/neoxa.json
sed -i 's/AMOUNT/'${FEE_AMOUNT}'/g' pool_configs/neoxa.json
sed -i 's/HOST/"'"${DAEMON_HOST}"'"/g' pool_configs/neoxa.json
sed -i 's/PORT/'${DAEMON_PORT}'/g' pool_configs/neoxa.json
sed -i 's/USER/"'"${DAEMON_USER}"'"/g' pool_configs/neoxa.json
sed -i 's/PASS/"'"${DAEMON_PASS}"'"/g' pool_configs/neoxa.json
fi


if [[ $RAVEN_ENABLE == "true" ]]; then
sed -i 's/RAVEN_ENABLE/true/g' pool_configs/ravencoin.json
sed -i 's/WALLET/"'"$WALLET"'"/g' pool_configs/ravencoin.json
sed -i 's/FEE/"'"${FEE_WALLET}"'"/g' pool_configs/ravencoin.json
sed -i 's/AMOUNT/'${FEE_AMOUNT}'/g' pool_configs/ravencoin.json
sed -i 's/HOST/"'"${DAEMON_HOST}"'"/g' pool_configs/ravencoin.json
sed -i 's/PORT/'${DAEMON_PORT}'/g' pool_configs/ravencoin.json
sed -i 's/USER/"'"${DAEMON_USER}"'"/g' pool_configs/ravencoin.json
sed -i 's/PASS/"'"${DAEMON_PASS}"'"/g' pool_configs/ravencoin.json
else
sed -i 's/RAVEN_ENABLE/false/g' pool_configs/ravencoin.json
sed -i 's/WALLET/"'"$WALLET"'"/g' pool_configs/ravencoin.json
sed -i 's/FEE/"'"${FEE_WALLET}"'"/g' pool_configs/ravencoin.json
sed -i 's/AMOUNT/'${FEE_AMOUNT}'/g' pool_configs/ravencoin.json
sed -i 's/HOST/"'"${DAEMON_HOST}"'"/g' pool_configs/ravencoin.json
sed -i 's/PORT/'${DAEMON_PORT}'/g' pool_configs/ravencoin.json
sed -i 's/USER/"'"${DAEMON_USER}"'"/g' pool_configs/ravencoin.json
sed -i 's/PASS/"'"${DAEMON_PASS}"'"/g' pool_configs/ravencoin.json
fi

if [[ $MEOWCOIN_ENABLE == "true" ]]; then
sed -i 's/MEOWCOIN_ENABLE/true/g' pool_configs/meowcoin.json
sed -i 's/WALLET/"'"$WALLET"'"/g' pool_configs/meowcoin.json
sed -i 's/FEE/"'"${FEE_WALLET}"'"/g' pool_configs/meowcoin.json
sed -i 's/AMOUNT/'${FEE_AMOUNT}'/g' pool_configs/meowcoin.json
sed -i 's/HOST/"'"${DAEMON_HOST}"'"/g' pool_configs/meowcoin.json
sed -i 's/PORT/'${DAEMON_PORT}'/g' pool_configs/meowcoin.json
sed -i 's/USER/"'"${DAEMON_USER}"'"/g' pool_configs/meowcoin.json
sed -i 's/PASS/"'"${DAEMON_PASS}"'"/g' pool_configs/meowcoin.json
else
sed -i 's/MEOWCOIN_ENABLE/false/g' pool_configs/meowcoin.json
sed -i 's/WALLET/"'"$WALLET"'"/g' pool_configs/meowcoin.json
sed -i 's/FEE/"'"${FEE_WALLET}"'"/g' pool_configs/meowcoin.json
sed -i 's/AMOUNT/'${FEE_AMOUNT}'/g' pool_configs/meowcoin.json
sed -i 's/HOST/"'"${DAEMON_HOST}"'"/g' pool_configs/meowcoin.json
sed -i 's/PORT/'${DAEMON_PORT}'/g' pool_configs/meowcoin.json
sed -i 's/USER/"'"${DAEMON_USER}"'"/g' pool_configs/meowcoin.json
sed -i 's/PASS/"'"${DAEMON_PASS}"'"/g' pool_configs/meowcoin.json
fi


cat pool_configs/neoxa.json
cat pool_configs/ravencoin.json
cat pool_configs/meowcoin.json

cat node_modules/bitcoinjs-lib/src/crypto.js
cd scripts
gcc blocknotify.c -o blocknotify
cp blocknotify /usr/local/bin
cd ..
./pool-start.sh
./pool-logs-watch.sh
18 changes: 18 additions & 0 deletions kawpow-pool-meowcoin/starter.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash

cat <<EOT > /root/.meowcoin/meowcoin.conf
rpcuser=user1
rpcpassword=pass1
onlynet=ipv4
#blocknotify=/root/.meowcoin/blocknotify meowcoin:17117 meowcoin %s
#zmqpubhashblock=tcp://127.0.0.1:15101
rpcbind=0.0.0.0
server=1
listen=1
rpcallowip=::/0
EOT

/meowcoind -daemon
sleep 5
/meowcoin-cli importprivkey $PRIVATE_KEY
tail -f /root/.meowcoin/debug.log -n1000
15 changes: 15 additions & 0 deletions kawpow-pool-neoxa/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM ubuntu:22.04
RUN apt-get update ; apt-get dist-upgrade -yqq ; apt-get install -y git wget unzip
RUN wget https://github.com/NeoxaChain/Neoxa/releases/download/v1.0.3/neoxad-linux64.zip
RUN unzip neoxad-linux64.zip ; rm neoxad-linux64.zip
RUN mkdir -p /root/.neoxa

EXPOSE 9766

COPY blocknotify /root/.neoxa/blocknotify

COPY starter.sh /

ENV PRIVATE_KEY=

ENTRYPOINT ["./starter.sh"]
Loading

0 comments on commit f32d586

Please sign in to comment.