Documentation ¶
Overview ¶
包填充程序为链代码提供API以访问其状态 变量、事务上下文和调用其他链码。
包填充程序为链代码提供API以访问其状态 变量、事务上下文和调用其他链码。
Index ¶
- Constants
- func Error(msg string) pb.Response
- func IsEnabledForLogLevel(logLevel string) bool
- func SetLoggingLevel(level LoggingLevel)
- func SetupChaincodeLogging()
- func Start(cc Chaincode) error
- func StartInProc(env []string, args []string, cc Chaincode, recv <-chan *pb.ChaincodeMessage, ...) error
- func Success(payload []byte) pb.Response
- type Chaincode
- type ChaincodeLogger
- func (c *ChaincodeLogger) Critical(args ...interface{})
- func (c *ChaincodeLogger) Criticalf(format string, args ...interface{})
- func (c *ChaincodeLogger) Debug(args ...interface{})
- func (c *ChaincodeLogger) Debugf(format string, args ...interface{})
- func (c *ChaincodeLogger) Error(args ...interface{})
- func (c *ChaincodeLogger) Errorf(format string, args ...interface{})
- func (c *ChaincodeLogger) Info(args ...interface{})
- func (c *ChaincodeLogger) Infof(format string, args ...interface{})
- func (c *ChaincodeLogger) IsEnabledFor(level LoggingLevel) bool
- func (c *ChaincodeLogger) Notice(args ...interface{})
- func (c *ChaincodeLogger) Noticef(format string, args ...interface{})
- func (c *ChaincodeLogger) SetLevel(level LoggingLevel)
- func (c *ChaincodeLogger) Warning(args ...interface{})
- func (c *ChaincodeLogger) Warningf(format string, args ...interface{})
- type ChaincodeStub
- func (stub *ChaincodeStub) CreateCompositeKey(objectType string, attributes []string) (string, error)
- func (stub *ChaincodeStub) DelPrivateData(collection string, key string) error
- func (stub *ChaincodeStub) DelState(key string) error
- func (stub *ChaincodeStub) GetArgs() [][]byte
- func (stub *ChaincodeStub) GetArgsSlice() ([]byte, error)
- func (stub *ChaincodeStub) GetBinding() ([]byte, error)
- func (stub *ChaincodeStub) GetChannelID() string
- func (stub *ChaincodeStub) GetCreator() ([]byte, error)
- func (stub *ChaincodeStub) GetDecorations() map[string][]byte
- func (stub *ChaincodeStub) GetFunctionAndParameters() (function string, params []string)
- func (stub *ChaincodeStub) GetHistoryForKey(key string) (HistoryQueryIteratorInterface, error)
- func (stub *ChaincodeStub) GetPrivateData(collection string, key string) ([]byte, error)
- func (stub *ChaincodeStub) GetPrivateDataByPartialCompositeKey(collection, objectType string, attributes []string) (StateQueryIteratorInterface, error)
- func (stub *ChaincodeStub) GetPrivateDataByRange(collection, startKey, endKey string) (StateQueryIteratorInterface, error)
- func (stub *ChaincodeStub) GetPrivateDataQueryResult(collection, query string) (StateQueryIteratorInterface, error)
- func (stub *ChaincodeStub) GetPrivateDataValidationParameter(collection, key string) ([]byte, error)
- func (stub *ChaincodeStub) GetQueryResult(query string) (StateQueryIteratorInterface, error)
- func (stub *ChaincodeStub) GetQueryResultWithPagination(query string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
- func (stub *ChaincodeStub) GetSignedProposal() (*pb.SignedProposal, error)
- func (stub *ChaincodeStub) GetState(key string) ([]byte, error)
- func (stub *ChaincodeStub) GetStateByPartialCompositeKey(objectType string, attributes []string) (StateQueryIteratorInterface, error)
- func (stub *ChaincodeStub) GetStateByPartialCompositeKeyWithPagination(objectType string, keys []string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
- func (stub *ChaincodeStub) GetStateByRange(startKey, endKey string) (StateQueryIteratorInterface, error)
- func (stub *ChaincodeStub) GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
- func (stub *ChaincodeStub) GetStateValidationParameter(key string) ([]byte, error)
- func (stub *ChaincodeStub) GetStringArgs() []string
- func (stub *ChaincodeStub) GetTransient() (map[string][]byte, error)
- func (stub *ChaincodeStub) GetTxID() string
- func (stub *ChaincodeStub) GetTxTimestamp() (*timestamp.Timestamp, error)
- func (stub *ChaincodeStub) InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response
- func (stub *ChaincodeStub) PutPrivateData(collection string, key string, value []byte) error
- func (stub *ChaincodeStub) PutState(key string, value []byte) error
- func (stub *ChaincodeStub) SetEvent(name string, payload []byte) error
- func (stub *ChaincodeStub) SetPrivateDataValidationParameter(collection, key string, ep []byte) error
- func (stub *ChaincodeStub) SetStateValidationParameter(key string, ep []byte) error
- func (stub *ChaincodeStub) SplitCompositeKey(compositeKey string) (string, []string, error)
- type ChaincodeStubInterface
- type CommonIterator
- type CommonIteratorInterface
- type Handler
- type HistoryQueryIterator
- type HistoryQueryIteratorInterface
- type LoggingLevel
- type MockQueryIteratorInterface
- type MockStateRangeQueryIterator
- type MockStub
- func (stub *MockStub) CreateCompositeKey(objectType string, attributes []string) (string, error)
- func (stub *MockStub) DelPrivateData(collection string, key string) error
- func (stub *MockStub) DelState(key string) error
- func (stub *MockStub) GetArgs() [][]byte
- func (stub *MockStub) GetArgsSlice() ([]byte, error)
- func (stub *MockStub) GetBinding() ([]byte, error)
- func (stub *MockStub) GetChannelID() string
- func (stub *MockStub) GetCreator() ([]byte, error)
- func (stub *MockStub) GetDecorations() map[string][]byte
- func (stub *MockStub) GetFunctionAndParameters() (function string, params []string)
- func (stub *MockStub) GetHistoryForKey(key string) (HistoryQueryIteratorInterface, error)
- func (stub *MockStub) GetPrivateData(collection string, key string) ([]byte, error)
- func (stub *MockStub) GetPrivateDataByPartialCompositeKey(collection, objectType string, attributes []string) (StateQueryIteratorInterface, error)
- func (stub *MockStub) GetPrivateDataByRange(collection, startKey, endKey string) (StateQueryIteratorInterface, error)
- func (stub *MockStub) GetPrivateDataQueryResult(collection, query string) (StateQueryIteratorInterface, error)
- func (stub *MockStub) GetPrivateDataValidationParameter(collection, key string) ([]byte, error)
- func (stub *MockStub) GetQueryResult(query string) (StateQueryIteratorInterface, error)
- func (stub *MockStub) GetQueryResultWithPagination(query string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
- func (stub *MockStub) GetSignedProposal() (*pb.SignedProposal, error)
- func (stub *MockStub) GetState(key string) ([]byte, error)
- func (stub *MockStub) GetStateByPartialCompositeKey(objectType string, attributes []string) (StateQueryIteratorInterface, error)
- func (stub *MockStub) GetStateByPartialCompositeKeyWithPagination(objectType string, keys []string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
- func (stub *MockStub) GetStateByRange(startKey, endKey string) (StateQueryIteratorInterface, error)
- func (stub *MockStub) GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
- func (stub *MockStub) GetStateValidationParameter(key string) ([]byte, error)
- func (stub *MockStub) GetStringArgs() []string
- func (stub *MockStub) GetTransient() (map[string][]byte, error)
- func (stub *MockStub) GetTxID() string
- func (stub *MockStub) GetTxTimestamp() (*timestamp.Timestamp, error)
- func (stub *MockStub) InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response
- func (stub *MockStub) MockInit(uuid string, args [][]byte) pb.Response
- func (stub *MockStub) MockInvoke(uuid string, args [][]byte) pb.Response
- func (stub *MockStub) MockInvokeWithSignedProposal(uuid string, args [][]byte, sp *pb.SignedProposal) pb.Response
- func (stub *MockStub) MockPeerChaincode(invokableChaincodeName string, otherStub *MockStub)
- func (stub *MockStub) MockTransactionEnd(uuid string)
- func (stub *MockStub) MockTransactionStart(txid string)
- func (stub *MockStub) PutPrivateData(collection string, key string, value []byte) error
- func (stub *MockStub) PutState(key string, value []byte) error
- func (stub *MockStub) SetEvent(name string, payload []byte) error
- func (stub *MockStub) SetPrivateDataValidationParameter(collection, key string, ep []byte) error
- func (stub *MockStub) SetStateValidationParameter(key string, ep []byte) error
- func (stub *MockStub) SplitCompositeKey(compositeKey string) (string, []string, error)
- type PeerChaincodeStream
- type SendPanicFailure
- type StateQueryIterator
- type StateQueryIteratorInterface
Constants ¶
const ( STATE_QUERY_RESULT resultType = iota + 1 HISTORY_QUERY_RESULT )
const ( LogDebug = LoggingLevel(logging.DEBUG) LogInfo = LoggingLevel(logging.INFO) LogNotice = LoggingLevel(logging.NOTICE) LogWarning = LoggingLevel(logging.WARNING) LogError = LoggingLevel(logging.ERROR) LogCritical = LoggingLevel(logging.CRITICAL) )
这些常量包含loggingLevel枚举
const ( //OK常量-状态代码小于400,背书人将背书。 //OK表示初始化或调用成功。 OK = 200 //错误阈值常量-大于或等于400的状态代码将被视为错误并被背书人拒绝。 ERRORTHRESHOLD = 400 //错误常量-默认错误值 ERROR = 500 )
Variables ¶
This section is empty.
Functions ¶
func IsEnabledForLogLevel ¶
IsEnabledForLogLevel检查是否为特定的日志记录级别启用了链码记录器。 主要用于测试
func SetupChaincodeLogging ¶
func SetupChaincodeLogging()
设置链码日志记录设置链码日志记录格式和级别 核心链码记录格式、核心链码记录级别的值 和core\u chaincode\u logging\u垫片集,从core.yaml通过chaincode\u support.go
func StartInProc ¶
func StartInProc(env []string, args []string, cc Chaincode, recv <-chan *pb.ChaincodeMessage, send chan<- *pb.ChaincodeMessage) error
StartInProc是系统链码引导的入口点。它不是一个 链码的API。
Types ¶
type Chaincode ¶
type Chaincode interface { // //已首次建立,允许链码 //初始化其内部数据 Init(stub ChaincodeStubInterface) pb.Response //调用Invoke以更新或查询建议交易中的分类帐。 //更新后的状态变量不会提交到分类帐,直到 //事务已提交。 Invoke(stub ChaincodeStubInterface) pb.Response }
链码接口必须由所有链码实现。织物运行 按指定调用这些函数的事务。
type ChaincodeLogger ¶
type ChaincodeLogger struct {
// contains filtered or unexported fields
}
chaincodelogger是日志对象的抽象,供 链码。这些对象是由newlogger API创建的。
func NewLogger ¶
func NewLogger(name string) *ChaincodeLogger
NewLogger允许Go语言链码创建一个或多个日志记录 其日志的格式将与和临时一致的对象 与填充程序接口创建的日志交错。创建的日志 通过提供的名称,可以将此对象与填充程序日志区分开来, 会出现在日志中。
func (*ChaincodeLogger) Critical ¶
func (c *ChaincodeLogger) Critical(args ...interface{})
关键日志总是出现;不能禁用。
func (*ChaincodeLogger) Criticalf ¶
func (c *ChaincodeLogger) Criticalf(format string, args ...interface{})
关键日志总是出现;不能禁用。
func (*ChaincodeLogger) Debug ¶
func (c *ChaincodeLogger) Debug(args ...interface{})
只有当chaincodelogger loggingLevel设置为时,才会出现调试日志。 LogDebug。
func (*ChaincodeLogger) Debugf ¶
func (c *ChaincodeLogger) Debugf(format string, args ...interface{})
只有当chaincodelogger loggingLevel设置为时,才会出现debugf日志。 LogDebug。
func (*ChaincodeLogger) Error ¶
func (c *ChaincodeLogger) Error(args ...interface{})
如果chaincodelogger loggingLevel设置为,则将显示错误日志。 logerror、logwarning、lognotice、loginfo或logdebug。
func (*ChaincodeLogger) Errorf ¶
func (c *ChaincodeLogger) Errorf(format string, args ...interface{})
如果chaincodelogger loggingLevel设置为 logerror、logwarning、lognotice、loginfo或logdebug。
func (*ChaincodeLogger) Info ¶
func (c *ChaincodeLogger) Info(args ...interface{})
如果chaincodelogger loggingLevel设置为
func (*ChaincodeLogger) Infof ¶
func (c *ChaincodeLogger) Infof(format string, args ...interface{})
如果chaincodelogger loggingLevel设置为 loginfo或logdebug。
func (*ChaincodeLogger) IsEnabledFor ¶
func (c *ChaincodeLogger) IsEnabledFor(level LoggingLevel) bool
如果记录器被启用在 给定的日志记录级别。
func (*ChaincodeLogger) Notice ¶
func (c *ChaincodeLogger) Notice(args ...interface{})
如果chaincodelogger loggingLevel设置为 lognotice、loginfo或logdebug。
func (*ChaincodeLogger) Noticef ¶
func (c *ChaincodeLogger) Noticef(format string, args ...interface{})
如果设置ChaincodeLogger LoggingLevel,将出现通知日志。 lognotice、loginfo或logdebug。
func (*ChaincodeLogger) SetLevel ¶
func (c *ChaincodeLogger) SetLevel(level LoggingLevel)
setlevel设置链码记录器的日志记录级别。注意,目前 当日志记录程序 因此,日志记录程序应该被赋予除“shim”之外的唯一名称。
func (*ChaincodeLogger) Warning ¶
func (c *ChaincodeLogger) Warning(args ...interface{})
如果chaincodelogger loggingLevel设置为,将显示警告日志。 logwarning、lognotice、loginfo或logdebug。
func (*ChaincodeLogger) Warningf ¶
func (c *ChaincodeLogger) Warningf(format string, args ...interface{})
如果chaincodelogger loggingLevel设置为,将显示警告日志。 logwarning、lognotice、loginfo或logdebug。
type ChaincodeStub ¶
type ChaincodeStub struct { TxID string ChannelId string // contains filtered or unexported fields }
chaincodestub是传递给chaincode的对象,用于对 API。
func (*ChaincodeStub) CreateCompositeKey ¶
func (stub *ChaincodeStub) CreateCompositeKey(objectType string, attributes []string) (string, error)
可在interfaces.go中找到CreateCompositeKey文档
func (*ChaincodeStub) DelPrivateData ¶
func (stub *ChaincodeStub) DelPrivateData(collection string, key string) error
delprivatedata文档可以在interfaces.go中找到
func (*ChaincodeStub) DelState ¶
func (stub *ChaincodeStub) DelState(key string) error
Delstate文档可以在interfaces.go中找到
func (*ChaincodeStub) GetArgs ¶
func (stub *ChaincodeStub) GetArgs() [][]byte
func (*ChaincodeStub) GetArgsSlice ¶
func (stub *ChaincodeStub) GetArgsSlice() ([]byte, error)
在interfaces.go中可以找到getargsslice文档
func (*ChaincodeStub) GetBinding ¶
func (stub *ChaincodeStub) GetBinding() ([]byte, error)
在interfaces.go中可以找到getbinding文档
func (*ChaincodeStub) GetChannelID ¶
func (stub *ChaincodeStub) GetChannelID() string
GETCHANNEURID返回建议的信道
func (*ChaincodeStub) GetCreator ¶
func (stub *ChaincodeStub) GetCreator() ([]byte, error)
getcreator文档可以在interfaces.go中找到
func (*ChaincodeStub) GetDecorations ¶
func (stub *ChaincodeStub) GetDecorations() map[string][]byte
func (*ChaincodeStub) GetFunctionAndParameters ¶
func (stub *ChaincodeStub) GetFunctionAndParameters() (function string, params []string)
GetFunctionAndParameters documentation can be found in interfaces.go
func (*ChaincodeStub) GetHistoryForKey ¶
func (stub *ChaincodeStub) GetHistoryForKey(key string) (HistoryQueryIteratorInterface, error)
在interfaces.go中可以找到getHistoryForkey文档
func (*ChaincodeStub) GetPrivateData ¶
func (stub *ChaincodeStub) GetPrivateData(collection string, key string) ([]byte, error)
getprivatedata文档可以在interfaces.go中找到
func (*ChaincodeStub) GetPrivateDataByPartialCompositeKey ¶
func (stub *ChaincodeStub) GetPrivateDataByPartialCompositeKey(collection, objectType string, attributes []string) (StateQueryIteratorInterface, error)
getprivatedatabypartalcompositekey文档可以在interfaces.go中找到。
func (*ChaincodeStub) GetPrivateDataByRange ¶
func (stub *ChaincodeStub) GetPrivateDataByRange(collection, startKey, endKey string) (StateQueryIteratorInterface, error)
在interfaces.go中可以找到getprivatedatabyrange文档
func (*ChaincodeStub) GetPrivateDataQueryResult ¶
func (stub *ChaincodeStub) GetPrivateDataQueryResult(collection, query string) (StateQueryIteratorInterface, error)
在interfaces.go中可以找到getprivatedataqueryresult文档
func (*ChaincodeStub) GetPrivateDataValidationParameter ¶
func (stub *ChaincodeStub) GetPrivateDataValidationParameter(collection, key string) ([]byte, error)
在interfaces.go中可以找到getprivatedatavalidationparameter文档
func (*ChaincodeStub) GetQueryResult ¶
func (stub *ChaincodeStub) GetQueryResult(query string) (StateQueryIteratorInterface, error)
在interfaces.go中可以找到getqueryresult文档
func (*ChaincodeStub) GetQueryResultWithPagination ¶
func (stub *ChaincodeStub) GetQueryResultWithPagination(query string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
func (*ChaincodeStub) GetSignedProposal ¶
func (stub *ChaincodeStub) GetSignedProposal() (*pb.SignedProposal, error)
在interfaces.go中可以找到getSignedProposal文档
func (*ChaincodeStub) GetState ¶
func (stub *ChaincodeStub) GetState(key string) ([]byte, error)
在interfaces.go中可以找到getstate文档
func (*ChaincodeStub) GetStateByPartialCompositeKey ¶
func (stub *ChaincodeStub) GetStateByPartialCompositeKey(objectType string, attributes []string) (StateQueryIteratorInterface, error)
可以通过chaincode调用getstatebypartialcompositekey函数来查询 基于给定的部分复合键的状态。此函数返回 迭代器,可用于对前缀为 匹配给定的部分复合键。此函数只能用于 部分复合键。对于完整的复合键,带有空响应的ITER 将被退回。
func (*ChaincodeStub) GetStateByPartialCompositeKeyWithPagination ¶
func (stub *ChaincodeStub) GetStateByPartialCompositeKeyWithPagination(objectType string, keys []string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
func (*ChaincodeStub) GetStateByRange ¶
func (stub *ChaincodeStub) GetStateByRange(startKey, endKey string) (StateQueryIteratorInterface, error)
在interfaces.go中可以找到GetStateByRange文档
func (*ChaincodeStub) GetStateByRangeWithPagination ¶
func (stub *ChaincodeStub) GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
func (*ChaincodeStub) GetStateValidationParameter ¶
func (stub *ChaincodeStub) GetStateValidationParameter(key string) ([]byte, error)
在interfaces.go中可以找到getStateValidationParameter文档
func (*ChaincodeStub) GetStringArgs ¶
func (stub *ChaincodeStub) GetStringArgs() []string
func (*ChaincodeStub) GetTransient ¶
func (stub *ChaincodeStub) GetTransient() (map[string][]byte, error)
在interfaces.go中可以找到getTransient文档
func (*ChaincodeStub) GetTxTimestamp ¶
func (stub *ChaincodeStub) GetTxTimestamp() (*timestamp.Timestamp, error)
在interfaces.go中可以找到getxtimestamp文档
func (*ChaincodeStub) InvokeChaincode ¶
func (*ChaincodeStub) PutPrivateData ¶
func (stub *ChaincodeStub) PutPrivateData(collection string, key string, value []byte) error
PutPrivateData文档可以在interfaces.go中找到。
func (*ChaincodeStub) PutState ¶
func (stub *ChaincodeStub) PutState(key string, value []byte) error
Putstate文档可以在interfaces.go中找到
func (*ChaincodeStub) SetEvent ¶
func (stub *ChaincodeStub) SetEvent(name string, payload []byte) error
func (*ChaincodeStub) SetPrivateDataValidationParameter ¶
func (stub *ChaincodeStub) SetPrivateDataValidationParameter(collection, key string, ep []byte) error
setprivatedatavalidationparameter文档可以在interfaces.go中找到
func (*ChaincodeStub) SetStateValidationParameter ¶
func (stub *ChaincodeStub) SetStateValidationParameter(key string, ep []byte) error
可在interfaces.go中找到setstatevalidationparameter文档
func (*ChaincodeStub) SplitCompositeKey ¶
func (stub *ChaincodeStub) SplitCompositeKey(compositeKey string) (string, []string, error)
splitcompositekey文档可以在interfaces.go中找到
type ChaincodeStubInterface ¶
type ChaincodeStubInterface interface { //getargs返回用于chaincode init和invoke的参数 //作为字节数组的数组。 GetArgs() [][]byte //GetStringArgs返回用于chaincode init和 //作为字符串数组调用。仅当客户端通过时才使用GetStringArgs //用作字符串的参数。 GetStringArgs() []string //GetFunctionAndParameters返回第一个参数作为函数 //名称和其他参数作为字符串数组中的参数。 //仅当客户端传递预期的参数时才使用GetFunctionAndParameters //用作字符串。 GetFunctionAndParameters() (string, []string) //getargsslice返回用于chaincode init和 //作为字节数组调用 GetArgsSlice() ([]byte, error) //gettxid返回事务建议的tx_id,该id对于 //交易和每个客户。参见protos/common/common.proto中的channelheader //更多详情。 GetTxID() string //getchannelid返回建议发送到的要处理链码的通道。 //这将是事务建议的通道ID(请参见通道标题 //在protos/common/common.proto)中,除非链码正在调用另一个 //另一个频道 GetChannelID() string //invoke chaincode使用 //相同的事务上下文;也就是说,调用chaincode的chaincode不会 // //如果被调用的链码在同一个通道上,则只需添加被调用的 //对调用事务进行chaincode读集和写集。 // //只有响应返回到调用链代码;任何putstate调用 //从被调用的链码对分类帐没有任何影响;也就是说, //不同通道上被调用的链码将没有其读取集 //以及应用于事务的写入集。只有呼叫链的 //读集和写集将应用于事务。有效地 // //在随后的提交阶段参与状态验证检查。 //如果“channel”为空,则假定调用方的频道。 InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response //GetState从 //分类帐。注意,getstate不从writeset中读取数据,因为 // //考虑putstate修改的尚未提交的数据。 //如果键在状态数据库中不存在,则返回(nil,nil)。 GetState(key string) ([]byte, error) //putstate将指定的“key”和“value”放入事务 //写集为数据写入建议。Putstate不影响分类帐 //直到事务被验证并成功提交。 //简单键不能是空字符串,也不能以null开头 //字符(0x00),以避免范围查询与 //复合键,内部以0x00作为前缀作为复合键 //关键命名空间。 PutState(key string, value []byte) error //Delstate记录要在的写入集中删除的指定“key” //交易建议。“key”及其值将从中删除 //交易验证并成功提交时的分类帐。 DelState(key string) error //setstatevalidationparameter设置“key”的密钥级认可策略。 SetStateValidationParameter(key string, ep []byte) error //GetStateValidationParameter检索密钥级认可策略 //用于“钥匙”。请注意,这将引入对“key”的读取依赖项。 //事务的readset。 GetStateValidationParameter(key string) ([]byte, error) //GetStateByRange返回在 //分类帐。迭代器可用于遍历所有键 //在startkey(包含)和endkey(不包含)之间。 //但是,如果startkey和endkey之间的键数大于 //totalquerylimit(在core.yaml中定义),不能使用此迭代器 //to fetch all keys (results will be capped by the totalQueryLimit). //迭代器按词法顺序返回键。注释 //startkey和endkey可以是空字符串,这意味着无边界的范围 //开始或结束时查询。 //完成后,对返回的StateQueryIteratorInterface对象调用Close()。 //在验证阶段重新执行查询以确保结果集 //自事务认可后未更改(检测到幻象读取)。 GetStateByRange(startKey, endKey string) (StateQueryIteratorInterface, error) //GetStateByRangeWithPagination返回在 //分类帐。迭代器可用于在startkey(包括startkey)之间提取键。 //和endkey(独占)。 //当空字符串作为值传递给bookmark参数时,返回的 //迭代器可用于在startkey之间提取第一个“pagesize”键 // //当书签为非空字符串时,迭代器可用于获取 //书签(含)和endkey(不含)之间的第一个“pagesize”键。 // //可以用作书签参数的值。否则,空字符串必须 //作为书签传递。 //迭代器按词法顺序返回键。注释 //startkey和endkey可以是空字符串,这意味着无边界的范围 //开始或结束时查询。 //完成后,对返回的StateQueryIteratorInterface对象调用Close()。 // GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error) //GetStateByPartialCompositeKey根据 //给定的部分复合键。此函数返回迭代器 //它可用于遍历前缀匹配的所有组合键 //给定的部分复合键。但是,如果匹配组合的数目 //键大于totalquerylimit(在core.yaml中定义),此迭代器 //无法用于提取所有匹配的键(结果将受totalquerylimit的限制)。 //“objectType”和属性只应有有效的utf8字符串和 //不应包含U+0000(零字节)和U+10ffff(最大和未分配的代码点)。 //请参见相关函数splitcompositekey和creatcompositekey。 //完成后,对返回的StateQueryIteratorInterface对象调用Close()。 //在验证阶段重新执行查询以确保结果集 //自事务认可后未更改(检测到幻象读取)。 GetStateByPartialCompositeKey(objectType string, keys []string) (StateQueryIteratorInterface, error) //GetStateByPartialCompositeKeyWithPagination根据 //给定的部分复合键。此函数返回迭代器 //它可以用于在组合键上迭代, //前缀与给定的部分复合键匹配。 //当空字符串作为值传递给bookmark参数时,返回的 //迭代器可用于获取前缀为 // //当书签为非空字符串时,迭代器可用于获取 //书签(包含)和最后一个匹配项之间的第一个“pagesize”键 //复合键。 //请注意,查询结果(responseMetadata)的前一页中只存在书签。 //可以用作书签参数的值。否则,空字符串必须 //作为书签传递。 //“objectType”和属性只应有有效的utf8字符串 //不应包含U+0000(零字节)和U+10ffff(最大和未分配 //代码点)。请参见相关函数splitcompositekey和creatcompositekey。 //完成后,对返回的StateQueryIteratorInterface对象调用Close()。 // GetStateByPartialCompositeKeyWithPagination(objectType string, keys []string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error) //CreateCompositeKey将给定的“attributes”组合成一个组合 //关键。对象类型和属性应该只有有效的utf8 //字符串,不应包含u+0000(零字节)和u+10ffff //(最大和未分配的代码点)。 //生成的复合键可以用作putstate()中的键。 CreateCompositeKey(objectType string, attributes []string) (string, error) //splitcompositekey将指定的键拆分为 //组合键已形成。在范围查询期间找到复合键 //或者部分组合键查询因此可以拆分为 //复合零件。 SplitCompositeKey(compositeKey string) (string, []string, error) //GetQueryResult对状态数据库执行“富”查询。它是 //仅支持富查询的状态数据库, //CouCHDB。查询字符串采用本机语法 //基础状态数据库的。返回迭代器 //它可以用于遍历查询结果集中的所有键。 //但是,如果查询结果集中的键数大于 //totalquerylimit(在core.yaml中定义),不能使用此迭代器 //获取查询结果集中的所有键(结果将受 //totalquerylimit)。 //在验证阶段不重新执行查询,幻象读取为 //未检测到。也就是说,其他承诺的交易可能已经增加, //更新或删除了影响结果集的键,但这不会 //在验证/提交时检测。易受此影响的应用程序 //因此,不应将GetQueryResult用作更新的事务的一部分 //并且应该限制使用只读链码操作。 GetQueryResult(query string) (StateQueryIteratorInterface, error) //GetQueryResultWithPagination对状态数据库执行“富”查询。 // //例如,CouCHDB。查询字符串采用本机语法 //基础状态数据库的。返回迭代器 //它可以用来迭代查询结果集中的键。 //当空字符串作为值传递给bookmark参数时,返回的 //迭代器可用于获取查询结果的第一个“pageSize”。 //当书签为非空字符串时,迭代器可用于获取 //书签和查询结果中最后一个键之间的第一个“pagesize”键。 //注意,只有书签出现在查询结果的前一页(responseMetadata) //可以用作书签参数的值。否则,空字符串 //必须作为书签传递。 //此调用仅在只读事务中受支持。 GetQueryResultWithPagination(query string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error) //GetHistoryForkey返回键值的历史记录。 //对于每个历史键更新,历史值和关联的 //返回事务ID和时间戳。时间戳是 //timestamp provided by the client in the proposal header. //GetHistoryForkey需要对等配置 //core.ledger.history.enableHistoryDatabase为true。 //在验证阶段不重新执行查询,幻象读取为 //未检测到。也就是说,其他提交的事务可能已更新 //同时影响结果集的键,而这不会 //在验证/提交时检测到。易受此影响的应用程序 //因此,不应将getHistoryForkey用作 //更新分类帐,并应限制使用只读链码操作。 GetHistoryForKey(key string) (HistoryQueryIteratorInterface, error) //getprivatedata从指定的 //‘收藏’。注意,getprivatedata不会从 //private writeset,尚未提交到“collection”。在 //换句话说,getprivatedata不考虑putprivatedata修改的数据 //还没有承诺。 GetPrivateData(collection, key string) ([]byte, error) //PutPrivateData puts the specified `key` and `value` into the transaction's //私有写集。注意,只有私有写集的哈希进入 //交易建议响应(发送给发出 //transaction) and the actual private writeset gets temporarily stored in a //transient store. PutPrivateData doesn't effect the `collection` until the //事务已验证并成功提交。简单键不能是 //空字符串,不能以空字符(0x00)开头,以便 //避免与复合键的范围查询冲突,复合键在内部 //prefixed with 0x00 as composite key namespace. PutPrivateData(collection string, key string, value []byte) error //DelState records the specified `key` to be deleted in the private writeset of //交易。注意,只有私有写集的哈希进入 //交易建议响应(发送给发出 //而实际的私有写集临时存储在 //暂时存储。“key”及其值将从集合中删除 //当事务被验证并成功提交时。 DelPrivateData(collection, key string) error //setprivatedatavalidationparameter设置密钥级认可策略 //对于“key”指定的私有数据。 SetPrivateDataValidationParameter(collection, key string, ep []byte) error //getprivatedatavalidationparameter检索密钥级别认可 //由'key'指定的私有数据的策略。注意,这介绍了 //对事务的readset中“key”的读取依赖项。 GetPrivateDataValidationParameter(collection, key string) ([]byte, error) //GetPrivateDataByRange返回一组键上的范围迭代器 //提供私人收藏。迭代器可用于遍历所有键 //在startkey(包含)和endkey(不包含)之间。 //迭代器按词法顺序返回键。注释 //startkey和endkey可以是空字符串,这意味着无边界的范围 //开始或结束时查询。 //完成后,对返回的StateQueryIteratorInterface对象调用Close()。 //在验证阶段重新执行查询以确保结果集 //自事务认可后未更改(检测到幻象读取)。 GetPrivateDataByRange(collection, startKey, endKey string) (StateQueryIteratorInterface, error) //getprivatedatabypartialcompositekey查询给定private中的状态 //基于给定的部分组合键的集合。此函数返回 //一种迭代器,可用于对前缀为 //匹配给定的部分复合键。“objectType”和属性是 //预期只有有效的utf8字符串,不应包含 //U+0000(零字节)和U+10ffff(最大和未分配的代码点)。 //请参见相关函数splitcompositekey和creatcompositekey。 //完成后,对返回的StateQueryIteratorInterface对象调用Close()。 //在验证阶段重新执行查询以确保结果集 //自事务认可后未更改(检测到幻象读取)。 GetPrivateDataByPartialCompositeKey(collection, objectType string, keys []string) (StateQueryIteratorInterface, error) //getprivatedataqueryresult对给定的private执行“rich”查询 //收集。它只支持支持富查询的状态数据库, //CouCHDB。查询字符串采用本机语法 //基础状态数据库的。返回迭代器 //它可以用于在查询结果集上迭代(下一步)。 //在验证阶段不重新执行查询,幻象读取为 //未检测到。也就是说,其他承诺的交易可能已经增加, //更新或删除了影响结果集的键,但这不会 //在验证/提交时检测。易受此影响的应用程序 //因此,不应将GetQueryResult用作更新的事务的一部分 //并且应该限制使用只读链码操作。 GetPrivateDataQueryResult(collection, query string) (StateQueryIteratorInterface, error) //getcreator返回“signatureheader.creator”(例如标识) //“signedProposal”的。这是代理(或用户)的标识 //提交交易记录。 GetCreator() ([]byte, error) //getTransient返回“chaincodeProposalPayLoad.Transient”字段。 // //可能用于实现某种形式的应用程序级别 //保密。此字段的内容,如 //“chaincodeProposalPayLoad”应该始终 //从交易中省略,并从分类帐中排除。 GetTransient() (map[string][]byte, error) //GetBinding返回用于强制 // //以上)投标书本身。这有助于避免可能的重播 //攻击。 GetBinding() ([]byte, error) //GetDecorations返回有关建议的其他数据(如果适用) // //peer, which append or mutate the chaincode input passed to the chaincode. GetDecorations() map[string][]byte //GetSignedProposal返回SignedProposal对象,该对象包含 // GetSignedProposal() (*pb.SignedProposal, error) //gettexTimeStamp返回创建事务时的时间戳。这个 //从Transaction ChannelHeader中获取,因此它将指示 //客户的时间戳和在所有背书人中具有相同的值。 GetTxTimestamp() (*timestamp.Timestamp, error) //setEvent允许chaincode在响应中设置一个事件 // //在提交块中的事务中可用,无论 //交易的有效性。 SetEvent(name string, payload []byte) error }
chaincodestubinterface被可部署的chaincode应用程序用于访问和 修改分类帐
type CommonIterator ¶
type CommonIterator struct {
// contains filtered or unexported fields
}
CommonIterator文档可以在interfaces.go中找到
func (*CommonIterator) HasNext ¶
func (iter *CommonIterator) HasNext() bool
HasNext文档可以在interfaces.go中找到
type CommonIteratorInterface ¶
type CommonIteratorInterface interface { //如果范围查询迭代器包含其他键,则hasNext返回true //和价值观。 HasNext() bool //关闭关闭迭代器。完成后应调用此函数 //从迭代器读取以释放资源。 Close() error }
CommonIteratorInterface允许链代码检查是否还有其他结果 从迭代器中提取并在完成时关闭它。
type Handler ¶
type Handler struct { //需要锁定以防止链码尝试 //对对等机的并发请求 sync.Mutex To string ChatStream PeerChaincodeStream // contains filtered or unexported fields }
链代码的填充端的处理程序处理程序实现。
type HistoryQueryIterator ¶
type HistoryQueryIterator struct {
*CommonIterator
}
HistoryQueryIterator文档可以在interfaces.go中找到
func (*HistoryQueryIterator) Next ¶
func (iter *HistoryQueryIterator) Next() (*queryresult.KeyModification, error)
type HistoryQueryIteratorInterface ¶
type HistoryQueryIteratorInterface interface { //继承hasNext()并关闭() CommonIteratorInterface //Next返回历史查询迭代器中的下一个键和值。 Next() (*queryresult.KeyModification, error) }
HistoryQueryIteratorInterface允许链代码在一组 历史查询返回的键/值对。
type LoggingLevel ¶
LoggingLevel是控制 链码日志记录。
func LogLevel ¶
func LogLevel(levelString string) (LoggingLevel, error)
loglevel转换从critical、error、 WARNING, NOTICE, INFO or DEBUG into an element of the LoggingLevel 类型。如果出现错误,返回的级别为logerror。
type MockQueryIteratorInterface ¶
type MockQueryIteratorInterface interface { StateQueryIteratorInterface }
MockQueryIteratorInterface允许链代码在一组 范围查询返回的键/值对。 TODO:一旦在mockstub中实现了执行查询和历史查询, 我们需要更新这个接口
type MockStateRangeQueryIterator ¶
type MockStateRangeQueryIterator struct { Closed bool Stub *MockStub StartKey string EndKey string Current *list.Element }
func NewMockStateRangeQueryIterator ¶
func NewMockStateRangeQueryIterator(stub *MockStub, startKey string, endKey string) *MockStateRangeQueryIterator
func (*MockStateRangeQueryIterator) Close ¶
func (iter *MockStateRangeQueryIterator) Close() error
关闭关闭范围查询迭代器。完成后应调用此函数 从迭代器读取以释放资源。
func (*MockStateRangeQueryIterator) HasNext ¶
func (iter *MockStateRangeQueryIterator) HasNext() bool
如果范围查询迭代器包含其他键,则hasNext返回true 和价值观。
func (*MockStateRangeQueryIterator) Next ¶
func (iter *MockStateRangeQueryIterator) Next() (*queryresult.KV, error)
Next返回范围查询迭代器中的下一个键和值。
func (*MockStateRangeQueryIterator) Print ¶
func (iter *MockStateRangeQueryIterator) Print()
type MockStub ¶
type MockStub struct { //一个好名字,可以用来记录 Name string //状态保留名称-值对 State map[string][]byte //键按词汇顺序存储映射值列表 Keys *list.List //可从此mockstub调用的其他mockstub链码的注册列表 Invokables map[string]*MockStub //在被调用/部署时存储事务UUID //TODO如果链码使用递归,这可能需要一个TxID堆栈,或者可能是一个引用计数映射 TxID string TxTimestamp *timestamp.Timestamp //存储建议的频道ID ChannelID string PvtState map[string]map[string][]byte //存储按密钥认可策略,第一个映射索引是集合,第二个映射索引是密钥 EndorsementPolicies map[string]map[string][]byte //存储链码事件的通道 ChaincodeEventsChannel chan *pb.ChaincodeEvent Decorations map[string][]byte // contains filtered or unexported fields }
mockstub是用于单元测试链码的chaincodestub接口的一种实现。 在对init或invoke的单元测试调用中,使用这个函数而不是chaincodestub。
func (*MockStub) CreateCompositeKey ¶
CreateCompositeKey组合属性列表 形成复合键。
func (*MockStub) DelPrivateData ¶
func (*MockStub) GetChannelID ¶
func (*MockStub) GetDecorations ¶
func (*MockStub) GetFunctionAndParameters ¶
func (*MockStub) GetHistoryForKey ¶
func (stub *MockStub) GetHistoryForKey(key string) (HistoryQueryIteratorInterface, error)
可以通过chaincode调用getHistoryForkey函数以返回 关键值跨越时间。GetHistoryForkey用于只读查询。
func (*MockStub) GetPrivateData ¶
func (*MockStub) GetPrivateDataByPartialCompositeKey ¶
func (stub *MockStub) GetPrivateDataByPartialCompositeKey(collection, objectType string, attributes []string) (StateQueryIteratorInterface, error)
func (*MockStub) GetPrivateDataByRange ¶
func (stub *MockStub) GetPrivateDataByRange(collection, startKey, endKey string) (StateQueryIteratorInterface, error)
func (*MockStub) GetPrivateDataQueryResult ¶
func (stub *MockStub) GetPrivateDataQueryResult(collection, query string) (StateQueryIteratorInterface, error)
func (*MockStub) GetPrivateDataValidationParameter ¶
func (*MockStub) GetQueryResult ¶
func (stub *MockStub) GetQueryResult(query string) (StateQueryIteratorInterface, error)
可以通过chaincode调用getqueryresult函数来执行 对状态数据库的富查询。仅受状态数据库实现支持 支持丰富的查询。查询字符串的语法为基础 状态数据库。返回一个迭代器,它可以用来迭代(下一步) 查询结果集
func (*MockStub) GetQueryResultWithPagination ¶
func (stub *MockStub) GetQueryResultWithPagination(query string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
func (*MockStub) GetSignedProposal ¶
func (stub *MockStub) GetSignedProposal() (*pb.SignedProposal, error)
未实施
func (*MockStub) GetStateByPartialCompositeKey ¶
func (stub *MockStub) GetStateByPartialCompositeKey(objectType string, attributes []string) (StateQueryIteratorInterface, error)
可以通过chaincode调用getstatebypartialcompositekey函数来查询 基于给定的部分复合键的状态。此函数返回 迭代器,可用于对前缀为 匹配给定的部分复合键。此函数只能用于 部分复合键。对于完整的复合键,带有空响应的ITER 将被退回。
func (*MockStub) GetStateByPartialCompositeKeyWithPagination ¶
func (stub *MockStub) GetStateByPartialCompositeKeyWithPagination(objectType string, keys []string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
func (*MockStub) GetStateByRange ¶
func (stub *MockStub) GetStateByRange(startKey, endKey string) (StateQueryIteratorInterface, error)
func (*MockStub) GetStateByRangeWithPagination ¶
func (stub *MockStub) GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error)
func (*MockStub) GetStateValidationParameter ¶
func (*MockStub) GetStringArgs ¶
func (*MockStub) GetTxTimestamp ¶
func (*MockStub) InvokeChaincode ¶
func (stub *MockStub) InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response
例如stub1.invokeChaincode(“stub2hash”,funcargs,channel) 在调用此函数之前,请确保创建另一个mockstub stub2,调用stub2.mockinit(uuid、func、args) 并通过调用stub1.mockpeerchaincode(“stub2hash”,stub2)将其注册到stub1。
func (*MockStub) MockInvoke ¶
调用这个链码,也可以启动和结束一个事务。
func (*MockStub) MockInvokeWithSignedProposal ¶
func (stub *MockStub) MockInvokeWithSignedProposal(uuid string, args [][]byte, sp *pb.SignedProposal) pb.Response
调用这个链码,也可以启动和结束一个事务。
func (*MockStub) MockPeerChaincode ¶
Register a peer chaincode with this MockStub
OtherStub是对等机的模拟存根,已初始化
func (*MockStub) MockTransactionEnd ¶
结束模拟事务,清除UUID。
func (*MockStub) MockTransactionStart ¶
用于向链码指示它是事务的一部分。 当链码互相调用时,这一点很重要。 mockstub目前不支持并发事务。
func (*MockStub) PutPrivateData ¶
func (*MockStub) SetPrivateDataValidationParameter ¶
func (*MockStub) SetStateValidationParameter ¶
type PeerChaincodeStream ¶
type PeerChaincodeStream interface { Send(*pb.ChaincodeMessage) error Recv() (*pb.ChaincodeMessage, error) CloseSend() error }
对等端和链码实例之间的流的peer chaincode stream接口。
type SendPanicFailure ¶
type SendPanicFailure string
传感器故障
func (SendPanicFailure) Error ¶
func (e SendPanicFailure) Error() string
type StateQueryIterator ¶
type StateQueryIterator struct {
*CommonIterator
}
StateQueryIterator文档可以在interfaces.go中找到
func (*StateQueryIterator) Next ¶
func (iter *StateQueryIterator) Next() (*queryresult.KV, error)
type StateQueryIteratorInterface ¶
type StateQueryIteratorInterface interface { //继承hasNext()并关闭() CommonIteratorInterface //Next返回范围中的下一个键和值,并执行查询迭代器。 Next() (*queryresult.KV, error) }
StateQueryIteratorInterface允许链代码在一组 范围和执行查询返回的键/值对。