You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue discusses approaches to facilitating indexing of state (not transactions) to an external database. Transaction indexing is already covered by Tendermint, but we don't have a generic state syncing mechanism in the SDK.
Problem Definition
Various projects would like to index chain state to an external database. Mature database software like PostgreSQL provide robust secondary index support and a full-featured query language which can make working with data much easier.
Proposal
The SDK should support some basic mechanism for streaming state changes to an external database.
The state synchronization mechanism should provide some level of fault tolerance so that if the connection is lost, the sync process can pick up from where it left off.
The SDK provides a basic tracekv.Store which serializes kv-store changes to stdout. An acceptable mechanism for synchronizing to an external database would likely be similar but we should think through how to make it robust.
Indexing state to an external database is also supported by the proposed schema module in #7097 which would allow the indexer to know how to decode key value pairs and possibly automatically generate database tables. But that functionality is orthogonal to the question of how to sync.
This is linked to meta-issue #7096.
Summary
This issue discusses approaches to facilitating indexing of state (not transactions) to an external database. Transaction indexing is already covered by Tendermint, but we don't have a generic state syncing mechanism in the SDK.
Problem Definition
Various projects would like to index chain state to an external database. Mature database software like PostgreSQL provide robust secondary index support and a full-featured query language which can make working with data much easier.
Proposal
The SDK should support some basic mechanism for streaming state changes to an external database.
The state synchronization mechanism should provide some level of fault tolerance so that if the connection is lost, the sync process can pick up from where it left off.
The SDK provides a basic
tracekv.Store
which serializes kv-store changes to stdout. An acceptable mechanism for synchronizing to an external database would likely be similar but we should think through how to make it robust.Indexing state to an external database is also supported by the proposed schema module in #7097 which would allow the indexer to know how to decode key value pairs and possibly automatically generate database tables. But that functionality is orthogonal to the question of how to sync.
/cc @AFDudley
The text was updated successfully, but these errors were encountered: