Командная строка (talerd)

Это руководство содержит полную документацию по инструментам talerd (демон TALER) и taler-cli (интерфейс командной строки).

Обзор

TALER предоставляет два основных инструмента командной строки:

  • talerd: Демон блокчейна, который запускает полную ноду
  • taler-cli: Инструмент командной строки для взаимодействия с работающим демоном

talerd - Демон TALER

Демон talerd является основным программным обеспечением ноды блокчейна TALER.

Базовое использование

talerd [опции]

Основные опции

Настройка сети

ОпцияОписаниеПо умолчанию
-listenПринимать входящие соединения1 (включено)
-port=<port>Слушать на указанном порту23153 (mainnet)
-maxconnections=<n>Максимальное количество соединений с пирами128
-addnode=<ip>Добавить ноду для подключения-
-connect=<ip>Подключаться только к указанной ноде-
-seednode=<ip>Подключиться к ноде для получения начальных пиров-
-proxy=<ip:port>Подключаться через SOCKS5 прокси-
-bind=<addr>Привязаться к конкретному адресуВсе интерфейсы

Управление данными

ОпцияОписаниеПо умолчанию
-datadir=<dir>Указать каталог данныхСм. ниже
-prune=<n>Включить обрезку (уменьшить использование диска до ~n MB)0 (отключено)
-dbcache=<n>Размер кэша базы данных в MB450
-maxmempool=<n>Максимальный размер mempool в MB300
-blocksdir=<dir>Указать каталог для хранения блоковdatadir/blocks

Каталоги данных по умолчанию:

  • Windows: %APPDATA%\TALER\
  • macOS: ~/Taler/
  • Linux: ~/.taler/

RPC сервер

ОпцияОписаниеПо умолчанию
-serverПринимать JSON-RPC команды0 (отключено)
-rpcuser=<user>Имя пользователя RPC-
-rpcpassword=<pw>Пароль RPC-
-rpcport=<port>Слушать RPC на порту23152 (mainnet)
-rpcbind=<addr>Привязать RPC к адресу127.0.0.1
-rpcallowip=<ip>Разрешить RPC с IP (можно использовать несколько раз)127.0.0.1

Майнинг и стейкинг

ОпцияОписаниеПо умолчанию
-genГенерировать/майнить монеты0 (отключено)
-genproclimit=<n>Установить потоки майнинга (-1 = все ядра)-1
-stakegenВключить генерацию стейков (PoS)1 (включено)
-reservebalance=<amt>Зарезервированная сумма, не используемая для стейкинга0

Блокчейн и синхронизация

ОпцияОписаниеПо умолчанию
-testnetИспользовать тестовую сеть0 (mainnet)
-reindexПерестроить индекс блокчейна из файлов blk*.dat0
-reindex-chainstateПерестроить chainstate из текущих блоков0
-txindexПоддерживать полный индекс транзакций0
-addressindexПоддерживать индекс транзакций на основе адресов0
-timestampindexПоддерживать индекс блоков на основе временных меток0
-spentindexПоддерживать полный индекс потраченных выходов0

Кошелёк

ОпцияОписаниеПо умолчанию
-disablewalletНе загружать кошелёк0 (кошелёк включен)
-wallet=<file>Указать файл кошелькаwallet.dat
-zapwallettxes=<mode>Удалить все транзакции кошелька (1=сохранить метаданные, 2=удалить)0
-upgradewalletОбновить кошелёк до последнего формата0
-salvagewalletПопытаться восстановить приватные ключи из поврежденного кошелька0

Логирование и отладка

ОпцияОписаниеПо умолчанию
-debug=<category>Включить отладочное логирование (net, tor, mempool, rpc, bench, db)0
-debuglogfile=<file>Указать расположение файла отладочного логаdebug.log
-printtoconsoleОтправлять информацию трассировки/отладки в консоль0
-logtimestampsДобавлять временные метки к отладочному выводу1
-shrinkdebugfileСжимать debug.log при запуске1

Производительность

ОпцияОписаниеПо умолчанию
-par=<n>Установить потоки проверки скриптов (-1 = авто)-1
-checkblocks=<n>Количество блоков для проверки при запуске6
-checklevel=<n>Тщательность проверки блоков (0-4)3

Управление демоном

ОпцияОписание
-daemonЗапустить в фоновом режиме как демон (только Unix)
-pid=<file>Указать расположение PID файла
-conf=<file>Указать файл конфигурации
-versionВывести информацию о версии
-helpПоказать справочное сообщение

Примеры использования talerd

Запуск полной ноды с включенным RPC

talerd -server -rpcuser=myuser -rpcpassword=mypassword

Запуск обрезанной ноды (экономия места на диске)

