Created
January 9, 2018 10:09
-
-
Save ceoooooo/a1e4ce4dcc0e4ca5ee1728dcacd99574 to your computer and use it in GitHub Desktop.
bitcoin and command
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Для работы нужно запустить один экземпляр bitcoind в качестве демона, чтобы он работал в качестве полноценного узла сети и отдавать ему команды с помощью еще одной копии bitcoind. Взаимодействие между ними происходит по JSON-RPC через 8332й tcp порт. Для того чтобы они узнавали и доверяли друг другу нужно задать rpcpassword, который прописывается в файле ~/.bitcoin/bitcoin.conf как rpcpassword=blah-blah-blah. Если у вас нет такого файла то его нужно создать. Туда же можно прописать и другие параметры из тех, что указываются при запуске демона. | |
Полный список параметров можно получить запустив bitcoind с ключем --help или -?, вот пример того, что мы увидим в ответ: | |
Bitcoin version 0.5.2-beta | |
Usage: | |
bitcoind [options] | |
bitcoind [options] <command> [params] Send command to -server or bitcoind | |
bitcoind [options] help List commands | |
bitcoind [options] help <command> Get help for a command | |
Options: | |
-conf=<file> Specify configuration file (default: bitcoin.conf) | |
-pid=<file> Specify pid file (default: bitcoind.pid) | |
-gen Generate coins | |
-gen=0 Don't generate coins | |
-min Start minimized | |
-datadir=<dir> Specify data directory | |
-timeout=<n> Specify connection timeout (in milliseconds) | |
-proxy=<ip:port> Connect through socks4 proxy | |
-dns Allow DNS lookups for addnode and connect | |
-port=<port> Listen for connections on <port> (default: 8333 or testnet: 18333) | |
-maxconnections=<n> Maintain at most <n> connections to peers (default: 125) | |
-addnode=<ip> Add a node to connect to | |
-connect=<ip> Connect only to the specified node | |
-noirc Don't find peers using internet relay chat | |
-nolisten Don't accept connections from outside | |
-nodnsseed Don't bootstrap list of peers using DNS | |
-banscore=<n> Threshold for disconnecting misbehaving peers (default: 100) | |
-bantime=<n> Number of seconds to keep misbehaving peers from reconnecting (default: 86400) | |
-maxreceivebuffer=<n> Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000) | |
-maxsendbuffer=<n> Maximum per-connection send buffer, <n>*1000 bytes (default: 10000) | |
-upnp Attempt to use UPnP to map the listening port | |
-paytxfee=<amt> Fee per KB to add to transactions you send | |
-daemon Run in the background as a daemon and accept commands | |
-testnet Use the test network | |
-debug Output extra debugging information | |
-logtimestamps Prepend debug output with timestamp | |
-printtoconsole Send trace/debug info to console instead of debug.log file | |
-rpcuser=<user> Username for JSON-RPC connections | |
-rpcpassword=<pw> Password for JSON-RPC connections | |
-rpcport=<port> Listen for JSON-RPC connections on <port> (default: 8332) | |
-rpcallowip=<ip> Allow JSON-RPC connections from specified IP address | |
-rpcconnect=<ip> Send commands to node running on <ip> (default: 127.0.0.1) | |
-keypool=<n> Set key pool size to <n> (default: 100) | |
-rescan Rescan the block chain for missing wallet transactions | |
SSL options: (see the Bitcoin Wiki for SSL setup instructions) | |
-rpcssl Use OpenSSL (https) for JSON-RPC connections | |
-rpcsslcertificatechainfile=<file.cert> Server certificate file (default: server.cert) | |
-rpcsslprivatekeyfile=<file.pem> Server private key (default: server.pem) | |
-rpcsslciphers=<ciphers> Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH) | |
-? This help message | |
Вот описание некоторых из них: | |
-conf - позволяет задать файл конфигурации отличный от ~/.bitcoin/bitcoin.conf | |
-pid - указать файл, в который будет писаться pid процесса демона | |
-gen - после старта начать майнить биткоины (он это будет пытаться делать на cpu, что крайне неэффективно) | |
-gen=0 - не майнить биткоины (если в файле конфигурации указано иное) | |
-datadir= - использовать вместо ~/.bitcoin/ указанный путь | |
-timeout= - таймаут tcp соединения | |
-proxy=<ip:port> - соединятся через указанный SOCKS4 прокси-сервер, например через tor | |
-port= - использовать указанный порт вместо 8333 | |
-maxconnections= - ограничить число одновременных соединений, по умолчанию 125 | |
-addnode= - так же подключится и к указанному узлу, тут полезно указать адреса пулов для ускорения транзакций, можно использовать несколько раз | |
-connect= - подключится только к указанному узлу, полезно, если вы хотите загрузить блоки с другого компьютера в локальной сети не загружая интернет-канал | |
-noirc - не использовать irc для поиска узлов и анонса собственного адреса (например irc запрещен хостингом, что встречается довольно часто) | |
-nolisten - не принимать входящие соединения | |
-nodnsseed - не использовать DNS для поиска узлов | |
-upnp - Пытаться использовать UPnP для того чтобы пробросить порт. Полезно, если вы заначены роутером, использующим внешний ip и поддерживающим UPnP. Не нужно, если вы имеете внешний ip напрямую и не имеет смысла, если ваш роутер не имеет внешнего ip. | |
-paytxfee= - установить размер комиссию (в биткоинах), собственная логика клиента имеет приоритет над этим значением | |
-daemon - запускаться в фоне | |
-testnet - использовать тестовую сеть | |
-debug - писать отладочную информацию | |
-logtimestamps - снабжать лог временными метками | |
-printtoconsole - использовать stdout вместо debug.log | |
-rpcuser= и -rpcpassword - имя пользователя и пароль для JSON-RPC, как для лемона так и для клиента | |
-rpcport= - использовать для JSON-RPC порт, отличный от 8332 | |
-rpcallowip= - разрешить принимать команды с указанного ip, по умолчанию команды принимаются только с 127.0.0.1, можно использовать несколько раз | |
-rpcconnect= - отправлять команды на указанный узел а не на 127.0.0.1 | |
-keypool= - сгенерировать указанное количество ключей при старте, по умолчанию - 100 | |
-rescan - перечитать цепочку блоков, полезно если у вас поврежден blkindex.dat или есть зависшие транзакции в кошельке | |
Так же в 0.6 версии появилась довольно полезная опция -blocknotify=, которая запускает указанную команду при получении нового блока, например для обработчика платежей. | |
Большую часть перечисленных параметров можно указывать и в bitcoin.conf. | |
При работе в режиме демона клиент использует множество "виртуальных" аккаунтов, для каждого из которых ведет свой учет баланса. Такая логика может существенно упростить создание какого-либо сервиса, поскольку достаточно привязать пользователей сервиса к аккаунтам bitcoind. Баланс на аккаунте может быть как положительным так и отрицательным. Аккаунт, используемый по умолчанию - "" (пустая строка). | |
После запуска демона должно пройти какое-то время, чтобы он проинициализировался и начал ожидать команд. Список команд, которые можно отдать демону, можно получить, запустив bitcoind с аргументом help (без --). Вот пример вывода: | |
backupwallet <destination> | |
encryptwallet <passphrase> | |
getaccount <bitcoinaddress> | |
getaccountaddress <account> | |
getaddressesbyaccount <account> | |
getbalance [account] [minconf=1] | |
getblockcount | |
getconnectioncount | |
getdifficulty | |
getgenerate | |
gethashespersec | |
getinfo | |
getmemorypool [data] | |
getnewaddress [account] | |
getreceivedbyaccount <account> [minconf=1] | |
getreceivedbyaddress <bitcoinaddress> [minconf=1] | |
gettransaction <txid> | |
getwork [data] | |
help [command] | |
keypoolrefill | |
listaccounts [minconf=1] | |
listreceivedbyaccount [minconf=1] [includeempty=false] | |
listreceivedbyaddress [minconf=1] [includeempty=false] | |
listsinceblock [blockid] [target-confirmations] | |
listtransactions [account] [count=10] [from=0] | |
move <fromaccount> <toaccount> <amount> [minconf=1] [comment] | |
sendfrom <fromaccount> <tobitcoinaddress> <amount> [minconf=1] [comment] [comment-to] | |
sendmany <fromaccount> {address:amount,...} [minconf=1] [comment] | |
sendtoaddress <bitcoinaddress> <amount> [comment] [comment-to] | |
setaccount <bitcoinaddress> <account> | |
setgenerate <generate> [genproclimit] | |
settxfee <amount> | |
signmessage <bitcoinaddress> <message> | |
stop | |
validateaddress <bitcoinaddress> | |
verifymessage <bitcoinaddress> <signature> <message> | |
Описание некоторых комманд: | |
backupwallet - сделать резервную копию wallet.dat | |
encryptwallet - зашифровать кошелек (необратимо!) | |
getaccount - Узнать, какому аккаунту принадлежит указанный адрес. Пареметр - bitcoin адрес, результат - строка с именем аккаунта. | |
getaddressesbyaccount - Вывести список адресов, принадлежащих указанному аккаунту. Параметр - имя аккаунта, результат - список bitcoin-адресов в формате JSON. | |
getaccountaddress - Сгенерировать еще один адрес для указанного аккаунта. Параметр - имя аккаунта, результат - строка с bitcoin-адресом. | |
getbalance - Вывести баланс аккаунта для указанного количества подтверждений. Первый необязательный параметр - имя аккаунта, второй необязательный параметр - количество подтверждений, результат - положительное или отрицательное число c 8ю знаками после точки. | |
getblockcount - Вывести текущее колиечество блоков. Результат - целое число. | |
getconnectioncount - Вывести текущее количество соединений. Результат - целое число. | |
getdifficulty - Вывести текущую сложность. Результат - число с 8ю знаками после точки. | |
getgenerate - Вывести состояние генерации. Результат - true или false. | |
getinfo - Вывести ряд текущих параметров в виде JSON-массива. | |
getnewaddress - Сгенерировать еще один адрес для указанного аккаунта. Параметр - имя аккаунта, результат - строка с bitcoin-адресом. | |
getreceivedbyaccount - Вывести общее количество принятых средств на аккаунт без учета отправленных. Первый параметр - имя аккаунта, второй необязательный параметр - количество подтверждений, результат - число с 8ю знаками после точки. | |
getreceivedbyaddress - Вывести список входящих транзакций на указанный адрес. Первый параметр - bitcoin-адрес, второй необязательный параметр - количество подтверждений, результат - JSON массив с входящими транзакциями на указанный адрес. | |
gettransaction - Вывести информацию по транзакции. | |
help - Вывести список доступных комманд или описание команды, если она указана аргументом. | |
listaccounts - Вывести список аккаунтов с балансом на них. Результат - JSON-массив. | |
listreceivedbyaccount - Вывести JSON-массив с аккантами, общим количеством принятых на них средств без учета отправленных и количеством подтверждений. | |
listreceivedbyaddress - Тожесамое, но с детализацией по bitcoin-адресам. | |
listtransactions - Вывести список транзакций в JSON формате. | |
move - Перевести средства с одного аккаунта на другой без осуществления транзакции в сети. | |
sendfrom - Отправить сресдва с указанного аккаунта. | |
sendmany - Отправить сресдва с указанного аккаунта на множество адресов. | |
sendtoaddress - Отправить средства с аккаунта по умолчанию. | |
setaccount - Сделать адрес принадлежащим аккаунту. | |
setgenerate - Включить/выключить генерацию блоков. Параметр - true или false, не возвращает ничего. | |
settxfee - Установить комиссию. | |
signmessage - Подписать сообщение, полезно для подтверждения принадлежности адреса. | |
stop - Остановить демон. До полной остановки должно пройти какое-то время. | |
validateaddress - Проверить правильность адреса. Так же возвращает аккаунт, которому он принадлежит, если таковой имеется. | |
verifymessage - Проверить подпись сообщения. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment