Skip to content

Reference ​

Every option, key and configuration setting in poolwatch 0.1.0.

Command line ​

text
poolwatch [--config PATH] [--chain ID]... [--interval SECS] [--once]
OptionDefaultWhat it does
--config PATHpoolwatch.tomlThe configuration file to read. A relative path is relative to the current folder.
--chain IDevery chainWatch only the chain with this id. Repeat it to pick several.
--interval SECSfrom the fileReplaces poll_interval_secs for this run. Whole seconds.
--onceoffFetch one snapshot per chain, print a text report, and exit. No full-screen view.
--version, -VPrint poolwatch 0.1.0 and exit.
--help, -hPrint the usage text and exit.

Exit codes ​

CodeMeaning
0Normal exit. With --once: at least one chain answered.
1With --once: no chain answered. Also any start-up error, such as a missing or invalid configuration file.
2Unknown option or bad option value.

With --once, each chain gets up to 10 seconds to answer. The report lists the chains sorted by id.

Key bindings ​

KeyAction
qQuit. Ctrl + C also quits, even while typing a filter.
dGo to the dashboard.
1 to 9Open the detail view of chain 1 to 9, in configuration file order.
EnterOpen the detail view of the highlighted chain.
TabOpen the next chain's detail view, wrapping round.
EscFrom the detail view, back to the dashboard. Also closes help, and clears a filter while you type it.
↑ ↓ or k jDashboard: highlight a chain. Detail view: move through the transaction table.
fDetail view: sort transactions by fee rate, highest first.
sDetail view: sort by size, largest first.
tDetail view: sort by age, oldest first.
/Detail view: filter the transaction table by transaction ID prefix.
pPause or resume polling.
?Show or hide the help overlay.

While typing a filter: characters are added to it, Backspace deletes one, Enter keeps the filter, and Esc clears it. While help is open, only ?, Esc and q work.

Configuration file ​

TOML format. A [general] table and at least one [[chain]] table. Keys not listed here are ignored and noted in the log.

[general] ​

KeyRequiredDefaultWhat it sets
poll_interval_secsYesSeconds between full pool fetches, per chain. The example uses 5.
stats_interval_secsYesSeconds between summary (count and size) fetches, per chain. The example uses 2.
log_fileYesLog file path. ~ is expanded. Missing folders are created.
max_pool_response_mbNo64Largest full-pool reply accepted from a cryptonote chain, in MB. Above it the chain switches to stats-only.

[[chain]] ​

KeyRequiredApplies toWhat it sets
idYesallA unique name for the chain, used by --chain. Duplicates are an error.
display_nameYesallThe name shown in the views.
tickerYesallThe short symbol shown in the detail view title, such as XMR.
familyYesallcryptonote (monerod, oxend, beldexd and forks) or bitcoind (bitcoind and forks).
rpc_urlYesallThe node's RPC address, such as http://127.0.0.1:18081.
decimalsYesallDecimal places of the coin's smallest unit: 12 for Monero, 9 for Oxen and Beldex, 8 for Bitcoin.
fee_rate_unitNoallLabel shown after fee rates. Default au/B for cryptonote, sat/vB for bitcoind.
instant_txNocryptonoteblink (Oxen) or flash (Beldex): mark those transactions with ⚡.
rpc_loginNocryptonoteuser:pass for a node started with --rpc-login.
rpc_cookie_fileOne of these twobitcoindPath to the node's .cookie file. ~ is expanded.
rpc_user, rpc_passwordOne of these twobitcoindUser name and password. Both must be set together.

A bitcoind chain needs either rpc_cookie_file or rpc_user with rpc_password, never both. Setting a bitcoind-only key on a cryptonote chain, or the reverse, stops poolwatch with an error that names the chain.

On Windows, ~ expands to your user profile folder. Write Windows paths as TOML literal strings in single quotes, for example rpc_cookie_file = 'C:\Users\you\AppData\Roaming\Bitcoin\.cookie'.

Default node RPC ports ​

NodeDefault rpc_url in the exampleNotes
monerodhttp://127.0.0.1:18081Default RPC works. Add rpc_login if you use --rpc-login.
oxendhttp://127.0.0.1:22023Set instant_tx = "blink".
beldexdhttp://127.0.0.1:19091Set instant_tx = "flash".
bitcoindhttp://127.0.0.1:8332Needs server=1 in bitcoin.conf.

RPC calls ​

poolwatch only reads. These are the calls it makes:

FamilyCalls
cryptonote/get_transaction_pool, /get_transaction_pool_stats, and get_info through /json_rpc
bitcoindgetrawmempool (verbose), getmempoolinfo, getblockchaininfo, getnetworkinfo

Each request has a 10-second connection timeout and a 30-second overall timeout.

Timings and limits ​

ItemValue
Retry after a failed request1 s, doubling each time, at most 60 s
Retry after a too-large or unsupported full-pool fetch12 × poll_interval_secs
Full-pool size limitmax_pool_response_mb for cryptonote (default 64 MB); fixed 64 MB for bitcoind
ChartsLast 15 minutes
Fee bandsp10, p25, p50, p75, p90
Screen redrawEvery 250 ms
Recommended terminal size80 × 24 or larger

Logging ​

poolwatch writes its log to log_file, never to the terminal. The default level is info. Set the RUST_LOG environment variable for more detail, for example RUST_LOG=debug poolwatch.

Next steps ​