Chronicle is a tool that consumes the state-history-plugins data and converts it to JSON. It sends this data over an outgoing websocket for processing. There are some challenges here too, as many of the numeric fields are changed to a string, which can be problematic for strongly-typed languages. Chronicle has a lot of options, making it a very good choice for when integrating into a custom data backend.

fio.etl is an example of a tool that uses Chronicle.


Enable State History in nodeos

In nodeos config.ini enable State History:

# State History (For 1.8.0-rc1+ add to start params --disable-replay-opts )
plugin = eosio::state_history_plugin
state-history-dir = state-history
trace-history = true
chain-state-history = true
state-history-endpoint =
# debug mode info (https://github.com/EOSIO/eos/pull/7298)
# trace-history-debug-mode

Install Chronicle

mkdir -p /opt/src/
cd /opt/src/
git clone --recursive https://github.com/EOSChronicleProject/eos-chronicle.git
cd eos-chronicle
./pinned_build/install_deps.sh && mkdir build && nice ./pinned_build/chronicle_pinned_build.sh /opt/src/chronicle-deps /opt/src/eos-chronicle/build $(nproc)

sudo apt install ./build/antelope-chronicle-3.3-Clang-11.0.1-ubuntu20.04-x86_64.deb