Skip to content

SidGrip/php-mpos

 
 

Repository files navigation

Description

MPOS is a web based Mining Portal for various crypto currencies. It was created by TheSerapher and has hence grown quite large. Recently it was migrated into a Github Organization to make development easier. It's a community driven open source project: If you wish to participate contact the team on IRC: https://webchat.freenode.net/?channels=#mpos-dev

NOTE: This project is still under development and commits are happening on a daily basis. I do not recommend using this for a live setup as of yet. Wait for the later Release Candidate if you wish to run your pool with it. Testing pools are much appreciated though!

NOTE: This is a merge mine branch for the Blake merge mine pools by BlueDragon747

Donations

Website Footer

When you decide to use MPOS please be so kind and leave the footer intact. You are not the author of the software and should honor those that have worked on it. I don't mind changing the LTC donation address at the bottom, but keep in mind who really wrote this software and would deserve those ;-).

Donors

These people have supported this project with a donation:

Pools running MPOS

You can find a list of active pools here.

Requirements

This setup has been tested on Ubuntu 12.04, It should also work on any related distribution (Ubuntu 13.04, CentOS, RHEL, Debian).

Be aware that MPOS is only for pooled mining. Solo mining is not supported because MPOS accounting depends on submitted pool shares; solo miners create blocks directly and do not create the share records MPOS needs for reward tracking.

  • 64 bit system
  • Otherwise some coins will display wrong network hashrates
  • Apache2
  • libapache2-mod-php5
  • PHP 5.4+
  • php5-json
  • php5-mysqlnd
  • php5-memcached
  • php5-curl
  • MySQL Server
  • mysql-server
  • memcached
  • eloipool_Blakecoin
  • Blakecoind
    • Aux coins

Features

The following feature have been implemented so far:

  • Fully re-written GUI with Smarty templates
  • Full file based template support
  • NEW SQL based templates
  • Mobile WebUI
  • Scrypt, SHA256, VARDIFF Support
  • Reward Systems
  • Propotional, PPS and PPLNS
  • New Theme
  • Live Dashboard
  • AJAX Support
  • Overhauled API
  • Web User accounts
  • Re-Captcha protected registration form
  • Worker accounts
  • Worker activity
  • Worker hashrates
  • Pool statistics
  • Block statistics
  • Pool donations, fees and block bonuses
  • Manual and auto payout
  • Transaction list
  • Admin Panel
  • Cron Monitoring Overview
  • User Listing including statistics
  • Wallet information
  • User Transactions
  • News Posts
  • Pool Settings
  • Templates
  • Pool Workers
  • User Reports
  • Template Overwrite
  • Notification system
  • IDLE Workers
  • New blocks found in pool
  • Auto Payout
  • Manual Payout
  • User-to-user Invitation System
  • Support for various coins via config
  • All scrypt coins
  • All sha256d coins
  • All Blake-256 coins *8 round variant

Installation

For the Blakestream mainnet deployment path, clone this repo on the pool server and run the automated deploy bundle locally:

git clone https://github.com/BlueDragon747/php-mpos.git php-mpos

cd php-mpos
export MPOS_DOMAIN=pool.example.com
export MPOS_ADMIN_EMAIL=admin@example.com

# If you are already root, drop the sudo -E prefix.
# No host argument means install on this local server.
sudo -E bash deploy-bundle/deploy-mainnet.sh

If you prefer to deploy from a separate workstation over SSH, use the same repo clone and pass the target host:

cd php-mpos
export MPOS_DOMAIN=pool.example.com
export MPOS_ADMIN_EMAIL=admin@example.com

bash deploy-bundle/deploy-mainnet.sh root@your-vps

The deploy runs the six coin daemons from Docker images. By default it pulls sidgrip/<coin>:latest from Docker Hub. To build daemon images on the pool server instead, disable daemon image pulls:

export MPOS_PULL_DAEMON_IMAGES=0
sudo -E bash deploy-bundle/deploy-mainnet.sh

That source-build path clones: BlueDragon747/Blakecoin, BlueDragon747/photon, BlakeBitcoin/BlakeBitcoin, BlueDragon747/Electron-ELT, BlueDragon747/universalmol, and BlueDragon747/lithium from their master branches, builds daemon binaries in Docker, then tags local runtime images as local/<coin>:15.21-local.

