Experimental Zebra progress bars

by Teor

Recently, we added terminal-based progress bars to Zebra. These experimental progress bars show Zebra’s status, including peers, blocks, and transactions.

To display these progress bars, Zebra uses how-u-doin, a recently published Rust crate for progress bar coordination. how-u-doin uses the indicatif terminal display library to actually create the progress bars. We also started tracking some new metrics in Zebra, like the last chain fork height.

Fully Synced View

When Zebra has synced to the tip, the progress bars show:

  • how many peers Zebra is connected to
  • how far its has synced the chain
  • the recent chain forks it is tracking
  • how many transactions are in the mempool
Progress bars in a fully-synced Zebra node

This is an alternative to Zebra’s logs, which show the chain sync progress every minute and log mempool transactions as they arrive.

Initial Sync View

When Zebra is doing its initial sync, it shows the number of queued and verified checkpoint blocks. It doesn’t show the mempool because it doesn’t activate until it reaches the chain tip.

Progress bars during the initial sync of a Zebra node

Try it out for yourself

If you want to try Zebra’s progress bars for yourself, compile a recent checkout of the Zebra git repository with the progress-bar feature:

git clone https://github.com/ZcashFoundation/zebra.git
cd zebra
git checkout main
cargo run --features progress-bar --bin zebrad

This will automatically redirect Zebra’s logs to the standard log file path.

You’ll need to install Zebra’s dependencies and build Zebra yourself because this feature hasn’t made it into a release yet. Until we’re happy with the feature, it will be off by default in release builds.

User feedback

These progress bars are just an experiment for now. If they are popular with users, we can make them the default Zebra interface. They’ll look like zcashd’s sync progress bar, but with a bit more detail.

We’d also like to improve the display by:

  • only showing times and byte rates for verified checkpoints and blocks
  • removing less useful progress bars, or putting them behind an “expert user” config


If you have any other suggestions, let us know on our Discord, or on the Zcash Community Forums.