Поиск
Показаны результаты для тегов 'cli'.
Найдено: 1 результат
-
У биткоина есть как графический интерфейс именумеый bitcoin-qt так и консольный, bitcoind. Если первый удобен для использования человеком, то без текствого довольно сложно сделать интернет магазин или какой-либо иной сервис, принимающий биткоины в качестве оплаты. О нем и пойдет речь. Для работы нужно запустить один экземпляр 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 - Проверить подпись сообщения.