如何搭建山寨币矿池?

无主之地 副船长 船龄 9.8年 来源 三分
 61326  0

今天边搭建边写出来的,明天再仔细审校修改。

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install git

sudo apt-get install vim

安装网站服务器

linux+apache+mysql+php 安装方法 https://library.linode.com/lamp-guides

linux+nginx+mysql+php 安装方法 https://library.linode.com/lemp-guides

apt-get install apache2

修改/etc/apache2/apache2.conf

添加虚拟主机/etc/apache2/sites-available/example.com

ServerAdmin webmaster@example.com

ServerName example.com

ServerAlias www.example.com

DocumentRoot /srv/www/example.com/public_html/

ErrorLog /srv/www/example.com/logs/error.log

CustomLog /srv/www/example.com/logs/access.log combined

因为矿池只有一个网站,这里都是用默认设置,不再配置。有需求去看网站相关配置


安装mysql

apt-get install mysql-server

备份修改mysql配置文件

cp /etc/mysql/my.cnf ~/my.cnf.backup

有需要就安装 mysql_secure_installation

apt-get install php5-mysql

service apache2 reload

检查网站有没有运行 localhost

安装矿池

https://github.com/TheSerapher/php-mpos/wiki/Quick-Start-Guide

安装币种的服务端(以莱特币为例)

apt-get install build-essential libboost-all-dev libcurl4-openssl-dev libdb5.1-dev libdb5.1++-dev

git clone git://github.com/litecoin-project/litecoin.git

编译

cd ~/litecoin/src

make -f makefile.unix USE_UPNP=-

有些币种缺少obj文件夹报错,mkdir obj就可以了

cp litecoind /usr/bin 添加到全局路径

执行litecoind 会提示缺少配置文件 同时自动建立目录~/.litecoin/

复制下来输出

rpcuser=redcoinrpc

rpcpassword=BhLthSYC6NJ9hUVuxXNYUwoZVGEZruiLueEb6Qu3bSPj

写入下面的文件

创建~/.litecoin/litecoin.conf 内容 从这里 …

修改rpcuser rpcpassword rpcport

安装Stratum Mining 挖矿服务端

apt-get install python-twisted python-mysqldb python-dev python-setuptools python-memcache python-simplejson

easy_install -U distribute

easy_install stratum

ubuntu执行 easy_install stratum时总是报错 (尼玛 python的这玩意儿是一次性的吗?第一次用easy_install行,第二次就崩)

raise ImportError(“Entry point %r not found” % ((group,name),))

ImportError: Entry point (‘console_scripts’, ‘easy_install’) not found

解决办法

sudo rm /usr/bin/easy_install*

sudo rm /usr/local/bin/easy_install*

curl -O http://python-distribute.org/distribute_setup.py 没有curl先装curl apt-get install curl

sudo python distribute_setup.py

sudo rm distribute_setup.py

完成之后重新执行

easy_install stratum

安装挖矿服务端

git clone https://github.com/Tydus/litecoin_scrypt.git

git clone https://github.com/ahmedbodi/stratum-mining.git

配置

cd stratum-mining

git submodule init

git submodule update

cd externals/litecoin_scrypt

python setup.py install

 

cd externals/stratum

python setup.py install

cd stratum-mining

cp conf/config_sample.py conf/config.py

vim conf/config.py

配置

CENTRAL_WALLET = 'RjSTxLHk7JCEeT9G5Q6EvZ1ZDbvt1Qt1AT' #钱包用litecoind getnewaddress生成

 

COINDAEMON_TRUSTED_HOST = 'localhost'

COINDAEMON_TRUSTED_PORT = 19333 #用户名密码端口号是前面配置的rpcxxx

COINDAEMON_TRUSTED_USER = 'redcoinrpc'

COINDAEMON_TRUSTED_PASSWORD = 'BhLthSYC6NJ9hUVuxXNYUwoZVGEZruiLueEb6Qu3bSPj'

 

LISTEN_SOCKET_TRANSPORT = 3333 #挖矿使用的端口

DATABASE_DRIVER = 'mysql'

 

DB_MYSQL_HOST = 'localhost' #数据库相关

DB_MYSQL_DBNAME = 'mpos'

DB_MYSQL_USER = 'root'

DB_MYSQL_PASS = '123456'

安装mpos


安装依赖

apt-get install memcached php5-memcached php5-mysqlnd php5-curl

apachectl stop; sleep 2; apachectl start #重启apache服务 一般都是用 service apache2 reload 不知道用这个有什么特殊的


下载网站代码

cd /var/www

git clone git://github.com/TheSerapher/php-mpos.git mpos #原教程是MPOS 最讨厌看到用大写目录的

cd mpos

git checkout next


#建立数据库 跟上面挖矿服务端的配置对应的数据库

cd /var/www/mpos

mysql -uroot -p -e “create database mpos”

mysql -uroot -p mpos < sql/000_base_structure.sql


#更改smarty目录权限

chown www-data public/templates/compile public/templates/cache

#修改网站配置

cp public/include/config/global.inc.dist.php public/include/config/global.inc.php

$config['db']['host'] = 'localhost';

$config['db']['user'] = 'root';

$config['db']['pass'] = '123456';

$config['db']['port'] = 3306;

$config['db']['name'] = 'mpos';

 

$config['wallet']['type'] = 'http';

$config['wallet']['host'] = 'localhost:19333';

$config['wallet']['username'] = 'testnet';

$config['wallet']['password'] = 'testnet';

 

$config['reward_type'] = 'block';//'fixed'; fixed是固定大小 改成block就是自动读取服务端的大小

$config['reward'] = 50;

 

$config['confirmations'] = 120; //多少个确认可以支出

$config['network_confirmations'] = 120;//多少个网络确认可以支出,一般跟上面的一样

执行计划任务

cd /var/www/mpos/cronjobs/

去这篇博客下载mytask (linux的cron看起来很麻烦的样子,不如使用别人写的脚本,下载完之后照着例子写一个就行)

http://www.cnblogs.com/lykyl/archive/2013/05/06/3063905.html

解压

unzip mytask.zip

照着例子写一个tasks/xxx


#!/bin/bash 

RunArg='mposcron#now#2m' 

function mposcron()

{

/var/www/mpos/cronjobs/run-crons.sh -v -f;

return 0;

}

删除掉例子任务 sudo rm tasks/*

nohup sudo ./mytask.sh &

cd ~/stratum-mining

sudo twistd -ny launcher.tac


有时候运行会报这个错误

from autobahn.websocket import WebSocketServerProtocol, WebSocketServerFactory

exceptions.ImportError: cannot import name WebSocketServerProtocol

最后发现是因为不兼容autobahn 0.7.x 必须换成0.6.5才行 (python的东西都是这么脑残吗?)

去这里下载

https://www.versioneye.com/python/autobahn/0.6.5

直达链接

https://pypi.python.org/packages/2.7/a/autobahn/autobahn-0.6.5-py2.7.egg

下载完之后 安装

sudo easy_install autobahn-0.6.5-py2.7.egg

如果不是服务器,需要去路由做端口映射,包括网站和挖矿端口


都运行起来之后,找一个挖矿的客户端测试一下

  • 全部
  • 最佳
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐教程
换一批