Bitcoin/Komunikacja z klientem

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.)