Comment installer un noeud complet Bitcoin sur Mac OS X ?

Un noeud complet est un complet qui valide les transactions effectuées sur la Blockchain de Bitcoin, ainsi donc que les blocs de la Blockchain. En outre, les noeuds complets accélèrent le réseau en général en acceptant les transactions et les blocs d’autres noeuds complets, les validant pour eux puis les relayant vers d’autres noeuds.

Les noeuds complets permettent aux clients allégés (comme les wallets sur les smartphones par exemple) de transmettre leurs transactions sur le réseau, et à être informés de quand une transaction entre et sort de leur wallet. S’il n’y avait pas assez de noeuds complets, lesdits clients ne pourraient pas se connecter au réseau P2P et devraient utiliser des services centralisés.

Faire tourner un noeud complet est l’oeuvre de bénévoles qui dédient une partie de leur bande passante et de leur hardware à entretenir le réseau Bitcoin. Mais plus le réseau grandit, plus il sera nécessaire d’avoir des noeuds complets. Ce guide, optimisé pour Macintosh, devrait permettre à quiconque le veut d’installer un noeud complet Bitcoin sur son ordinateur.

Si vous avez des questions, ou besoin d’aide, la communauté est prête à vous aider. N’hésitez pas à vous rendre sur Bitcoin StackExchangeBitcoinTalk technical support, suivre le #bitcoin IRC chatroom sur Freenode ou le Reddit dédié à Bitcoin.

Les prérequis

N’oubliez pas qu’un noeud complet fonctionne comme un wallet, et en tant que tel, vous devez observer les mêmes précautions qu’avec un wallet mobile. Un noeud complet consomme énormément d’énergie, et soyez donc prêts à en subir les coûts, quand bien même un noeud complet fonctionnel engrange de l’argent.

Pour faire tourner un noeud complet, vous aurez besoin d’un ordinateur de bureau ou d’un ordinateur portable, avec Windows, Mac OS X ou Linux, et disposant d’au moins 145 gigabytes d’espace libre, et une vitesse d’écrite d’au moins 100 MB/s ; 2 gigabytes de mémoire RAM ; une connexion internet d’au moins 50 kilobytes par seconde et qui ne soit pas limitée en volume de téléchargement (compter au moins 200 GB par mois).

Idéalement, il faut que vous le laissiez tourner 24 heures sur 24, même si 6 heures par jour est un minimum acceptable et accepté. Si vous laisser tourner votre noeud en tâche de fond, n’oubliez pas de désactiver l’option d’économie d’énergie qu’activent automatiquement certains ordinateurs lorsqu’ils sont inactifs.

Assurez-vous que Bitcoin est légal dans votre pays et que votre fournisseur d’Internet ne punit pas l’utilisation excessive de bande passante. Par ailleurs, il est connu que des codes de virus informatiques traînent sur la Blockchain ; ces virus sont inactifs et donc inoffensifs, mais il se peut que votre antivirus les reconnaisse comme tels et entrave le bon fonctionnement de votre noeud (surtout sur Windows).

Télécharger la Blockchain (Mac OS Yosemite)

Avant toute chose, il vous faut télécharger toute la Blockchain. Pour ce faire, rendez-vous sur la page de téléchargement de Bitcoin Core et cliquez sur « Download Bitcoin Core ». Vous téléchargerez automatiquement un fichier .dmg (pour ce qui est du fichier .tar.gz, référez-vous au chapitre suivant).

Quand vous aurez téléchargé Bitcoin Core, cliquez sur l’image disque et glissez l’icône Bitcoin Core dans votre dossier Applications.  Normalement, la première fois que vous ouvrirez Bitcoin Core, votre Mac vous demandera si vous êtes sûr de vouloir l’ouvrir. Cliquez sur « Ouvrir ».

Il vous sera ensuite demandé de choisir un répertoire où entreposer la Blockchain. Laissez les réglages par défaut à moins que vous souhaitiez utiliser une partition particulière de votre disque ou un disque dur externe. Lorsque vous cliquerez sur « OK », la synchronisation débutera. Sachez que comme la Blockchain fait 145 GB à l’heure d’aujourd’hui, n’espérez pas terminer la synchronisation initiale en quelques heures mais en quelques jours, pendant lesquels vous ne pourrez pas utiliser votre noeud évidemment.

Après le téléchargement, vous pouvez l’utilisez comme wallet ou pour relayer les transactions sur le réseau. Si l’ordinateur sur lequel vous avez installé Bitcoin Core est également l’ordinateur que vous utilisez régulièrement, dans ce cas il vaut mieux cocher l’option « Lancer Bitcoin au démarrage » dans le menu « Préférences » de l’interface, pour accélérer la synchronisation.

