Project

General

Profile

Support #892

Updated by Daniel Curtis over 7 years ago

This is a guide for setting up btcpool on FreeBSD 10. 

 *+WARNING+*: This fails to build on FreeBSD 10 at the moment 4/25/17 

 h2. Prepare the Environment 

 * Make sure the system is up to date: 
 <pre> 
 pkg update && pkg upgrade 
 portsnap fetch extract 
 </pre> 

 * Create a btcpool user: 
 <pre> 
 pw add user -n btcpool -s /sbin/nologin -c "BTC Pool" 
 </pre>  

 * Install a few dependencies: 
 <pre> 
 pkg install gcc git gmake portmaster autotools libtool autoconf automake cmake openssl boost-libs gmp libconfig libzmq4 glog librdkafka libevent 
 </pre> 

 * Install Zookeeper and ensure its running, refer to issue #890 
 <pre> 
 service zookeeper start 
 </pre> 

 * Install Kafka and ensure its running, refer to issue #891 
 <pre> 
 service kafka start 
 </pre> 

 * Add the following to the @make.conf@ file to enable ZMQ while compiling from ports: 
 <pre> 
 echo 'OPTIONS_UNSET+= DOCS NLS X11 EXAMPLES' >> /etc/make.conf 
 echo 'OPTIONS_SET+= ZMQ' >> /etc/make.conf 
 </pre> 

 * Compile bitcoin-daemon from ports: 
 <pre> 
 portmaster net-p2p/bitcoin 
 </pre> 

 * Compile bitcoin-daemon from ports: 
 <pre> 
 portmaster net-p2p/bitcoin-daemon 
 </pre> 

 h2. Install MySQL Server 

 * Start by installing the mariadb100-server and mariadb100-client packages: 
 <pre> 
 pkg install mariadb100-{server,client} 
 </pre> 

 * Copy a base MySQL configuration to use: 
 <pre> 
 cp /usr/local/share/mysql/my-small.cnf /var/db/mysql/my.cnf 
 </pre> 

 * Enable and start mysql at boot: 
 <pre> 
 echo 'mysql_enable="YES"' >> /etc/rc.conf 
 service mysql-server start 
 </pre> 

 * Prepare the database for use by running the secure installation: 
 *NOTE*: Choose a strong root password and answer yes to all questions. 
 <pre> 
 mysql_secure_installation 
 </pre> 

 h3. Create Databases and Users 

 * Login to MySQL and create appropriate databases and users. 
 <pre> 
 mysql -u root -p 
 </pre> 
 #* And run the following SQL queries to create the btcpooldb database and btcpooluser user: 
 <pre> 
 CREATE DATABASE btcpooldb CHARACTER SET utf8; 

 CREATE USER 'btcpooluser'@'localhost' IDENTIFIED BY 'SuperSecretPassword'; 

 GRANT ALL PRIVILEGES ON btcpooldb.* TO 'btcpooluser'@'localhost'; 

 FLUSH PRIVILEGES; 

 quit 
 </pre> 

 h2. Install btcpool 

 * Download the latest version of btcpool from GitHub: 
 <pre> 
 git clone https://github.com/btccom/btcpool.git /usr/local/btcpool 
 </pre> 

 * Build btcpool using gcc: 
 <pre> 
 cd /usr/local/btcpool 
 mkdir build && cd build 
 env CC=gcc48 CXX=g++48 CPP=cpp48 cmake -DCMAKE_C_COMPILER=gcc48 -DCMAKE_CXX_COMPILER=g++48 -DCMAKE_BUILD_TYPE=Release .. 
 env CC=gcc48 CXX=g++48 CPP=cpp48 gmake 
 </pre> 

 h2. Initialize btcpool 

 h3. Create Kafka Topics 

 h3. Init MySQL database tables 

 h3. User list API 

 h2. Init script 

 h2. Resources 

 * https://github.com/btccom/btcpool 
 * https://github.com/btccom/btcpool/blob/master/INSTALL.md

Back