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 dist-upgrade
sudo reboot
sudo apt-get autoclean
sudo apt-get install open-vm-tools-desktop
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 reboot
sudo vino-preferences
anschliessend noch den Vino in die Autostart setzen
Einstellung=>Default applications for LXSession=>Autostart
Einstellungen=>Default applications for LXSession=>Autostart
nach dem neustart
die Ip findet man mit
jetzt können wir mit den notwendigen Installationen für den Pool beginnen
die Build-Tools:
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
Installation Curl
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 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 127.0.0.1:6379>
nun steht als antwort
passt
um dann die Konsole zu verlassen:
nun noch die Installation von Nodejs / NPM
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:
so jetzt aber mal ans eingemachte, wir installieren geth:
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/
um die Konsole zu verlassen strg+b und anschliessend strg+d
nun installieren wir den Pool:
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:
var homesteadReward = math.MustParseBig256(“3000000000000000000”)
nun passen wir unsere Config des Pools noch an:
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:
./open-ethereum-pool config.json
nun zum Schmerzstück, ähh Herzstück
die Webseite
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:
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
dann habe ich noch alles auf den Develop-Modus gesetzt:
nun richten wir den nginx ein:
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
der Dienst muss nun ohne Fehler starten
so jetzt starten wir alles mal
1. Terminalfenster
cd eth/go-ethereum/build/bin/
./geth –rpc –fast –cache=512
./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
Damit das ganze auch nach einen neustart funktioniert den Autouser-Logon aktivieren:
[SeatDefaults]
autologin-user=pool
autologin-user-timeout=0
user-session=ubuntu
greeter-session=unity-greeter
fertig, war doch ganz leicht