librustzcash
librustzcash copied to clipboard
DSL to trace non-linear wallet syncing on logs
Feature Request
Define a Domain Specific Language that allows wallets to log non-linear wallet syncing for development purposes
Requirements:
Clients / wallets / backends can:
- read/write a log that can be used to trace, reconstruct and benchmark non-linear syncing
- logs can be written from many threads at once in one or multiple files that can be merged
- log is expressed in terms of a DSL that can be parsed by a script and expressed in a human-friendly way.
- different logs captured from different rounds of the same process can be diff'd and compared with ease to allow capturing improvements and regressions
DSL Should:
- allow developers to express the non-linear sync elements, events and actions
- allow developers to express the different metrics that are pertinent to the defined elements, events and actions along their respective transitions
- allow developers produce human-readable but still machine parseable logs that can be transformed into other useful resources such as Graphics, reports, debug traces.
- discourage developers to log sensitive data that the callers might handle in their internal state
- discourage developers to turn this tool into yet-another-verbose-log that nobody can read
- be wallet / client / backend agnostic. it should be possible to be used in SbS, DAG-Sync, WarpSync or BlazeSync provided those implementations log the relevant information.
- Allow tracing the order of logged events in time and express any parallelism or concurrency at play.