Wie kann ich Pushpool auf meinem Ubuntu Dedi einrichten?
Ich habe Bitcoin mit den neuesten Blöcken am Laufen, was kommt als nächstes?
In diesem Handbuch wird alles, was Sie benötigen, auf einem einzigen Computer eingerichtet.
Beginnen wir mit dem Einrichten der Umgebung:
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install automake gcc
sudo apt-get install libevent-dev libmemcached-dev libcurl4-openssl-dev zlib1g-dev libjansson-dev curl memcached
Abhängig von Ihrer Distribution sind einige davon möglicherweise nicht verfügbar (libjansson-dev ist beispielsweise nicht auf Lucid verfügbar), und Sie müssen möglicherweise die Quellen herunterladen und kompilieren.
Pushpool benötigt eine Datenbank, um zu funktionieren, also müssen wir entweder SQLite3 oder MySQL installieren. MySQL ist wahrscheinlich die bessere Wahl, aber SQLite3 reicht aus, um Pushpool nur zu testen:
sudo apt-get install libsqlite3-dev sqlite3
Um MySQL zu erhalten, installieren Sie stattdessen libmysql++-dev
.
Als nächstes laden wir die Pushpool-Quelle herunter und extrahieren sie nach /tmp/
:
cd /tmp/
curl -s http://yyz.us/bitcoin/pushpool-0.5.1.tar.gz | tar -xvz
cd pushpool-0.5.1
Machen wir jetzt weiter, indem wir es konfigurieren, kompilieren und in /opt/pushpool installieren:
./configure --prefix=/opt/pushpool/
make
sudo make install
cd /opt/pushpool/
An dieser Stelle können wir schnell überprüfen, ob alles funktioniert hat:
$ sbin/pushpoold -E -F
[2013-01-04 16:00:40.682356] config file(server.json): No such file or directory
Jetzt müssen wir nur noch den Pushpool-Server konfigurieren.
sudo cp /tmp/pushpool-0.5.1/example-cfg.json /opt/pushpool/server.json
sudo nano /opt/pushpool/server.json
Hier ist meine zum Beispiel:
{
# network ports
"listen" : [
# binary protocol (default), port 8336
{ "port" : 8336 },
# HTTP JSON-RPC protocol, port 8337
{ "port" : 8337, "protocol" : "http-json" }
],
# database settings
"database" : {
"engine" : "sqlite3",
"name" : "/tmp/data.sqlite",
"stmt.pwdb" :
"SELECT password FROM pool_worker WHERE username = ?"
},
# cache settings
"memcached" : {
"servers" : [
{ "host" : "127.0.0.1", "port" : 11211 }
]
},
"pid" : "/tmp/pushpoold.pid",
# overrides local hostname detection
"forcehost" : "localhost.localdomain",
"log.requests" : "/tmp/request.log",
"log.shares" : "/tmp/shares.log",
# the server assumes longpolling (w/ SIGUSR1 called for each blk)
"longpoll.disable" : false,
# length of time to cache username/password credentials, in seconds
"auth.cred_cache.expire" : 75,
# RPC settings
"rpc.url" : "http://127.0.0.1:8332/",
"rpc.user" : "bitcoinrpc",
"rpc.pass" : "bitcoinpassword",
# rewrite returned 'target' to difficulty-1?
"rpc.target.rewrite" : true,
# allow clients to update the ntime field of their work
"roll.ntime.disable" : false
}
Und schließlich kommen wir zum Datenbank-Setup:
sqlite3 /tmp/data.sqlite "CREATE TABLE pool_worker (username VARCHAR(32), password VARCHAR(32))"
sqlite3 /tmp/data.sqlite "INSERT INTO pool_worker VALUES ('username', 'password');
An diesem Punkt haben wir die Datenbank erstellt und einen neuen Benutzer namens username
und ein Passwort eingefügt password
. Durch erneutes Ausführen sbin/pushpoold -E -F
wird der Daemon gestartet.
Wenn Sie Ihren Miner auf zeigen, http://username:password@127.0.0.1:8336/
sollten Sie Mining erhalten.
bitcoind
Instanz landen, da dies auch verwendet wird, um die anfängliche Arbeit für die Miner zu erstellen. Sie müssen dann eine Methode implementieren, um den Anteil der Belohnung zu berechnen, den jeder Teilnehmer erhalten soll, und die Belohnung dann entsprechend verteilen. Dies ist der Teil, den Sie selbst implementieren müssen.
BinaryMage
DH
Decker