Bitcoin Core Daemon (optionnel)

N.B. : pour les néophytes, un daemon est un programme qui exécute une tâche en arrière-fond de manière automatique et non pas via les commandes d’un utilisateur.

Le Bitcoin Core Daemon – bitcoind – ne vient pas automatiquement avec le téléchargement initial. Si vous voulez l’installez, retournez sur la page de téléchargement, et cliquez sur le fichier tar.gz ou rentrez cette commande dans le Terminal :

curl -O https://bitcoin.org/bin/bitcoin-core-0.16.2/bitcoin-0.16.2-osx64.tar.gz

Décompressez le fichier en utilisant un programme comme The Unarchiver ou alors rentrez cette commande dans le Terminal :

tar -zxf bitcoin-0.16.2-osx64.tar.gz

Il faut ensuite que vous déplaciez les exécutables dans votre chemin par défaut pour faciliter le démarrage et l’arrêt de bitcoind. Pour ce faire, utilisez le Terminal et les commandes sudo (comme toujours, une précaution extrême est requise avec ces commandes, puisqu’elles modifient votre système – mais si vous en êtes à vouloir installer un noeud Bitcoin, vous êtes au-delà des doutes).

sudo mkdir -p /usr/local/bin
sudo cp bitcoin-0.16.2/bin/bitcoin* /usr/local/bin/.
rm -rf bitcoin-0.16.2*

Vous devriez désormais être dans la mesure de lancer votre daemon en rentrant bitcoind -daemon dans le Terminal. Pour l’arrêter, rentrez la commande bitcoin-cli stop.

Si vous voulez lancer automatiquement bitcoind au démarrage de votre ordinateur, rentrez ces commandes dans le Terminal :

mkdir ~/Library/LaunchAgents
curl https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/init/org.bitcoin.bitcoind.plist > ~/Library/LaunchAgents/org.bitcoin.bitcoind.plist

Et le tour est joué.

Configuration du réseau

Lorsque Bitcoin Core démarre, il établit 8 connexions sortantes avec d’autres noeuds complet pour pouvoir télécharger les derniers blocs et les dernières transactions. Si vous voulez juste utilisez votre noeud comme wallet, vous n’aurez pas besoin de plus de 8 connexions sortantes. Mais si vous voulez soutenir le réseau des clients légers et d’autres noeuds, vous devez impérativement autoriser les connexions entrantes.

Si votre serveur est directement connecté à Internet, vous n’aurez pas besoin de configurer quoi que ce soit de particulier. Mais d’habitude, les ordinateurs ménagers passent par un modem ou un router qui filtre les connexions. Bitcoin Core demandera à votre modem de se configurer pour autoriser les connexions provenant du port Bitcoin, le port 8333. La plupart du temps, le modem ne se mettra pas à jour lui-même et vous devrez effectuer cette étape manuellement. Par ailleurs, il vaudrait mieux configurer votre coupe-feu pour qu’il autorise les connexions entrantes du port 8333.

Autoriser les connexions (optionnel – seulement si vous avez un router)

Si vous possédez un modem ou un router qui filtre les connexions entrantes et qui n’obéit pas automatiquement aux requêtes des Bitcoin Core, vous devrez le faire manuellement. Cela se passe en deux étapes + une troisième si vous utilisez un coupe-feu.

Premièrement, en configurant le Dynamic Host Configuration Protocol (DHCP) de votre router dans le but d’attribuer une adresse IP statique à votre ordinateur.

Votre router doit connaître votre adresse IP interne pour se connecter au port 8333. Comme les routers donnent des adresses IP dynamiques qui changement souvent, vous devez faire en sorte que votre router attribue une adresse IP statique. Pour ce faire, connectez-vous à l’interface d’administrateur de votre router. La majorité des routers peuvent être configurés aux adresses suivantes (consultez la manuel de votre router si ce n’est pas le cas) :

On vous demandera un nom d’utilisateur et un mot de passe. Si vous ne les avez pas configurer, vous pouvez consulter le site Router Passwords site qui fournit une liste de paires connues de nom d’utilisateur/mot de passe par défaut. Une fois connecté, allez sous la page de configuration DHCP de votre router, qui peut aussi s’appeler « Address Reservation » ou « DHCP Reservation ». Là, activez la réservation en question (l’adresse IP statique).

