Documentation ¶
Index ¶
- func ValidateRangeMetadata(metadata map[string]interface{}) error
- type BulkOptimizable
- type CompositeKey
- type IndexCapable
- type QueryResult
- type QueryResultsIterator
- type ResultsIterator
- type UpdateBatch
- func (batch *UpdateBatch) Delete(ns string, key string, version *version.Height)
- func (batch *UpdateBatch) Exists(ns string, key string) bool
- func (batch *UpdateBatch) Get(ns string, key string) *VersionedValue
- func (batch *UpdateBatch) GetRangeScanIterator(ns string, startKey string, endKey string) QueryResultsIterator
- func (batch *UpdateBatch) GetUpdatedNamespaces() []string
- func (batch *UpdateBatch) GetUpdates(ns string) map[string]*VersionedValue
- func (batch *UpdateBatch) Put(ns string, key string, value []byte, version *version.Height)
- func (batch *UpdateBatch) PutValAndMetadata(ns string, key string, value []byte, metadata []byte, version *version.Height)
- func (batch *UpdateBatch) Update(ns string, key string, vv *VersionedValue)
- type VersionedDB
- type VersionedDBProvider
- type VersionedKV
- type VersionedValue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ValidateRangeMetadata ¶
validateRangeMetadata验证包含范围查询属性的JSON
Types ¶
type BulkOptimizable ¶
type BulkOptimizable interface { LoadCommittedVersions(keys []*CompositeKey) error GetCachedVersion(namespace, key string) (*version.Height, bool) ClearCachedVersions() }
BulkOptimizable接口为 能够进行批处理操作的数据库
type CompositeKey ¶
compositekey包含命名空间和关键组件
type IndexCapable ¶
type IndexCapable interface { GetDBType() string ProcessIndexesForChaincodeDeploy(namespace string, fileEntries []*ccprovider.TarFileEntry) error }
可索引接口为 databases capable of index operations
type QueryResultsIterator ¶
type QueryResultsIterator interface { ResultsIterator GetBookmarkAndClose() string }
queryresultsiterator添加getbookmarkandclose方法
type ResultsIterator ¶
type ResultsIterator interface { Next() (QueryResult, error) Close() }
resultsiterator迭代查询结果
type UpdateBatch ¶
type UpdateBatch struct {
// contains filtered or unexported fields
}
updateBatch包含多个“updates”的详细信息
func (*UpdateBatch) Delete ¶
func (batch *UpdateBatch) Delete(ns string, key string, version *version.Height)
删除删除键和关联值
func (*UpdateBatch) Exists ¶
func (batch *UpdateBatch) Exists(ns string, key string) bool
exists检查批处理中是否存在给定的密钥
func (*UpdateBatch) Get ¶
func (batch *UpdateBatch) Get(ns string, key string) *VersionedValue
get返回给定命名空间和键的versionedValue
func (*UpdateBatch) GetRangeScanIterator ¶
func (batch *UpdateBatch) GetRangeScanIterator(ns string, startKey string, endKey string) QueryResultsIterator
GetRangeScanIterator返回按排序顺序在特定命名空间的键上迭代的迭代器 换言之,“updateBatch”中内容的功能与 `versioneddb.getStateRangeScanIterator()`方法给出statedb中的内容 此函数可用于在将UpdateBatch中的内容提交给StateDB之前查询这些内容。 For instance, a validator implementation can used this to verify the validity of a range query of a transaction 其中,updateBatch表示由同一块中前面的有效事务执行的修改的联合 (假设使用group commit方法,在这里我们一起提交由块引起的所有更新)。
func (*UpdateBatch) GetUpdatedNamespaces ¶
func (batch *UpdateBatch) GetUpdatedNamespaces() []string
GetUpdatedNamespaces返回更新的命名空间的名称
func (*UpdateBatch) GetUpdates ¶
func (batch *UpdateBatch) GetUpdates(ns string) map[string]*VersionedValue
GetUpdates返回命名空间的所有更新
func (*UpdateBatch) PutValAndMetadata ¶
func (batch *UpdateBatch) PutValAndMetadata(ns string, key string, value []byte, metadata []byte, version *version.Height)
PutValandMetadata添加了一个带有值和元数据的键 要引入新函数以限制重构。稍后在单独的CR中,应删除上面的“Put”函数
func (*UpdateBatch) Update ¶
func (batch *UpdateBatch) Update(ns string, key string, vv *VersionedValue)
更新使用命名空间和键的最新条目更新批处理
type VersionedDB ¶
type VersionedDB interface { //GetState获取给定命名空间和键的值。对于chaincode,命名空间对应于chaincodeid GetState(namespace string, key string) (*VersionedValue, error) //GetVersion获取给定命名空间和键的版本。对于chaincode,命名空间对应于chaincodeid GetVersion(namespace string, key string) (*version.Height, error) //GetStateMultipleKeys获取单个调用中多个键的值 GetStateMultipleKeys(namespace string, keys []string) ([]*VersionedValue, error) //GetStateRangeScanIterator返回一个迭代器,该迭代器包含给定键范围之间的所有键值。 //startkey包含在内 //endkey是独占的 //The returned ResultsIterator contains results of type *VersionedKV GetStateRangeScanIterator(namespace string, startKey string, endKey string) (ResultsIterator, error) //GetStateRangeScanIteratorWithMetadata返回一个迭代器,该迭代器包含给定键范围之间的所有键值。 //startkey包含在内 //endkey是独占的 //元数据是附加查询参数的映射 //返回的resultsiterator包含类型为*versionedkv的结果 GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (QueryResultsIterator, error) //ExecuteQuery executes the given query and returns an iterator that contains results of type *VersionedKV. ExecuteQuery(namespace, query string) (ResultsIterator, error) //ExecuteEqueryWithMetadata使用关联的查询选项和 //返回一个迭代器,该迭代器包含类型为*versionedkv的结果。 //元数据是附加查询参数的映射 ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (QueryResultsIterator, error) //ApplyUpdates将批应用于基础数据库。 //height是批处理中最高事务的高度, //状态数据库实现应作为保存点使用。 ApplyUpdates(batch *UpdateBatch, height *version.Height) error //GetLatestSavePoint returns the height of the highest transaction upto which //状态db一致 GetLatestSavePoint() (*version.Height, error) //validateKeyValue测试DB实现是否支持键和值。 //例如,leveldb支持密钥的任何字节,而couchdb只支持有效的utf-8字符串 //要使函数validateKeyValue返回特定错误,请说errInvalidKeyValue //然而,到目前为止,这个函数的两个实现(leveldb和couchdb)在重新计算错误时都是确定的。 //也就是说,只有在键值对基础数据库无效时才会返回错误。 ValidateKeyValue(key string, value []byte) error //如果实现(基础数据库)支持用作键的任何字节,则BytesKeySupported返回true。 //例如,leveldb支持密钥的任何字节,而couchdb只支持有效的utf-8字符串 BytesKeySupported() bool //打开打开数据库 Open() error //关闭关闭数据库 Close() }
versionedDB列出了数据库应该实现的方法
type VersionedDBProvider ¶
type VersionedDBProvider interface { //getdbhandle将句柄返回到versioneddb GetDBHandle(id string) (VersionedDB, error) //Close closes all the VersionedDB instances and releases any resources held by VersionedDBProvider Close() }
VersionedDBProvider提供版本化数据库的实例
type VersionedKV ¶
type VersionedKV struct { CompositeKey VersionedValue }
versionedkv包含密钥和相应的versionedValue
type VersionedValue ¶
versionedValue包含值和相应的版本
func (*VersionedValue) IsDelete ¶
func (vv *VersionedValue) IsDelete() bool
如果此更新指示删除某个键,则isDelete返回true