接口如下
type VersionedDB interface {
GetState(namespace string, key string) (*VersionedValue, error)
GetVersion(namespace string, key string) (*version.Height, error)
GetStateMultipleKeys(namespace string, keys []string) ([]*VersionedValue, error)
GetStateRangeScanIterator(namespace string, startKey string, endKey string) (ResultsIterator, error)
ExecuteQuery(namespace, query string) (ResultsIterator, error)
ApplyUpdates(batch *UpdateBatch, height *version.Height) error
GetLatestSavePoint() (*version.Height, error)
ValidateKeyValue(key string, value []byte) error
BytesKeySuppoted() bool
Open() error
Close()
}
versiondb又称Statedb,状态数据库,保存世界状态信息.
其中 BytesKeySuppoted
方法描述的是该数据库是否支持字节数组作为key.
例如,goleveldb支持,那么key直接存储,couchdb不支持,那么先将key进行base64编码,然后再存.