Please use XDagger/openxdagpool, development continues there.
This software allows you to easily open a Dagger (XDAG) pool with a nice, comfortable UI available to your users.
- detailed pool and network statistics, including graphs (hashrate, active miners, difficulty, ...)
- address balance checker tool
- leaderboard
- detailed guides on how to set-up miners
- rich administration interface allowing to customise many aspects of the website
- independent of 3rd party services (all data is exported / queried on local pool software)
- secure, with clean code and expandability in mind
- optional registration allows users to manage their miners in one place
- detailed payouts (exportable) and hashrate history for registered miners
- miner offline / miner back online alerts for registered miners
- ability to check payouts history for non-registered miners by entering miner's address, this is possible as whole pool's payment history from the beginning of operation is stored in the database
- ability to approximate earnings based on hashrate
- ability to record and plot all times the pool found a block
- utilize new 'block' command in pool software, currently it is unused
- mobile friendly design tweaks
- translations and languages support, support for a simple CMS (setup pages, other pool documents and similar)
- code refactoring, mainly
PayoutsController
, use repository and presenters for models, other improvements - add the ability to customise website design a bit, for example by allowing to upload a
favicon.ico
, or change hero color to a different one, or change bulma theme as a whole
In order to run the pool you should be fluent in Unix / Linux administration and have basic understanding of computer programming.
Please submit your pull requests with new features, improvements and / or bugfixes. Utilize the GitHub issue tracker if necessary. Please note that in order to develop the pool, good Laravel 5, webpack, mix, blade, sass, javascript and bulma experience is needed. All pull requests must have reasonable code quality and security.
- pool version at least T13.895 (previous versions printed network hashrate as an average over one hour, since 895 it is averaged over 4 hours)
- nginx, php7+, mariadb or mysql, npm 8.x
The pool website periodically fetches exported data from the pool daemon. Pool daemon-side scripts are in a separate repository.
This data is stored locally and then processed.
Data flow is one way only, from pool daemon (exports) to the pool website. Only exception is balance checking, which calls /balance.php
on pool-daemon server, but this URL is configurable in .env
. You can use any other balance checker that contains compatible output (x.xxxxxxxxx
- the address in question balance with 9 decimal places) and
can accept XDAG address in question as a GET / route parameter.
Processed results are most often stored in a database. The pool re-reads imported text files whenever necessary.
This means the pool website is totally independent of the pool itself. Should the pool software side cron tasks stop, the pool website would just endlessly display the last exported information from the pool daemon.
This giude expects that the pool software with required scripts (openxdagpool-scripts) is up and running, either on website server or on a different server. This installation guide gives an overview on how to get the pool website up and running. It can't go in-depth on every step, however all important details are provided.
Perform the following steps in order to get the website up and running:
- install all PHP7.0 requirements, for Ubuntu 16.04, use
apt-get install php7.0-bcmath php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-readline php7.0-sqlite3 php7.0-xml php7.0-zip
. Next configurephp.ini
to your preference. Setmemory_limit
to at least256M
,expose_php
toOff
, seterror_reporting
toE_ALL
. - install mysql 5.7 or mariadb. Create new database, for example
openxdagpool
, withCREATE DATABASE openxdagpool CHARACTER SET utf8mb4 COLLATE utg8mb4_unicode_ci;
run as mysql'sroot
user. Grant all privileges to a new user:GRANT ALL ON openxdagpool.* TO openxdagpool@'%' IDENTIFIED BY 'PWD!!!!';
. Choose your own password! - install nginx and set up a PHP FPM pool running as user of your choice.
- configure nginx to properly execute this website
- install composer and npm 8.x
- clone this project into
/var/www/openxdagpool
. Proceed aswww-data
or other user that the PHP FPM pool runs as cp .env.example .env
- edit
.env
and set up correct values, read the comments for help. Mail settings are required for miner alerts to work properly. - in
/var/www/openxdagpool
, runcomposer install
- run
php artisan key:generate
- run
php artisan migrate
- run
npm install
and thennpm run production
- install a letsencrypt certificate or other https certificate (optional)
- visit the web site, and register. First registered user is an administrator.
- visit the administration interface to set up your pool settings.
- payouts exports of large datasets require the mysql files privilege. Edit
/etc/mysql/mysql.conf.d/mysqld.cnf
and in the[mysqld]
section, addsecure-file-priv=/var/www/openxdagpool/public/payouts/
. Then executeGRANT FILE ON *.* TO openxdagpool@'%';
as mysql'sroot
user. Restart the mysql daemon usingservice mysql restart
asroot
. - as the PHP FPM pool user, execute
crontab -e
and enter one cron line:* * * * * php /var/www/openxdagpool/artisan schedule:run >> /dev/null 2>&1
Done! Enjoy your new OpenXDAGPool instance! ;-)