L'implémentation de référence du client "bitcoin" permet de définir la base du consensus autour du protocole bitcoin.
Installer et faire tourner le client "Satoshi" sur son PC ou MAC le transforme en "full node" du réseau peer-to-peer Bitcoin, c'est à dire un noeud du réseau capable de vérifier et relayer les transactions tout en maintenant une copie à jour de la "chaîne de blocs" Bitcoin, c'est à dire l'historique complet des transactions Bitcoin depuis l'origine du 3 janvier 2009.

Ecran Client Satoshi
L'écran d'accueil du porte-monnaie Bitcoin "officiel" (le client "Satoshi")

Tout autre implémentation d'un porte-monnaie bitcoin peut tester sa compatibilité avec le réseau bitcoin en envoyant et en recevant depuis ce fameux client dit "Satoshi", maintenu par une équipe brillante d'une trentaine de développeurs "conduite" par Gavin Andresen (Lead Core Developper)*.

La nouvelle version 0.8.0 intègre des améliorations notables en termes de performances afin de faire face à l'augmentation du nombre des transactions sur le réseau et de la taille de la base de donnée (la chaîne de blocs) qui en résulte, 5,3 giga-octets à fin février 2013.

Checkpoint au bloc n°216116: une attaque des 51% ne peut pas réécrire l'historique plus loin que ce bloc, les transactions jusqu'à ce bloc sont devenues absolument irréversibles.
Nouvelle base de données
Plus de fichier blkindex.dat

Incompatibilités
----------------
Cette version ne maintient plus un index complet des ids de transactions: la recherche d'une transaction quelconque par un appel RPC getrawtransaction ne marchera plus.

Améliorations
--------------

Les fichiers exécutables Mac et Windows sont maintenant signés avec des certificats détenus par la Bitcoin Foundation pour assurer la compatibilité avec les nouvelles fonctions de sécurité de OSX 10.8 et Windows 8.

LevelDB, la base de données rapide, open source de Google, est maintenant utilisée pour stocker localement les transactions et les indices des blocs.

Berkeley DB est toujours utilisée mais uniquement pour le fichier wallet.dat ( contenant les clés publiques et privées du wallet ainsi que les transactions qui les concernent).

Pieter Wuille a développé de nombreuses optimisations dans la manière de vérifier les transactions de sorte que le client "satoshi" utilise beaucoup moins de mémoire et d'entrées/sorties.

Nouvelles fonctionnalités
-------------------------

Support d'un "Bloom filter" dans le protocole pour envoyer seulement les transactions pertinentes aux clients "légers".

contrib/verifysfbinaries est un script (shell) pour vérifier l'intégrité des exécutables disponibles en téléchargement sur Source Forge.

contrib/spendfrom est un utilitaire python en ligne de commande pour utiliser l'API JSON-RPC "raw transactions" JSON-RPC api permettant d'envoyer des bitcoins depuis une certaine adresse de réception (cf. "coin control").

Nouvelles options de ligne de commande
--------------------------------------

dbcache : contrôle l'utilisation de la mémoire par LevelDB. Par exemple bitcoind -dbcache=1000
utilisera un gigabyte de mémoire et accélèrera le chargement initial de la chaîne de blocs.

par : contrôle le nombre de threads utilisés pour valider les transactions. Par défaut, le nombre de CPUs sur votre machine, -par=1 pour limiter à un seul CPU.

txindex : maintient un index supplémentaire des anciennes transactions ids de sorte qu'elles peuvent être retrouvées par la méthode JSON-RPC getrawtransaction.

reindex : reconstruit les index des blocs et des transactions à partir des données de blocs téléchargées.

Nouvelles fonctions de l'API JSON-RPC
-------------------------------------

lockunspent / listlockunspent: permet de bloquer des sorties de transactions pour un temps afin qu'elles ne soient pas dépensées par d'autres processus accédant au même wallet.

addnode / getaddednodeinfo: permet de se connecter à un "pair" spécifique sans redémarrer.

importprivkey: comporte désormais un paramètre booléen optionnel (par défaut: true) pour contrôler le rescan de la chaîne de blocs après l'importation d'un clé privée dans le wallet.

(*) La liste des développeurs du client "Satoshi":
Gavin Andresen
Alexander Kjeldaas
Andrey Alekseenko
Arnav Singh
Christian von Roques
Eric Lombrozo
Forrest Voight
Gregory Maxwell
Jeff Garzik
Luke Dashjr
Matt Corallo
Mike Cassano
Mike Hearn
Peter Todd
Philip Kaufmann
Pieter Wuille
Richard Schwab
Robert Backhaus
Rune K. Svendsen
Sergio Demian Lerner
Wladimir J. van der Laan
burger2
default
fanquake
grimd34th
justmoon
redshark1802
tucenaber
xanatos