Командний рядок (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 або зверніться до спільноти за допомогою.