ich habe in vielen Tagen "Try and Error" einen Miningpool auf die Beine gestellt mit der Opensourcesoftware von Sammy007.
Ich möchte nun mein Wissen mit euch teilen und habe alle Schritt haarklein dokumentiert.
Als Basis habe ich ein Lubunut 16.04 genommen und auf eine Virtuellen Maschine installiert.
Ich selbst habe nur Basiswissen im Bereich Linux, daher möchte um Nachsicht bitten wenn der ein oder andere Befehl nicht optimal ist
mein user heißt pool
Nach der Installation des Betriebssysstems habe ich als erste mal ein Update gemacht
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
sudo apt-get autoclean
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
sudo apt-get install openssh-server
sudo adduser pool
sudo reboot
um mir die Arbeit etwas zu erleichtern habe ich diesen User dann vorläufig zum Administrator gemacht
Systemwerkzeuge=>Benutzer und Gruppen
damit werden nachfolgende Schritt deutlich einfacher
nun habe ich mir ein VNC-Server eingerichtet
sudo apt-get install vino
sudo reboot
sudo vino-preferences
anschliessend noch den Vino in die Autostart setzen
Einstellung=>Default applications for LXSession=>Autostart
/usr/lib/vino/vino-server
gsettings set org.gnome.Vino require-encryption false
Einstellungen=>Default applications for LXSession=>Autostart
setxkbmap de
nach dem neustart
sudo reboot
die Ip findet man mit
ifconfig
jetzt können wir mit den notwendigen Installationen für den Pool beginnen
die Build-Tools:
sudo apt-get install build-essential make
wget https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz
sudo tar -xvf go1.9.2.linux-amd64.tar.gz
sudo mv go /usr/local
export GOROOT=/usr/local/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
export GOPATH=$HOME/go
go version
go version go1.9.2 linux/amd64
Installation Curl
sudo apt-get install curl
sudo apt-get install nginx
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
sudo cp src/redis-server /usr/local/bin/
sudo cp src/redis-cli /usr/local/bin/
sudo mkdir /etc/redis
sudo mkdir /var/redis
sudo cp utils/redis_init_script /etc/init.d/redis_6379
sudo cp redis.conf /etc/redis/6379.conf
sudo nano /etc/redis/6379.conf
in der Conf-Datei muss nun der Wert für daemonize auf yes gesetzt werden sowie
den Wert von dir auf /var/redis/6379. (suchen innerhalb von nano strg+w)
dann noch
sudo mkdir /var/redis/6379
sudo update-rc.d redis_6379 defaults
sudo /etc/init.d/redis_6379 start
damit läuft der Redis-Server
nun testen wir den Server noch:
redis-cli
Expected response
redis 127.0.0.1:6379>
ping
nun steht als antwort
PONG
passt
um dann die Konsole zu verlassen:
exit
nun noch die Installation von Nodejs / NPM
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs
curl https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash
. /home/pool/.nvm/nvm.sh
source ~/.profile
nvm install 4.7.3
Git brauchen wir auch noch:
sudo apt-get install git
so jetzt aber mal ans eingemachte, wir installieren geth:
mkdir eth
cd eth
git clone https://github.com/ethereum/go-ethereum
export GOROOT=/usr/local/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
export GOPATH=$HOME/go
cd go-ethereum
make all
cd build/bin/
./geth –rpc console
personal.newAccount()
um die Konsole zu verlassen strg+b und anschliessend strg+d
nun installieren wir den Pool:
Cd ~
Cd eth
git clone https://github.com/sammy007/open-ethereum-pool.git
cd open-ethereum-pool
export GOROOT=/usr/local/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
export GOPATH=$HOME/go
make
cp ~/eth/open-ethereum-pool/config.example.json ~/eth/open-ethereum-pool/build/bin/config.json
in der Anleitung von Sammy007 steht noch das die Datei unlocker.go angepasst werden muss:
nano payouts/unlocker.go
var homesteadReward = math.MustParseBig256(“3000000000000000000”)
nun passen wir unsere Config des Pools noch an:
sudo nano /home/pool/eth/open-ethereum-pool/build/bin/config.json
Proxy: "listen": "localhost:8888",
Startum: "listen": "192.168.150.135:8008",
api: "listen": "192.168.150.135:8080",
damit ist der Pool bereits fertig und kann von den minern aufgerufen werden:
cd /home/pool/eth/open-ethereum-pool/build/bin
./open-ethereum-pool config.json
nun zum Schmerzstück, ähh Herzstück
die Webseite
cd /home/pool/eth/open-ethereum-pool/www/
sudo npm install -g [email protected]
sudo npm install -g bower
sudo npm install -g [email protected]
sudo npm install -save
sudo bower install –allow-root
unbedingt auch in dieser Reihenfolge
die Installation der Komponenten muss ohne Fehler durchlaufen, jedoch erscheinen hin und wieder einige Warnungen die man ignorieren kann.
nun konfigurieren wir noch die Webseite:
nano /home/pool/eth/open-ethereum-pool/www/config/environment.js
APP: ApiUrl: '//192.168.150.135:8080',
HttpHost: 'http://localhost',
StratumHost: 'localhost',
Development: ENV.APP.ApiUrl = 'http://192.168.150.135:8080/'
anschliessend kompilieren wir das noch
./build.sh
dann habe ich noch alles auf den Develop-Modus gesetzt:
ember server --port 8082 --environment development
nun richten wir den nginx ein:
sudo nano /etc/nginx/sites-enabled/default
meine default sieht wie folgt aus:
server 127.0.0.1:8080;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/pool/eth/open-ethereum-pool/www/dist ;
index index.html index.htm index.nginx-debian.html;
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://api;
}
}
danach noch den Dienst neustarten
sudo service nginx restart
der Dienst muss nun ohne Fehler starten
so jetzt starten wir alles mal
1. Terminalfenster
cd ~
cd eth/go-ethereum/build/bin/
./geth –rpc –fast –cache=512
cd eth/open-ethereum-pool/build/bin/
./open-ethereum-pool config.json
Wenn ihr nun im Browser eingebt
http://localhost
bzw. im meinen Fall
http://192.168.150.130
nun noch den User wieder zurückstellen auf einen Standarduser
die beiden Programme (geth und den Pool) in die Autostart legen.
Einstellung=>Default applications for LXSession=>Autostart
lxterminal -e /home/pool/eth/go-ethereum/build/bin/geth --rpc --fast --cache=512
lxterminal -e /home/pool/eth/open-ethereum-pool/build/bin/open-ethereum-pool /home/pool/eth/open-ethereum-pool/build/bin/config.json
Damit das ganze auch nach einen neustart funktioniert den Autouser-Logon aktivieren:
sudo nano /etc/lightdm/lightdm.conf.d/autostart.conf
[SeatDefaults]
autologin-user=pool
autologin-user-timeout=0
user-session=ubuntu
greeter-session=unity-greeter
fertig, war doch ganz leicht