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