added yiimp pool instructions
This commit is contained in:
parent
63d72460c0
commit
3fa6588657
5 changed files with 156 additions and 0 deletions
|
@ -167,6 +167,8 @@ The Travis CI system makes sure that every pull request is built, and that unit
|
||||||
|
|
||||||
Testnet is maintained for testing purposes and can be accessed using the command `./lbrycrdd -testnet`. If you would like to obtain testnet credits, please contact brannon@lbry.com or grin@lbry.com .
|
Testnet is maintained for testing purposes and can be accessed using the command `./lbrycrdd -testnet`. If you would like to obtain testnet credits, please contact brannon@lbry.com or grin@lbry.com .
|
||||||
|
|
||||||
|
It is easy to solo mine on testnet. (It's easy on mainnet too, but much harder to win.) For instructions see https://github.com/lbryio/sgminer-gm and https://github.com/lbryio/lbrycrd/tree/master/contrib/mining
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This project is MIT licensed. For the full license, see [LICENSE](LICENSE).
|
This project is MIT licensed. For the full license, see [LICENSE](LICENSE).
|
||||||
|
|
56
contrib/mining/README.md
Normal file
56
contrib/mining/README.md
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
## Stratum Server Instructions
|
||||||
|
In simple terms, the stratum protocol is a protocol to distribute crypto mining work to multiple miners. Mining pools typically run a stratum endpoint that the various miners communicate with.
|
||||||
|
Please refer to other web sources for more information about mining pools or the stratum protocol.
|
||||||
|
|
||||||
|
When mining LBC, you can solo mine directly to an instance of a full node (using the node's wallet). Or you can mine as part of a pool.
|
||||||
|
You can host your own pool or use one of the many hosted LBC pools. See https://miningpoolstats.stream/lbry
|
||||||
|
|
||||||
|
This document refers to Yiimp, a derivative of Yaamp, as found here: https://github.com/tpruvot/yiimp.git .
|
||||||
|
Please refer to the instructions there as well. Yiimp has supported LBRY mining for several years.
|
||||||
|
|
||||||
|
Yiimp consists of two pieces: the web GUI for pool management (written in PHP) and the Stratum server (written in C++). The two communicate via polling a MySQL database (or MariaDB).
|
||||||
|
The web GUI and configuration of the pooling rewards, fees, etc. are out of scope here.
|
||||||
|
|
||||||
|
To help you with running Yiimp, we have created two docker images: one for the DB and one for the Yiimp Stratum Server. (See the subfolders.)
|
||||||
|
Use of the Docker images is optional; you can refer to other Yiimp and MySQL documentation for running it without Docker.
|
||||||
|
If you are using your own database instance, you will need to import the Yiimp SQL files to establish the yaamp database.
|
||||||
|
See https://github.com/tpruvot/yiimp/tree/next/sql .
|
||||||
|
|
||||||
|
### Sample Usage Steps:
|
||||||
|
|
||||||
|
#### 1. Run the full lbrycrd node:
|
||||||
|
```
|
||||||
|
./lbrycrdd -testnet -rpcuser=ruser -rpcpassword=rpswd -deprecatedrpc=validateaddress -deprecatedrpc=accounts -daemon
|
||||||
|
```
|
||||||
|
The included deprecated RPCs are required for compatibility with Yiimp.
|
||||||
|
It will need to be caught up to the current block before it is ready.
|
||||||
|
Remove `-testnet` for the real deal.
|
||||||
|
#### 2. Run and initialize the datatabase:
|
||||||
|
```
|
||||||
|
docker run -d -e MYSQL_ROOT_PASSWORD=patofpaq -e MYSQL_DATABASE=yaamp --network host --name db lbry/yiimp_db
|
||||||
|
|
||||||
|
docker exec -it db mysql -uroot -ppatofpaq
|
||||||
|
use yaamp;
|
||||||
|
delete from coins;
|
||||||
|
insert into coins(name, symbol, symbol2, algo, enable, auto_ready, rpcuser, rpcpasswd, rpchost, rpcport, rpccurl, rpcencoding, hasgetinfo, hassubmitblock, usememorypool, usesegwit, auxpow)
|
||||||
|
values('Local LBRY Instance', 'LBC', 'LBC', 'lbry', 1, 1, 'ruser', 'rpswd', '127.0.0.1', 19245, 1, 'utf-8', 0, 1, 0, 0, 0);
|
||||||
|
exit
|
||||||
|
```
|
||||||
|
Use port 19245 for testnet, port 9245 for main.
|
||||||
|
#### 3. Run the stratum server:
|
||||||
|
```
|
||||||
|
docker run --network host -d lbry/yiimp_stratum
|
||||||
|
```
|
||||||
|
Alternatively, to get more output or see how its called directly:
|
||||||
|
```
|
||||||
|
docker run --network host -it lbry/yiimp_stratum bash
|
||||||
|
cat config/lbry.conf
|
||||||
|
./stratum config/lbry
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 4. Connect sgminer to it:
|
||||||
|
```
|
||||||
|
sgminer -k lbry -o stratum+tcp://127.0.0.1:3334/ -D -T -O mn824Su1wX7ip8WcNYzXwwWqvBvkeWGRo6:x
|
||||||
|
```
|
||||||
|
The username there is the account to receive payments from the pool. The password is unused. Tested with https://github.com/lbryio/sgminer-gm.
|
||||||
|
You can use whatever miner you prefer.
|
34
contrib/mining/yiimp_db/Dockerfile
Normal file
34
contrib/mining/yiimp_db/Dockerfile
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
FROM mariadb:10.1-bionic
|
||||||
|
ARG REPOSITORY=https://github.com/tpruvot/yiimp.git
|
||||||
|
|
||||||
|
ENV BUILD_DEPS \
|
||||||
|
ca-certificates \
|
||||||
|
git
|
||||||
|
|
||||||
|
COPY init-db.sh /docker-entrypoint-initdb.d/
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends ${BUILD_DEPS} \
|
||||||
|
&& git clone --progress ${REPOSITORY} ~/yiimp \
|
||||||
|
&& mkdir /tmp/sql \
|
||||||
|
&& mv ~/yiimp/sql/2016-04-03-yaamp.sql.gz /tmp/sql/0000-00-00-initial.sql.gz \
|
||||||
|
&& cp ~/yiimp/sql/*.sql /tmp/sql \
|
||||||
|
&& apt-get purge -y --auto-remove ${BUILD_DEPS} \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& rm -rf ~/yiimp
|
||||||
|
|
||||||
|
EXPOSE 3306
|
||||||
|
|
||||||
|
ARG VCS_REF
|
||||||
|
ARG BUILD_DATE
|
||||||
|
LABEL maintainer="blockchain@lbry.com" \
|
||||||
|
decription="yiimp_db" \
|
||||||
|
version="1.0" \
|
||||||
|
org.label-schema.name="yiimp_db" \
|
||||||
|
org.label-schema.description="Use this to run a compatible MariaDB for yiimp's stratum server" \
|
||||||
|
org.label-schema.build-date=$BUILD_DATE \
|
||||||
|
org.label-schema.vcs-ref=$VCS_REF \
|
||||||
|
org.label-schema.vcs-url="https://github.com/lbryio/lbrycrd" \
|
||||||
|
org.label-schema.schema-version="1.0.0-rc1" \
|
||||||
|
org.label-schema.vendor="LBRY" \
|
||||||
|
org.label-schema.docker.cmd="docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t lbry/yiimp_db yiimp_db"
|
10
contrib/mining/yiimp_db/init-db.sh
Normal file
10
contrib/mining/yiimp_db/init-db.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for f in /tmp/sql/*; do
|
||||||
|
case "$f" in
|
||||||
|
*.sql) echo "$0: running $f"; "${mysql[@]}" --force < "$f"; echo ;;
|
||||||
|
*.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
|
||||||
|
*) echo "$0: ignoring $f" ;;
|
||||||
|
esac
|
||||||
|
echo
|
||||||
|
done
|
54
contrib/mining/yiimp_stratum/Dockerfile
Normal file
54
contrib/mining/yiimp_stratum/Dockerfile
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
FROM alpine:3.7
|
||||||
|
ARG REPOSITORY=https://github.com/tpruvot/yiimp.git
|
||||||
|
|
||||||
|
ENV BUILD_DEPS \
|
||||||
|
build-base \
|
||||||
|
git
|
||||||
|
|
||||||
|
ENV RUN_DEPS \
|
||||||
|
curl-dev \
|
||||||
|
gmp-dev \
|
||||||
|
mariadb-dev \
|
||||||
|
libssh2-dev \
|
||||||
|
curl
|
||||||
|
|
||||||
|
RUN apk update \
|
||||||
|
&& apk add --no-cache ${BUILD_DEPS} \
|
||||||
|
&& apk add --no-cache ${RUN_DEPS} \
|
||||||
|
&& git clone --progress ${REPOSITORY} ~/yiimp \
|
||||||
|
&& sed -i 's/ulong/uint64_t/g' ~/yiimp/stratum/algos/rainforest.c \
|
||||||
|
&& find ~/yiimp -name '*akefile' -exec sed -i 's/-march=native//g' {} + \
|
||||||
|
&& make -C ~/yiimp/stratum/iniparser \
|
||||||
|
&& make -C ~/yiimp/stratum \
|
||||||
|
&& mkdir /var/stratum /var/stratum/config \
|
||||||
|
&& cp ~/yiimp/stratum/run.sh /var/stratum \
|
||||||
|
&& cp ~/yiimp/stratum/config/run.sh /var/stratum/config \
|
||||||
|
&& cp ~/yiimp/stratum/stratum /var/stratum \
|
||||||
|
&& cp ~/yiimp/stratum/config.sample/lbry.conf /var/stratum/config \
|
||||||
|
&& sed -i 's/yaamp.com/127.0.0.1/g' /var/stratum/config/lbry.conf \
|
||||||
|
&& sed -i 's/yaampdb/127.0.0.1/g' /var/stratum/config/lbry.conf \
|
||||||
|
&& rm -rf ~/yiimp \
|
||||||
|
&& apk del ${BUILD_DEPS} \
|
||||||
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
|
RUN apk add --no-cache bash
|
||||||
|
|
||||||
|
ARG VCS_REF
|
||||||
|
ARG BUILD_DATE
|
||||||
|
LABEL maintainer="blockchain@lbry.com" \
|
||||||
|
decription="yiimp_stratum" \
|
||||||
|
version="1.0" \
|
||||||
|
org.label-schema.name="yiimp_stratum" \
|
||||||
|
org.label-schema.description="Use this to run yiimp's stratum server in lbry mode" \
|
||||||
|
org.label-schema.build-date=$BUILD_DATE \
|
||||||
|
org.label-schema.vcs-ref=$VCS_REF \
|
||||||
|
org.label-schema.vcs-url="https://github.com/lbryio/lbrycrd" \
|
||||||
|
org.label-schema.schema-version="1.0.0-rc1" \
|
||||||
|
org.label-schema.vendor="LBRY" \
|
||||||
|
org.label-schema.docker.cmd="docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t lbry/yiimp_stratum yiimp_stratum"
|
||||||
|
|
||||||
|
WORKDIR /var/stratum
|
||||||
|
|
||||||
|
CMD ["./stratum", "config/lbry"]
|
||||||
|
|
||||||
|
EXPOSE 3334
|
Loading…
Reference in a new issue