talerd -prune=2000

Сохраняет приблизительно 2GB данных блокчейна.

Запуск в testnet

talerd -testnet

Включение PoW майнинга

talerd -gen -genproclimit=4

Майнинг с использованием 4 ядер CPU.

Запуск как фонового демона (Linux/macOS)

talerd -daemon

Запуск как systemd сервис (Linux)

Для развертывания на продакшн серверах запуск talerd как systemd сервиса обеспечивает автоматический запуск, контроль и логирование.

Шаг 1: Создать файл systemd сервиса

Создайте /etc/systemd/system/talerd.service:

[Unit]
Description=TALER Daemon
After=network.target

[Service]
Type=forking
User=taler
Group=taler
ExecStart=/usr/local/bin/talerd -daemon
ExecStop=/usr/local/bin/taler-cli stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

Шаг 2: Создать пользователя taler (если не существует):

sudo useradd -r -m -s /bin/bash taler

Шаг 3: Установить права:

sudo chown -R taler:taler /home/taler/.taler

Шаг 4: Включить и запустить сервис:

# Перезагрузить systemd для распознавания нового сервиса
sudo systemctl daemon-reload

# Включить сервис для запуска при загрузке
sudo systemctl enable talerd

# Запустить сервис
sudo systemctl start talerd

# Проверить статус
sudo systemctl status talerd

Полезные команды systemd:

# Остановить сервис
sudo systemctl stop talerd

# Перезапустить сервис
sudo systemctl restart talerd

# Просмотреть логи
sudo journalctl -u talerd -f

# Отключить автозапуск
sudo systemctl disable talerd

Пользовательский каталог данных

talerd -datadir=/mnt/blockchain/taler

Подключение только к определенным нодам

talerd -connect=192.168.1.100:23153 -connect=192.168.1.101:23153

Включение индексации транзакций

talerd -txindex

Необходимо для полной функциональности блок-эксплорера.

Переиндексация блокчейна

talerd -reindex

Полезно при повреждении базы данных блокчейна.


taler-cli - Интерфейс командной строки

taler-cli используется для отправки JSON-RPC команд работающему экземпляру talerd.

Базовое использование

taler-cli [опции] <команда> [параметры]

Опции подключения

ОпцияОписаниеПо умолчанию
-rpcuser=<user>Имя пользователя RPC-
-rpcpassword=<pw>Пароль RPC-
-rpcport=<port>Порт RPC23152
-rpcconnect=<ip>Адрес RPC сервера127.0.0.1
-datadir=<dir>Каталог данных (для чтения conf)См. выше
-testnetИспользовать testnet0

Основные команды

Информация о ноде

# Получить общую информацию о ноде
taler-cli getinfo

# Получить информацию о блокчейне
taler-cli getblockchaininfo

# Получить информацию о сети
taler-cli getnetworkinfo

# Получить количество подключений пиров
taler-cli getconnectioncount

# Получить детальную информацию о пирах
taler-cli getpeerinfo

Запросы к блокчейну

# Получить текущее количество блоков
taler-cli getblockcount

# Получить хэш блока по высоте
taler-cli getblockhash 12345

# Получить детали блока по хэшу
taler-cli getblock <blockhash>

# Получить детали транзакции
taler-cli gettransaction <txid>

# Получить сырую транзакцию (hex)
taler-cli getrawtransaction <txid>

# Получить информацию о mempool
taler-cli getmempoolinfo

# Получить транзакции в mempool
taler-cli getrawmempool

Операции с кошельком

# Получить баланс кошелька
taler-cli getbalance

# Получить новый адрес для получения
taler-cli getnewaddress

# Список последних транзакций
taler-cli listtransactions

# Список неизрасходованных выходов
taler-cli listunspent

# Отправить монеты
taler-cli sendtoaddress <address> <amount>

# Создать сырую транзакцию
taler-cli createrawtransaction '[{"txid":"...","vout":0}]' '{"address":amount}'

# Подписать сырую транзакцию
taler-cli signrawtransaction <hex>

# Отправить сырую транзакцию
taler-cli sendrawtransaction <hex>

Команды стейкинга

# Получить статус стейкинга
taler-cli getstakingstatus

# Получить информацию о стейкинге
taler-cli getstakinginfo

Управление нодой

# Остановить демон
taler-cli stop

# Получить статистику memory pool
taler-cli getmempoolinfo

# Оценить комиссию для транзакции
taler-cli estimatefee <blocks>

Файл конфигурации

Вместо передачи опций командной строки каждый раз, создайте файл конфигурации.

Расположение

  • Windows: %APPDATA%\TALER\taler.conf
  • macOS: ~/Taler/taler.conf
  • Linux: ~/.taler/taler.conf

