Author

Topic: Setup Ethereumpool in Deutsch (Read 163 times)

newbie
Activity: 2
Merit: 0
February 15, 2018, 10:11:02 AM
#1
Hallo zusammen,

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
Code:
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
sudo apt-get autoclean
anschliessend habe ich die VMwaretools installiert:
Code:
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
anschliessend noch openssh:
Code:
sudo apt-get install openssh-server
nun legen wir einen Pooluser an gem. Empfehlung von Sammy007
Code:
sudo adduser pool 
Passwort eingeben und
Code:
sudo reboot
neustarten und mit diesem User dann anmelden
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
Code:
sudo apt-get install vino
sudo reboot
sudo vino-preferences
in den Einstellungen entsprechend die Checkboxen setzen
anschliessend noch den Vino in die Autostart setzen
Einstellung=>Default applications for LXSession=>Autostart
Code:
/usr/lib/vino/vino-server 
nun noch die Encryption ausschalten
Code:
gsettings set org.gnome.Vino require-encryption false
bei mir ist dann noch das Tastaturlayout falsch:
Einstellungen=>Default applications for LXSession=>Autostart
Code:
setxkbmap de 

nach dem neustart
Code:
sudo reboot
kann ich mich nun per VNC anmelden
die Ip findet man mit
Code:
ifconfig
raus

jetzt können wir mit den notwendigen Installationen für den Pool beginnen
die Build-Tools:
Code:
sudo apt-get install build-essential make
Installation der Go-Software
Code:
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
nun sollte folgendes da stehen:
Code:
go version go1.9.2 linux/amd64

Installation Curl
Code:
sudo apt-get install curl
Installation NGinx
Code:
sudo apt-get install nginx
Installation Redis
Code:
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
Code:
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:
Code:
redis-cli
nun steht folgendes im Terminal:
Code:
Expected response
redis 127.0.0.1:6379>
und dann geben wir mal
Code:
ping
ein
nun steht als antwort
Code:
PONG

passt Grin
um dann die Konsole zu verlassen:
Code:
exit

nun noch die Installation von Nodejs / NPM
Code:
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:
Code:
sudo apt-get install git

so jetzt aber mal ans eingemachte, wir installieren geth:
Code:
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/
fertig wir starten nun die geth-Konsole:
Code:
./geth –rpc console
und legen uns einen neuen Account an:
Code:
personal.newAccount()
Die Adresse und das Passwort merken
um die Konsole zu verlassen strg+b und anschliessend strg+d

nun installieren wir den Pool:
Code:
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:
Code:
nano payouts/unlocker.go
var homesteadReward = math.MustParseBig256(“3000000000000000000”)

nun passen wir unsere Config des Pools noch an:

Code:
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:
Code:
cd /home/pool/eth/open-ethereum-pool/build/bin
./open-ethereum-pool config.json

nun zum Schmerzstück, ähh Herzstück  Cheesy
die Webseite
Code:
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:
Code:
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
Code:
./build.sh
jegliche Änderung an der Webseite muss anschliessned neu kompiliert werden

dann habe ich noch alles auf den Develop-Modus gesetzt:
Code:
ember server --port 8082 --environment development

nun richten wir den nginx ein:
Code:
sudo nano /etc/nginx/sites-enabled/default

meine default sieht wie folgt aus:
Quote
upstream api {
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
Code:
sudo service nginx restart

der Dienst muss nun ohne Fehler starten

so jetzt starten wir alles mal
1. Terminalfenster
Code:
cd ~
cd eth/go-ethereum/build/bin/
./geth –rpc –fast –cache=512
2. Terminalfenster
Code:
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

Code:
lxterminal -e /home/pool/eth/go-ethereum/build/bin/geth --rpc --fast --cache=512
Code:
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:
Code:
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  Grin


Jump to: