Wie richte ich Pushpool ein?

Wie kann ich Pushpool auf meinem Ubuntu Dedi einrichten?

Ich habe Bitcoin mit den neuesten Blöcken am Laufen, was kommt als nächstes?

Ich würde vorschlagen, dass Sie dieser umfassenden Anleitung in den Foren folgen.
@BinaryMage, Sie könnten dies wahrscheinlich zu einer Antwort anstelle eines Kommentars machen.
Ich habe die Anleitung umgeschrieben, um sie prägnanter und weniger Trial-and-Error zu machen.

Antworten (1)

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 usernameund ein Passwort eingefügt password. Durch erneutes Ausführen sbin/pushpoold -E -Fwird der Daemon gestartet.

Wenn Sie Ihren Miner auf zeigen, http://username:password@127.0.0.1:8336/sollten Sie Mining erhalten.

Danke cdecker ... Und wie schicken Sie die Bitcoins, die Sie erstellen, an Ihr Wallet?
Nun, die geschürften Münzen sollten in Ihrer bitcoindInstanz 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.
@cdecker Ich weiß, das ist sehr dumm zu fragen, aber du scheinst viel darüber zu wissen ... Ich habe einige Fragen, die du dir ansehen solltest :) Klicke auf mein Profil. Vielen Dank