Пример конфигурации полной ноды

# Настройки сети
listen=1
port=23153
maxconnections=128

# RPC сервер
server=1
rpcuser=yourusername
rpcpassword=your_strong_password_here
rpcport=23152
rpcallowip=127.0.0.1

# Производительность
dbcache=1024
maxmempool=300
par=-1

# Индексация (опционально, требуется для полного блок-эксплорера)
txindex=1

# Логирование
printtoconsole=0
logtimestamps=1

Пример конфигурации ноды для майнинга

# Сеть
listen=1
maxconnections=64

# RPC
server=1
rpcuser=miner
rpcpassword=mining_password

# Майнинг
gen=1
genproclimit=8

# Производительность
dbcache=2048

Пример конфигурации обрезанной ноды

# Сеть
listen=1
maxconnections=64

# Обрезка
prune=2000

# RPC
server=1
rpcuser=pruned
rpcpassword=password

# Производительность
dbcache=512

Пример конфигурации для стейкинга

# Сеть
listen=1
maxconnections=128

# RPC
server=1
rpcuser=staker
rpcpassword=staking_password

# Стейкинг
stakegen=1
reservebalance=10

# Производительность
dbcache=1024

Переменные окружения

Вы также можете настроить talerd и taler-cli с помощью переменных окружения:

export TALER_DATA_DIR=/custom/path
export TALER_RPC_USER=myuser
export TALER_RPC_PASSWORD=mypassword

Мониторинг и обслуживание

Проверка прогресса синхронизации

taler-cli getblockchaininfo | grep "verificationprogress"

Просмотр отладочного лога

Linux/macOS:

tail -f ~/.taler/debug.log

Windows:

type %APPDATA%\TALER\debug.log

Мониторинг сетевых подключений

watch -n 5 'taler-cli getpeerinfo | grep addr'

Проверка размера mempool

taler-cli getmempoolinfo

Оценка сетевого хешрейта

taler-cli getmininginfo

Устранение неполадок

Отказ в подключении RPC

Проблема: taler-cli не может подключиться к talerd

Решения:

  1. Убедитесь, что talerd запущен: ps aux | grep talerd
  2. Проверьте, что RPC включен в taler.conf: server=1
  3. Убедитесь, что учетные данные RPC совпадают в talerd и taler-cli
  4. Проверьте, что firewall не блокирует порт 23152

Синхронизация блокчейна застряла

Проблема: Нода прекращает синхронизацию на определенной высоте блока

Решения:

# Остановить демон
taler-cli stop

# Переиндексировать блокчейн
talerd -reindex

# Или перестроить только chainstate (быстрее)
talerd -reindex-chainstate

Высокое использование памяти

Проблема: talerd потребляет слишком много RAM

Решения:

# Уменьшить кэш базы данных
talerd -dbcache=256

# Уменьшить размер mempool
talerd -maxmempool=100

Кошелёк не загружается

Проблема: Кошелёк не загружается при запуске

Решения:

# Попытаться восстановить кошелёк
talerd -salvagewallet

# Или обновить формат кошелька
talerd -upgradewallet

Продвинутое использование

Запуск нескольких нод

Запуск отдельных нод mainnet и testnet:

Mainnet:

talerd -datadir=/data/taler-mainnet -port=23153 -rpcport=23152

Testnet:

talerd -testnet -datadir=/data/taler-testnet -port=33153 -rpcport=33152

Пользовательские сетевые seeds

Добавление конкретных seed нод для начального обнаружения пиров:

talerd -seednode=seed1.talercoin.org -seednode=seed2.talercoin.org

Анализ блокчейна

Включение полной индексации для анализа:

talerd -txindex -addressindex -timestampindex -spentindex

Примечание: Требует полной переиндексации блокчейна и значительно увеличивает использование диска.


Лучшие практики безопасности

Безопасность RPC

  1. Используйте сильные пароли:

    rpcpassword=$(openssl rand -base64 32)
    
  2. Ограничьте доступ к RPC:

    rpcallowip=127.0.0.1
    rpcbind=127.0.0.1
    
  3. Никогда не выставляйте RPC в публичный интернет без надлежащей аутентификации и шифрования

Права доступа к файлам

Защитите файл конфигурации:

chmod 600 ~/.taler/taler.conf

Настройка firewall

Открывайте только P2P порт (23153), а не RPC порт (23152):

# Разрешить P2P
sudo ufw allow 23153/tcp

# Заблокировать RPC извне
sudo ufw deny 23152/tcp

Следующие шаги

Нужна дополнительная помощь?

Не можете найти то, что ищете? Проверьте наш раздел FAQ или обратитесь к сообществу за помощью.