Bitcoind

Da BitcoinWiki.
Questa è la versione approvata di questa pagina, oltre ad essere la più recente.
Bitcoind interface, commands, RPC

Bitcoind – un programma demone che implementa il protocollo di Bitcoin, è controllato attraverso la linea di comando. È uno dei principali componenti del software de nodo di rete Bitcoin. Il software di Bitcoin esiste in due forme: un'applicazione GUI e un'applicazione di background (demone su Unix, servizio su Windows). I programmi possono essere controllati a distanza utilizzando il protocollo JSON-RPC (RFC 4627), le classi corrispondenti per PHP5 sono sviluppate. Questo permette di collegare diversi minatori ad un nodo, creare un proprio pool di utenti.

Che Cos'È Bitcoind?[modifica]

Bitcoind è un "client di riferimento" creato dal equipe centrale degli sviluppatori di Bitcoin. Questo è un nodo di bitcoin completo che scarica l'intera cronologia delle transazioni (blockchain) e elabora le transazioni. Bitcoind è in qualche modo limitato nella funzionalità, per esempio, non può dare la cronologia delle transazioni a un indirizzo che non è stato importato in anticipo. Tuttavia, fornisce un'interfaccia abbastanza potente per il programmatore.

Il software di Bitcoin ha sia un'interfaccia grafica chiamata bitcoin-qt che un'interfaccia di console. Se il primo è conveniente per uso umano, allora senza un testo è abbastanza difficile fare un negozio online o qualsiasi altro servizio che accetta bitcoins come pagamento. A questo proposito e il discorso andrà via.

Per lavorare è necessario eseguire una istanza di bitcoin come demone, quindi ha lavorato come un vero e proprio host sulla rete e gli ha dato dei comandi usando un'altra copia di bitcoind. L'interazione tra di loro avviene tramite JSON-RPC sopra la porta TCP 8332. Affinché si riconoscano e si fidino l'un l'altro, è necessario impostare rpcpassword, che è scritto nel file ~/.bitcoin / bitcoin.conf come rpcpassword = blah-blah-blah. Se non si dispone di un file di questo tipo è necessario crearlo. Lì è possibile registrare e altre impostazioni da quelle date all'avvio del demone.

Come Funziona[modifica]

Di conseguenza, l'unica cosa che serve per accettare bitcoin è un client di bitcoin sul server. Si chiama bitcoind, è solo una versione console del client, con tutte le stesse funzionalità familiari.

Funziona attraverso il protocollo JSON-RPC, si trova sotto la porta 8332. Tutto ciò che rimane dopo l'installazione è di impostare il client e node.js.

Installare

Per installare, è necessario eseguire i seguenti comandi:

  1. aggiungere il repository Bitcoin,
  2. installa aggiornamenti,
  3. installa il client
  4. crea una directory nella directory home
sudo aptitude install python-software-properties</code>
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo aptitude update
sudo aptitude install bitcoind
mkdir ~/.bitcoin/

Poi, è necessario configurare il client, creare demone per eseguire bitcoind in background. Il file di configurazione client deve essere collocato nella categoria home,~/.bitcoind, il file si chiama bitcoin.conf.

nano ~/.bitcoin/bitcoin.conf

Enter:

server=1
daemon=1
rpcuser=USERNAME
rpcpassword=PASSWORD

Impostare i log e la password al posto del USERNAME (nome utente) e della PASSWORD. Ora il demone viene creato per eseguire in background:

sudo nano /etc/init/bitcoind.conf

Enter:

description «bitcoind»
start on filesystem
stop on runlevel [!2345]
oom never
expect daemon
respawn
respawn limit 10 60 # 10 times in 60 seconds
script
user=USER
home=/home/$user
cmd=DIR
pidfile=$home/.bitcoin/bitcoind.pid

Non cambiare niente qui sotto:

[[ -e $pidfile &&! -d "/proc/$(cat $pidfile)" ]] && rm $pidfile
[[ -e $pidfile && "$(cat /proc/$(cat $pidfile)/cmdline)" != $cmd* ]] && rm $pidfile
exec start-stop-daemon --start -c $user --chdir $home --pidfile $pidfile --startas $cmd -b -m
end script

L'utente deve essere sostituito con il nome utente in base al quale bitcoind sarà lanciato, e la posizione DIR deve anche essere sostituita con il seguente percorso - /usr/bin/bitcoind. Configurazione demone Reboot:

sudo initctl reload-configuration

Lanciare:

sudo start bitcoind

Comandi per avviare il processo Bitcoind[modifica]

Dopo aver scaricato Bitcoind e installarlo / assemblarlo, il primo passo è creare un file di configurazione nella cartella di Bitcoin (~ / .bitcoin Per Linux) con i seguenti contenuti:

rpcuser=user
rpcpassword=pass
rpcport=8332
txindex=1

Vale la pena sostituire utente / pass con il proprio nome utente e password. Una volta fatto questo, cambiare nella directory contenente il file eseguibile (/ bin se si è installato il montaggio finito) ed eseguire il demone:

> ./bitcoind --daemon

Ora ci sono due modi per interagire con il bitcoind demone per forzarlo ad eseguire i comandi utente. Il primo modo è più semplice: alla riga di comando, digitare “bitcoind” con il nome del comando e gli argomenti. Per esempio:

> ./bitcoind getblockhash 1
00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048
> ./bitcoind getblock 00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048
  {  "hash" : "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048",     
     "confirmations" : 212362,     
     "size" : 215,     
     "height" : 1,     
     "version" : 1,
     "merkleroot" : "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
     "tx" : [  "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098"  ],     
     "time" : 1231469665,     
     "nonce" : 2573394689,
     "bits" : "1d00ffff",
     "difficulty" : 1.00000000,
     "previousblockhash" : "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
     "nextblockhash" : "000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd" 
   }

> ./bitcoind getrawtransaction 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098

01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000

Il secondo metodo utilizza JSON-RPC. Questa è un'interfaccia comune che consente di connettersi a bitcoind ed eseguire comandi da qualsiasi lingua - e possibilmente anche da un altro computer. Il Wiki Bitcoin ha una pagina con una descrizione dettagliata di alcuni modi per effettuare una chiamata JSON-RPC in vari linguaggi di programmazione. Per brevità, solo due sono elencati.

In Python:

import httplib, json, base64 def mkrequest(url,user,pass,method,params,hasresponse=True):

     connection = httplib.HTTPConnection(url)
     postdata = json.dumps({ "method": method, "params": params }) 
     req = urllib2.Request('http://localhost:8001',postdata, {   
              'Authorization': b'Basic '+base64.b64encode(user+':'+pass),
      })
     if hasresponse: return urllib2.urlopen(req).read().strip()

E qui si può fare sulla riga di comando usando curl:

curl --user <user> --pass <pass> --data-binary '{"method": <method>, "params": [<param1>,<param2>...] }' http://localhsot:8332

Come Fare RPC Calls con C++ Bitcoind[modifica]

demone di bitcoin = valore centrale del software (bitcoind-printoconsole-debug = 1)

Bitcoind fornisce la "Interfaccia" RPC in cui l'utente può interrogare con bitcoin-cli (o una libreria in c++).

È necessario eseguire bitcoind prima di utilizzare bitcoin-cli.

Fondamentalmente bitcoin-cli comunicare con bitcoind nodo dell'utente in modo da in altre parole il vostro stato attuale blockchain.

Vedere Anche[modifica]