Parfois, le router listera tous les ordinateurs et appareils connectés au réseau. Si c’est le cas, sélectionnez l’adresse de votre ordinateur qui a installé Bitcoin Core. Certains routers exigent une configuration plus manuelle encore. Vous devrez localiser l’adresse fixe, dite adresse MAC (rien à voir avec Macintosh), de votre carte réseau et l’ajouter à la liste.

Sur Mac OS X, ouvrez votre Terminal et rentrez ifconfig. Cherchez le résultat qui correspond à votre connexion (les connexions sans file commencent paren1). Trouvez le champ qui commence par ether: et copiez le champ qui suit immédiatement et qui ressemble à quelque chose comme 01:23:45:67:89:ab. Vous devrez utiliser cette valeur plus loin, dans la table d’assignation DHCP de votre router.

Il vous sera demandé de rentrer un nom de client (le vôtre par exemple), et d’assigner une adresse IP (vous pouvez la choisir manuellement) à votre adresse MAC (c’est là que vous rentrez la valeur copiée plus haut). Une fois que c’est fait, recopiez votre adresse IP quelque part, et cliquez sur « Ajouter » ou « Sauvegarder ». Puis redémarrez votre ordinateur.

Deuxièmement, redirigez les connexions entrantes qui passent par votre router vers votre ordinateur où vous avez installé Bitcoin Core.

De retour dans la console d’administrateur de votre router, cherchez l’option « Port Forwarding », « Port Assignment » ou tout ce qui a « Port » dans le titre. Parfois, l’option se trouve dans le menu « Applications & Gaming ». Ces paramètres vous permettent de rediriger un port externe sur votre router vers le port interne d’un appareil sur votre réseau. Le port externe et le port interne doivent tous deux être 8333. Vous devez également rentrer l’adresse IP de votre ordinateur : recopiez celle que vous avez inscrite dans la première étape. Vous n’avez pas besoin de redémarrer votre ordinateur.

À moins que vous utilisez un coupe-feu, vous êtes parvenu à configurer manuellement les connexions au réseau Bitcoin sur votre ordinateur.

Troisièmement (optionnel), si vous utilisez un coupe-feu, vous devez le configurer pour autoriser les connexions entrantes du port 8333, ce qui est très simple sur Windows et Linux.

Mac désactive le coupe-feu par défaut. Au cas où vous l’avez activé, allez dans « Paramètres », puis « Sécurité et Confidentialité », sous l’onglet « Coupe-feu ». Cliquez sur le cadenas en bas à gauche pour modifier les paramètres du coup-feu, sous « Options de coupe-feu ». Là vous pouvez ajouter « Bitcoin Core » à la liste des applications dont vous autorisez les connexions entrantes en cliquant sur le bouton « + ».

Une fois cela effectué, vous devriez être tout bon.

Vérifier la connexion

Le projet BitNodes permet de vérifier en ligne si votre noeud accepte ou non les connexions entrantes. Avant d’utiliser BitNodes, assurez-vous que votre noeud est entièrement synchronisé avec la Blockchain. Si c’est le cas, lancez Bitcoin Core, attendez 10 bonnes minutes et allez sur la page du projet. La page essaiera de deviner votre adresse IP : si elle est fausse ou qu’elle ne renvoie aucune résultat, rentrez-la manuellement.

Cliquez sur « Check Node », et la page vous dira si votre port est ouvert (vert) ou non (rouge). Si vous êtes dans le vert, vous n’avez rien besoin de faire. Si vous êtes dans le rouge, vous devez autorisez les connexions entrantes (chapitre du dessus). Vous pouvez passer par Bitcoin Core pour confirmer que vous acceptez les connexions entrantes.

Si vous utilisez l’interface de Bitcoin Core : dans le coin inférieur droit de votre interface, vous avez plusieurs icônes. Si vous passez le curseur au-dessus de l’icône de puissance du réseau, elle vous indiquera combien de connexions vous avez. L’icône ne sera verte que si vous avez plus de 8 connexions actives, ce qui n’est possible que si vous autorisez les connexions entrantes.

Si vous voulez être absolument certain, vous pouvez regarder dans le menu « Aide » dans « Debug » puis « Information ». Dans la section « Réseau », il vous sera indiqué exactement combien de connexions vous avez. Si le nombre est supérieur à 0, c’est que les connexions entrantes sont autorisées.

Si vous utilisez Bitcoin Core Daemon : dans le Terminal, rentrez la commande getconnectioncount, qui vous confirmera que vous avez autorisé les connexions entrantes si le nombre est plus grand que 8, par exemple :

$ bitcoin-cli getconnectioncount
34

