Package files defines a Provider that stores all data in the filesystem
We assume the same validator hash may be reused by many different headers/Commits, and thus store it separately. This leaves us with three issues:
1. Given a validator hash, retrieve the validator set if previously stored 2. Given a block height, find the Commit with the highest height <= h 3. Given a FullCommit, store it quickly to satisfy 1 and 2
Note that we do not worry about caching, as that can be achieved by pairing this with a MemStoreProvider and CacheProvider from certifiers
const ( Ext = ".tsd" ValDir = "validators" CheckDir = "checkpoints" )
const ( // MaxFullCommitSize is the maximum number of bytes we will // read in for a full commit to avoid excessive allocations // in the deserializer MaxFullCommitSize = 1024 * 1024 )
func LoadFullCommit ¶
LoadFullCommit loads the full commit from the file system.
func LoadFullCommitJSON ¶
LoadFullCommitJSON loads the commit from the file system in JSON format.
func NewProvider ¶
NewProvider creates the parent dir and subdirs for validators and checkpoints as needed
func SaveFullCommit ¶
SaveFullCommit exports the seed in binary / go-amino style