Zcash is a privacy focused cryptocurrency. But while Zcash is a blockchain built around privacy, the ecosystem was missing a source of live analytics to track private transactions. I built Zdash,info to solve this problem by providing the first live analytics dashboard for Zcash.
Zdash.info is built on a Rails backend and a React/Redux/Thunk frontend. For historical transactions, the backend uses RPC calls to a ecosystem blockchain utility using the rpc-json GEM. This allows for over a year of data - comprising over 2.2 million transactions - to be analyzed in only a few hours on a “vintage” MacBook Pro. For ongoing transactions, a scheduled Rake task connecting to a public API of Zcash transactions. Use of the activerecord-import GEM allows for high volumes (thousands at a time) of transactions to be efficiently added to the PostgreSQL database.
Our frontend is a single page application built on a React/Redux/Thunk framework, using a hierarchy of react-router routes, containers, and stateless components. Redux is used to manage and modify state change, while Thunk acts as middleware for async requests to the backend via RESTful API calls. Overall styling is handed via the React-Bootstrap framework. Our charts, the heart of Zdash.info, use the Nivo library of dataviz components. Nivo allows for SVG based, interactive, animated charts that look fantastic and are endlessly flexible.
The great response of the Zcash community to Zdash.info has opened up several avenues for future extensions to the site, including detailed data on shielded pools and custom date ranges in charting queries. Even better, there have been several requests to make Zdash.info an open source project so that community members can contribute functionality to the site. I look forward to continuing to improve and expand the site.