Pour confirmer, vous pouvez rentrer la commande getpeerinfo qui vous donnera les informations de tous les pairs connectés. Chaque pair contiendra un champ inbound qui sera mis sur « true » si la connexion est entrante. Même une seule connexion entrante signifie que vous avez réussi à les activer.

Paramétrage

Vous pouvez modifiez les réglages de Bitcoin Core pour l’adaptez à vos besoins/exigences. Mettons par exemple que vous souhaitiez limiter les vérifications de signature à la tâche d’un seul coeur de votre processeur ; vous aurez à démarrer Bitcoin Core via la Terminal (c’est-à-dire Bitcoin Core Daemon) de cette manière :

### Bitcoin Core daemon
bitcoind -par=1 -daemon

### Bitcoin Core GUI
bitcoin-qt -par=1

Vous pouvez sauvegarder les options que vous préférer à la liste des réglages qui se trouvent, sur Mac OS X, dans $HOME/Library/Application Support/Bitcoin/ . Pour ajouter une option, supprimez simplement le signe « – » qui précède l’option. Par exemple, l’option -par deviendrait par=1. Vous pouvez trouver un générateur de fichier de configuration à cette adresse.

Réduire l’espace de stockage

Il est possible de configurer votre node de telle manière à ce qu’il demande moins d’espace de stockage – cela s’appelle le mode « élagué » (en anglais pruned mode). Pour ce faire, le block rentrez prune=N dans le Terminal ou dans bitcoin.conf, où N est le nombre de MiB (mébibytes) que vous autorisez Bitcoin Core à utiliser (vous ne pouvez guère aller en dessous de 5 GB même si la valeur).

Mais soyez conscient que si vous faites tourner Bitcoin Core dans ce mode, il sera incompatible avec -txindex et -rescan et désactive le RPC importwallet. Vous aurez toutefois accès aux RPCs importprunedfunds et removeprunedfunds.

Si vous rentrez 0, cela désactive le mode. La valeur minimale est 550. Votre wallet sera tout aussi protégé avec des valeurs basses que hautes. La différence d’autorisez un espace plus grand est que les chances que votre noeud se ferme automatiquement dans le cas d’une réorganisation de la Blockchain qui prendrait plus de 2 jours sont faibles.

Réduire le traffic

Par défaut, Bitcoin Core autorise jusqu’à 125 connexions à d’autres pairs, dont 8 sont sortantes – donc 117 connexions entrantes maximum. Cela dit, si votre fournisseur d’accès à Internet n’autorise pas autant d’utilisation de bande passante ou que vous n’êtes pas prêt à vous-même utiliser autant de bande-passante, vous pouvez réduire le traffic.

1)

-maxuploadtarget=<MiB par jour>

Parmi ce qui cause beaucoup de traffic, il y a notamment le processus via lequel votre noeud envoie les informations des anciens blocs de la Blockchain à d’autres noeuds qui sont en phase de synchronisation initiale. Par défaut, l’option ci-dessus est désactivée, et s’exprime en MiB par jour. La valeur que vous rentrerez n’empêchera pas Bitcoin Core de la dépasser dans certain cas ; tout ce qu’elle fait est de minimiser le traffic sortant. Lorsque la valeur est presque atteinte, les données envoyées sur le réseau sont limitées en arrêtant l’envoi des données des « blocs historiques » (vieux de plus d’une semaine). Le minimum recommandé, si vous activez l’option, est de 144 blocs par jour.

2)

-listen=0

Supprimer le « listening » – le fait que votre noeud cherche d’autres noeuds – fera en sorte que moins de noeuds seront connectés au vôtre, et réduira donc le traffic.

3)

-maxconnections=<num>

Cette option réduit le nombre maximal de noeuds connectés à un nombre minimal.

4)

-blocksonly

Cette option empêche votre noeud de demander et de transmettre des transactions à moins qu’elles ne fassent partie d’un bloc ; elle désactive également le « listening ».

Cela réduit l’utilisation de la bande-passante au strict minimum nécessaire pour rester synchronisé au réseau : c’est-à-dire environ 150 MB de données entrantes et 1 MB de données sortantes par jour. Mais cela implique que votre noeud ne verra pas les transactions entrantes à moins qu’elles n’aient déjà reçu une confirmation.

Vous pouvez continuer à envoyer des transactions depuis le wallet de votre noeud, ou depuis des pairs que vous avez spécialement autorisés dans le paramètre -whitelist.

Source, où vous trouverez les instructions pour Windows et Linux : https://bitcoin.org/en/full-node#what-is-a-full-node