nanocurrency / nano-node

Nano is digital currency. Its ticker is: XNO and its currency symbol is: Ӿ
https://nano.org
BSD 3-Clause "New" or "Revised" License
3.47k stars 785 forks source link

Node logging framework #4260

Closed qwahzi closed 6 months ago

qwahzi commented 1 year ago

Summary

This logging/tracing framework will help log every node operation (tracing the exact path blocks travel across components of the node), allowing it to be later analyzed with Python or other tools.

What problem would be solved by this feature?

This enables faster & more accurate debugging, allowing developers to find and improve bottlenecks, deadlocks, & timeouts more effectively. One example from some of the work done so far is the identification of potential correlations between process-confirmed and confirm_ack_received messages. So in theory, better prioritizing & processing incoming confirm_acks over new elections could improve stability and/or throughput under load.

This contributes towards the ultimate goal of achieving reliably steady TPS (even under saturation).

Logging: https://github.com/nanocurrency/nano-node/pull/4375

Tracing: https://github.com/nanocurrency/nano-node/pull/4412

qwahzi commented 6 months ago

Closing, since the tracing PR has been merged: https://github.com/nanocurrency/nano-node/pull/4412