Créer une pool de minage personnel pour Darkcoin avec CoiniumServ

CoiniumServ icone

CoiniumServ est une plateforme disponible sur github ( actuellement le domaine en dot org est down) C’est un package apportant de bonnes performances, extrêmement efficace et très rependu parmi les pool disponibles dans les divers algorithmes de minages.
CoiniumServ est supporté par « tout » les os (Windows, Linux ou MAC), est open source et gratuit à utiliser. Pour plus de détails je vous invite à visiter le Github CoiniumServ.

Interface Console de CoiniumServ
CoiniumServ console

Interface Web de CoiniumServ
CoiniumServ interface web

Dans ce billet je vais présenter une procédure simple afin de mettre en place une pool personnel de minage de cryptos-monnaies (Darkcoin). Je vais utiliser une machine virtuelle sous Vwmare avec une Debian 3.2.

Téléchargez à l’adresse suivante : CoiniumServ puis faite une extraction dans un dossier nomé « miner » à la racine de votre debian.

coiniumserv une fois installe sous debian

Si vous ne possedez pas le packet git-core installez le via

aptitude install git-core

Ainsi que le packet mono-complete (150 mo )

apt-get install mono-complete libc6 libc6-dev libc6-dbg dpkg-dev qt4-qmake libdb5.1++-dev libqt4-dev libqrencode-dev libminiupnpc-dev

On va maintenant configurer le wallet pour le serveur, il s’agit d’une pool de minage Darkcoin. Utilisez les commandes ci-dessous pour récupérer le wallet et installer les dépendances.

adresse wallet linux darkcoin

wget https://www.darkcoin.io/binaries/darkcoin-0.11.1.25-linux.tar.gz

Je vais à présent me rendre dans le dossier extrait. Et lancer le wallet pour commencer la synchronisation.(1 go environ)

root@WEBORANGE:/home/userlocal/crypto# cd darkcoin-0.11.1.25-linux/bin/32
root@WEBORANGE:/home/userlocal/crypto/darkcoin-0.11.1.25-linux/bin/32# ls
darkcoin-cli  darkcoind  darkcoin-qt  test_darkcoin  test_darkcoin-qt

On constate que le wallet est bien présent on va donc démarrer la synchronisation du wallet darkcoin avec nautilus qui va nous permettre de lancer un explorateur de fichiers en « root » sous debian. Naviguez jusqu’a /darkcoin-0.11.1.25-linux/bin/32 puis lancez darkcoin-qt

root@WEBORANGE:/home/userlocal/crypto/darkcoin-0.11.1.25-linux/bin/32# gksudo nautilus
Initializing nautilus-gdu extension

aperçu wallet synchronisation

Une fois votre wallet synchronisé, générée une nouvelle adresse et envoyez lui un montant de darkcoin afin de l’activer sur le réseau Darkcoin. Pensez également à chiffrer le wallet. L’opération terminée on va éditer le fichier de configuration du wallet avec la procédure ci-dessous.

Par défaut vous allez retrouver le fichier de configuration de votre wallet à l’emplacements suivant

root/.darkcoin/darkcoin.conf
root@WEBORANGE:/# cd root
root@WEBORANGE:~# cd .darkcoin
root@WEBORANGE:~/.darkcoin# gedit darkcoin.conf

La pool étant destiné à être « local » je vais renseigner pendant toute la durée des procédure l’ip de ma machine debian hébergeant le serveur. Il faut donc penser à la passer en IP fixe.
darkcoin.conf :

server=1
rpcallowip=ip de votre machine server local (ifconfig sous debian pour afficher les connexions réseau ethernet ex:192.168.1.44)
rpcuser=un nom utilisateur pour RPC
rpcpassword=renseignez ici une longue chaîne générée aléatoirement pour plus de sécurité
rpcport=9333

La ligne server=1 precise au wallet d’accepter les requetes JSON-RPC.

Le dossier sur lequel je vais travailler durant toute la procédure est situé dans CoiniumServ. Veillez donc à bien vous trouvez dans le dossier ou vous souhaitez travailler. On commence par télécharger CoiniumServ sur Github et et compiler les sources via la procédure ci-dessous.

Si vous devez vous retrouver avec une erreur vérifiez bien que le packet mono-complete(voir plus haut) est correctement installé dans votre système.

git clone https://github.com/CoiniumServ/CoiniumServ.git
cd CoiniumServ
git submodule init
git submodule update
cd build/release
./build.sh

fin installation coiniumserv

Si vous ne trouvez pas le dossier « bin » revoyez depuis le début de la compilation.Afin de faciliter la procédure je vais utiliser les fichiers d’exemples proposé dans le package, on évite ainsi de rédiger entièrement nos fichiers de config avec un simple copier/coller.

