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
edytujDostę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
edytujAby 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ń
edytujNa oficjalnej WIKI (ang.)