Source builds require Docker and enough disk for six source trees and build outputs; plan for about 15 GB free under /root/blakestream-daemon-builds.

If you already built or loaded images yourself, point the deploy at those image names and disable pulls:

export MPOS_DOCKER_HUB=local
export MPOS_IMAGE_TAG=15.21-test
export MPOS_PULL_DAEMON_IMAGES=0
export SKIP_DAEMON_IMAGE_BUILD=1
sudo -E bash deploy-bundle/deploy-mainnet.sh

SKIP_DAEMON_IMAGE_BUILD=1 expects images to already be tagged as ${MPOS_DOCKER_HUB}/<coin>:${MPOS_IMAGE_TAG} on the target server.

Bootstrap options:

# Default: download bootstrap.dat files from https://bootstrap.blakestream.io
# If you are already root, use `bash deploy-bundle/deploy-mainnet.sh`.
sudo -E bash deploy-bundle/deploy-mainnet.sh

# Use a local or private bootstrap mirror. The mirror must expose:
#   /Blakecoin/bootstrap.dat
#   /Photon/bootstrap.dat
#   /BlakeBitcoin/bootstrap.dat
#   /Electron/bootstrap.dat
#   /UniversalMolecule/bootstrap.dat
#   /Lithium/bootstrap.dat
export BOOTSTRAP_URL=http://127.0.0.1:8080
sudo -E bash deploy-bundle/deploy-mainnet.sh

# Use pre-seeded bootstrap.dat files already placed in the daemon datadirs:
#   /root/.blakecoin/bootstrap.dat
#   /root/.photon/bootstrap.dat
#   /root/.blakebitcoin/bootstrap.dat
#   /root/.electron/bootstrap.dat
#   /root/.universalmolecule/bootstrap.dat
#   /root/.lithium/bootstrap.dat
sudo -E bash deploy-bundle/deploy-mainnet.sh

# Skip bootstrap replay and let daemons sync from peers instead.
export SKIP_BOOTSTRAP=1
sudo -E bash deploy-bundle/deploy-mainnet.sh

Eliopool is cloned automatically from https://github.com/BlueDragon747/eloipool_Blakecoin.git branch master unless you set ELIOPOOL_TREE to a local checkout.

See deploy-bundle/README.md for deploy details.

The older upstream Quick Start Guide describes the legacy manual MPOS flow and is not the Blakestream mainnet deploy path.

Customization

This project was meant to allow users to easily customize the system and templates. Hence no upstream framework was used to keep it as simple as possible. If you are just using the system, there will be no need to adjust anything. Things will work out of the box! But if you plan on creating your own theme, things are pretty easy:

  • Create a new theme folder in public/templates/
  • Create a new site_assets folder in public/site_assets
  • Create your own complete custom template or copy from an existing one
  • Change your theme in the Admin Panel and point it to the newly created folder

The good thing with this approach: You can keep the backend code updated! Since your new theme will never conflict with existing themes, a simple git pull will keep your installation updated. You decide which new feature you'd like to integrate on your own theme. Bugfixes to the code will work out of the box!

Other customizations are also possible but will require merging changes together. Usually users would not need to change the backend code unless they wish to work on non-existing features in MPOS. For the vast majority, adjusting themes should be enough to highlight your pool from others.

In all that, I humbly ask to keep the MPOS author reference and Github URL intact.

Related Software

There are a few other projects out there that take advantage of MPOS and it's included API. Here a quick list that you can check out for yourself:

Contributing

You can contribute to this project in different ways:

  • Report outstanding issues and bugs by creating an Issue
  • Suggest feature enhancements also via Issues
  • Fork the project, create a branch and file a pull request to improve the code itself

Contact

You can find the team on Freenode.net, #MPOS.

Team Members

Author and Github Owner: TheSerapher aka Sebastian Grewe

Developers:

License and Author

Copyright 2012, Sebastian Grewe

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

MPOS stands for Mining Portal Open Source. A unified mining interface for various Crypto-currencies!

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PHP 57.3%
  • JavaScript 15.6%
  • Smarty 11.4%
  • Python 6.2%
  • Shell 3.6%
  • Vue 3.5%
  • Other 2.4%