Bitcoin/Komunikacja z klientem

Z Wikibooks, biblioteki wolnych podręczników.

Klient Bitcoina umożliwia zautomatyzowaną komunikację z programami zewnętrznymi, dzięki czemu mogą one analizować historię transakcji oraz wykonywać transakcje. Służy do tego mechanizm RPC, a dokładniej JSON-RPC.

Funkcje umożliwiają:

  • Zarządzanie adresami w portfelu
  • Zarządzanie środkami - wysyłanie, historia, saldo
  • Przegląd łańcucha bloków
  • Zarządzanie aplikacją (np. zatrzymanie)
  • Zarządzanie siecią (informacje, łączenie z węzłami)

Aby uzyskać listę wszystkich poleceń, wpisz help. Można też po spacji wpisać konkretną komendę, aby zobaczyć jej opis.

Sposoby dostępu[edytuj]

Dostępny jest on zarówno w interfejsie użytkownika, poprzez wiersz poleceń jak i wbudowany serwer HTTP.

Interfejs użytkownika
Wejdź w menu Pomoc -> Okno debugowania -> zakładka Konsola. Okno składa się z wiersza wprowadzania polecenia (na dole) i okna wyników z historią (duże pole). Dostępne jest przywoływanie wcześniej wysłanych poleceń (klawiszami strzałek) oraz możliwość wyczyszczenia okna wyników.
Wiersz poleceń
Przejdź do katalogu (cd) z plikami wykonywalnymi bitcoina. Wpisz nazwę programu - ./bitcoin-qt (zawiera też interfejs graficzny), ./bitcoind lub w najnowszych wersjach ./bitcoin-cli. Po spacji wpisz polecenie, które chcesz wykonać i jego parametry.
HTTP
Po odpowiednim skonfigurowaniu, bitcoind będzie nasłuchiwał jako HTTP na porcie skonfigurowanym przez opcję rpcport. Szczegóły niżej. Dostęp można uzyskać np. poprzez cURL.

Konfigurowanie[edytuj]

Aby uruchomić możliwość wykonywania RPC może być konieczne ustawienie kilku opcji w pliku konfiguracyjnym lub jako parametr przy uruchamianiu. Więcej o tym jak wprowadzać ustawienia oraz co jeszcze można skonfigurować znajduje się w rozdziale Konfigurowanie.

  • rpcuser - użytkownik - do autoryzacji RPC
  • rpcpassword - hasło - do autoryzacji RPC
  • rpcallowip - z których IP można się łączyć?
  • rpcport - port do nasłuchu żądań HTTP
  • server - ustaw na "1" aby włączyć serwer HTTP

Inne opcje:

  • rpcconnect=IP - Wysyłaj polecenia do węzła działającego na IP (domyślnie: 127.0.0.1)
  • blocknotify=CMD - Wykonaj polecenie kiedy najlepszy blok ulegnie zmianie (%s w komendzie zastanie zastąpione przez hash bloku)
  • walletnotify=CMD - Wykonaj polecenie, kiedy transakcja portfela ulegnie zmianie (%s w poleceniu zostanie zastąpione przez TxID)

SSL:

  • rpcssl - Użyj OpenSSL (https) do połączeń JSON-RPC
  • rpcsslcertificatechainfile=file.cert - Plik certyfikatu serwera (domyślnie: server.cert)
  • rpcsslprivatekeyfile=file.pem - Klucz prywatny serwera (domyślnie: server.pem)
  • rpcsslciphers=ciphers - Acceptable ciphers

Spis poleceń[edytuj]

Na oficjalnej WIKI (ang.)