The German wiki is no longer maintained and is in read-only mode. Information contained within may be inaccurate or outdated. Please go to the English wiki for more up to date information.
Automatische Übersetzung aus dem Englischen: Das deutsche Wiki wird nicht mehr gepflegt und ist im Nur-Lese-Modus. Die darin enthaltenen Informationen können ungenau oder veraltet sein. Aktuellere Informationen finden Sie im englischen Wiki.
API-Referenz (JSON-RPC)
Bitcoin steuern
Bitcoin muss zuerst im Server-Modus gestartet werden. Um den Servermodus starten zu können müssen Sie zunächst einen rpcuser und ein rpcpassword ein der bitcoin.conf festlegen. Starten Sie danach entweder bicoind oder bitcoin -server.
Sie können den Server nun entweder über die Kommandozeile oder über HTTP JSON-RPC Kommandos steuern.
Hierzu ein paar Beispiele:
$ ./bitcoind bitcoin server starting $ ./bitcoind help #Zeigt den Hilfetext mit allen RPC-API Befehlen #z.B $ ./bitcoind getbalance 2000.00000
JSON-RPC
Um mit dem Server über JSON-RPC zu kommunizieren muss eine HTTP-Authentifizierung verwendet werden und aus Sicherheitsgründen werden standardmäßig nur Verbindungen von Prozessen auf der lokalen Maschine angenommen. Ab version 0.3.14 wird SSL (HTTPS) für Verbindungen unterstützt.
Beispiele
Hier ein paar Beispiele für die Kommunikation per JSON-RPC in verschiedenen Programmiersprachen
Python
JSON-RPC for Python ist die offizielle JSON-RPC Implementierung für Python. Sie generiert die RPC-Aufrufe Automatisch. Leider ist die Bibliothek aus Gründen der Kompatibilität relativ ineffizient. User:Jgarzik hat aus diesem die optimierte Version (nur für Python 2.6 aufwärts) Python-BitcoinRPC erstellt. Diese Version sollte wenn möglich bevorzugt werden.
So lange nur die ServiceProxy Klasse genutzt wird, ist es dem Benutzer überlassen welche der beiden Paket genutzt werden.
Hier ein Beispiel:
from jsonrpc import ServiceProxy
access = ServiceProxy("http://user:password@127.0.0.1:8332")
access.getinfo()
access.listreceivedbyaddress(6)
#usw...
Ruby
Stellen Sie sicher, dass Sie den rest-client installiert haben oder führen sie gegebenenfalls den Befehl
$ gem install rest-client
aus.
=begin
Benutzung:
h = ServiceProxy.new('http://user:password@127.0.0.1:8332')
puts h.getinfo.call
puts h.getbalance.call 'accname'
=end
require 'json'
require 'rest_client'
class JSONRPCException < RuntimeError
def initialize()
super()
end
end
class ServiceProxy
def initialize(service_url, service_name=nil)
@service_url = service_url
@service_name = service_name
end
def method_missing(name, *args, &block)
if @service_name != nil
name = "%s.%s" % [@service_name, name]
end
return ServiceProxy.new(@service_url, name)
end
def respond_to?(sym)
end
def call(*args)
postdata = {"method" => @service_name, "params" => args, "id" => "jsonrpc"}.to_json
respdata = RestClient.post @service_url, postdata
resp = JSON.parse respdata
if resp["error"] != nil
raise JSONRPCException.new, resp['error']
end
return resp['result']
end
end