Je me positionne dans mon dossier de configuration

cd CoiniumServ/bin/Release/config/pools

Je fais une copie qui est renommé dans la foulé du fichier d’exemple, c’est sur celui ci-que nous allons travailler.

cp default-example.json darkcoin.json

C’est dans ce fichier darkcoin.json que la pool va être configuré, vous pouvez utiliser le squelette ci-dessous qui tout à fait fonctionnel. Modifiez les quelques éléments indiqués.

{
    "enabled": true,
     "coin": "darkcoin.json",
    "daemon": {
        "host": "la meme ip que rpcallowip dans darkcoin.conf",
        "port": 9333,
        "username": " le meme identifiant que pour rpcuser dans darkcoin.conf",
        "password": "le meme password que pour rpcpassword dans darkcoin.conf",
        "timeout": 5
    },
    "meta": {
        "motd": "Welcome to Laintimes.com Pool",
        "txMessage": "http://www.laintimes.com/"
    },
    "wallet": {
        "address": "XseQWbr7kDHy5GJdLGz1Fi"
    },
    "payments": {
        "enabled": true,
        "interval": 60,
        "minimum": 0.01
    },
    "rewards":  [
        {"XseQWbr7kQKy5GJdLGz1Fi": 1}
    ],
    "miner": {
        "validateUsername": true,
        "timeout": 300
    },
    "job": {
        "blockRefreshInterval": 1000,
        "rebroadcastTimeout": 55
    },
    "stratum": {
        "enabled": true,
        "bind": "0.0.0.0",
    "port": 3333,
        "diff": 16,
        "vardiff": {
            "enabled": true,
            "minDiff": 8,
            "maxDiff": 512,
            "targetTime": 15,
            "retargetTime": 90,
            "variancePercent": 30
        }
    },
    "banning": {
        "enabled": true,
        "duration": 600,
        "invalidPercent": 50,
        "checkThreshold": 100,
        "purgeInterval": 300
    },
    "storage": {
        "hybrid": {
            "enabled": true,
            "redis": {
                "host": "127.0.0.1",
                "port": 6379,
                "password": "",
                "databaseId": 0
            },
            "mysql": {
                "host": "127.0.0.1",
                "port": 3306,
                "user": "votre login mysql",
                "user": "votre password mysql",
                "database": "le nom de la bdd a utiliser"
            }
        },
        "mpos": {
            "enabled": false,
            "mysql": {
                "host": "127.0.0.1",
                "port": 3306,
                "user": "votre login mysql",
                "user": "votre password mysql",
                "database": "le nom de la bdd a utiliser"
            }
        }
    }
}

L’adresse situé dans la section « wallet » est l’adresse de votre pool, celle que vous arrivez généré un peut plus tôt. Elle devrai être active et la somme envoyée précédemment reçue. Celle situé dans la section « rewards » concerne les fee que vous allez recevoir sur le travail des mineurs.

On fait églement une copie du markets.json par défault qui contient le temps d’update

root@WEBORANGE:/home/userlocal/crypto/CoiniumServ/bin/Debug/config# cp markets-example.json markets.json

On fait églement une copie du software.json par défault qui contient les différents mineurs autorisé sur la pool

root@WEBORANGE:/home/userlocal/crypto/CoiniumServ/bin/Debug/config# cp software-example.json software.json

Votre pool est prête à être lancée, suivez la procédure ci-dessous pour l’executer

/CoiniumServ/bin/Debug# mono CoiniumServ.exe

coiniumserv at work

Si vous devez vous retrouvez avec une des erreurs ci-dessous utilisez les procédures ci-dessous pour vous débloquer.

 [WebServer] [global] Need elevated privileges to listen on port 80

Votre port 80 est deja utilisé, libéré le pour faire tourner correctement CoiniumServ. (/etc/init.d/apache2 stop)

Diagnostic RPC

Redis storage initialization failed: 127.0.0.1:6379 - Connection refused
11:02:03 [Error] [ShareManager] [Darkcoin] Error getting account for pool central wallet address

Cela signifie que :

  • Soit la connection au wallet est impossible en raison de mauvais identifiants RPC Vérifiez bien la similitude entre les identifiants de darkcoin.conf et darkcoin.json(pools) dans la section « daemon« 
  • D’un soucis d’adresse IP. Vérifiez bien la similitude entre les IP renseigné
  • Que votre adresse renseigné dans la section wallet de darkcoin.json n’est pas encore sur le réseau darkcoin, renseignez ici votre adresse darkcoin pour vérifier qu’elle soit bien active.

Dans le doute redémarrez le srvice rpc de debian

service rpcbind restart

Laisser un commentaire