Open deepthiskumar opened 3 years ago
@deepthiskumar and @A-Manning to sync on a different possible solution
updated the issue description based on the discussion with @A-Manning
For usability, might it make more sense to expose the data in client status
or in another client command (e.g. client recent-fees
)? For example, I could imagine output like:
Transaction fees
================
min fee: X.X (prev block) | X.X (prev 3 blocks) | X.X (prev 5 blocks)
max fee: X.X (prev block) | X.X (prev 3 blocks) | X.X (prev 5 blocks)
max fee: X.X (prev block) | X.X (prev 3 blocks) | X.X (prev 5 blocks)
Snark work fees
===============
min fee: X.X (prev block) | X.X (prev 3 blocks) | X.X (prev 5 blocks)
max fee: X.X (prev block) | X.X (prev 3 blocks) | X.X (prev 5 blocks)
max fee: X.X (prev block) | X.X (prev 3 blocks) | X.X (prev 5 blocks)
Snark work
===========
available for next block: N
min fee: X.X
max fee: X.X
avg fee: X.X
works included: N (prev block) | N (prev 3 blocks) | N (prev 5 blocks)
Transactions
============
available for next block: N
min fee: X.X
max fee: X.X
avg fee: X.X
Transaction pool
=================
total available: N
min fee: X.X
max fee: X.X
avg fee: X.X
If this were generated from a GraphQL endpoint like we do with other commands, then this could easily be accessed programmatically from there too.
The number of transactions included in a block depends on availability of snarks and whether or not they can purchased using transaction fees. block producers log this information as a summary and in the detail in the following two logs
Number of proofs ready for purchase: $proof_count Number of user commands ready to be included: $txn_count Diff creation log: $diff_log
Detailed diff creation log: $diff_log
Every node can compute this based on its mempool and so having a cli command/GraphQL that surfaces this information will help to better understand whether it is insufficient transaction fees or snark work unavailability that may be reducing the throughput.