Documentation ¶
Overview ¶
处理程序是源的API 它支持创建、更新、同步和检索源更新及其数据
Index ¶
- Constants
- Variables
- func Hex(bin binarySerializer) string
- func NewError(code int, s string) error
- func NewErrorf(code int, format string, args ...interface{}) error
- type DefaultTimestampProvider
- type Error
- type Feed
- type GenericSigner
- type Handler
- func (h *Handler) GetContent(feed *Feed) (storage.Address, []byte, error)
- func (h *Handler) Lookup(ctx context.Context, query *Query) (*cacheEntry, error)
- func (h *Handler) NewRequest(ctx context.Context, feed *Feed) (request *Request, err error)
- func (h *Handler) SetStore(store *storage.NetStore)
- func (h *Handler) Update(ctx context.Context, r *Request) (updateAddr storage.Address, err error)
- func (h *Handler) Validate(chunk storage.Chunk) bool
- type HandlerParams
- type Header
- type ID
- type Query
- type Request
- func (r *Request) AppendValues(values Values) []byte
- func (r *Request) FromValues(values Values, data []byte) error
- func (r *Request) GetDigest() (result common.Hash, err error)
- func (r *Request) IsUpdate() bool
- func (r *Request) MarshalJSON() (rawData []byte, err error)
- func (r *Request) SetData(data []byte)
- func (r *Request) Sign(signer Signer) error
- func (r *Request) UnmarshalJSON(rawData []byte) error
- func (r *Request) Verify() (err error)
- type Signature
- type Signer
- type TestHandler
- type Timestamp
- type Topic
- type Update
- type Values
Constants ¶
const ( ErrInit = iota ErrNotFound ErrIO ErrInvalidValue ErrDataOverflow ErrNothingToReturn ErrCorruptData ErrInvalidSignature ErrNotSynced ErrPeriodDepth ErrCnt )
const MaxUpdateDataLength = chunk.DefaultSize - signatureLength - idLength - headerLength
maxupdatedatalength指示源更新的最大负载大小
const ProtocolVersion uint8 = 0
ProtocolVersion定义将包含在每个更新消息中的协议的当前版本
const TopicLength = storage.AddressLength
topic length建立主题字符串的最大长度
Variables ¶
var ErrTopicTooLong = fmt.Errorf("Topic is too long. Max length is %d", TopicLength)
创建名称/相关内容太长的主题时返回errtopictolong
var TimestampProvider timestampProvider = NewDefaultTimestampProvider()
TimestampProvider设置源包的时间源
Functions ¶
Types ¶
type DefaultTimestampProvider ¶
type DefaultTimestampProvider struct { }
DefaultTimestampProvider是使用系统时间的TimestampProvider 作为时间来源
func NewDefaultTimestampProvider ¶
func NewDefaultTimestampProvider() *DefaultTimestampProvider
NewDefaultTimestampProvider创建基于系统时钟的时间戳提供程序
func (*DefaultTimestampProvider) Now ¶
func (dtp *DefaultTimestampProvider) Now() Timestamp
现在根据此提供程序返回当前时间
type Feed ¶
源表示特定用户对主题的更新流
func (*Feed) AppendValues ¶
AppendValues将此结构序列化到提供的字符串键值存储区中 用于生成查询字符串
func (*Feed) FromValues ¶
FromValues从字符串键值存储中反序列化此实例 用于分析查询字符串
type GenericSigner ¶
type GenericSigner struct { PrivKey *ecdsa.PrivateKey // contains filtered or unexported fields }
GenericSigner实现了签名者接口 在大多数情况下,可能应该使用普通签名者。
func NewGenericSigner ¶
func NewGenericSigner(privKey *ecdsa.PrivateKey) *GenericSigner
NewGenericSigner生成一个签名者,该签名者将使用提供的私钥对所有内容进行签名。
type Handler ¶
type Handler struct { HashSize int // contains filtered or unexported fields }
func (*Handler) GetContent ¶
getContent检索源的上次同步更新的数据负载
func (*Handler) Lookup ¶
查找检索特定或最新的源更新 根据“query”的配置,查找的工作方式不同 请参阅“query”文档和帮助器函数: `newquerylatest`和'newquery`
func (*Handler) NewRequest ¶
NewRequest准备一个请求结构,其中包含 只需添加所需数据并签名即可。 然后可以对生成的结构进行签名并将其传递给handler.update以进行验证并发送
type HandlerParams ¶
type HandlerParams struct { }
handlerParams将参数传递给处理程序构造函数newhandler 签名者和时间戳提供程序是必需的参数
type ID ¶
ID唯一标识网络上的更新。
func (*ID) AppendValues ¶
AppendValues将此结构序列化到提供的字符串键值存储区中 用于生成查询字符串
func (*ID) FromValues ¶
FromValues从字符串键值存储中反序列化此实例 用于分析查询字符串
type Query ¶
查询用于在执行更新查找时指定约束 TimeLimit表示搜索的上限。设置为0表示“现在”
func NewQueryLatest ¶
newquerylatest生成查找参数,以查找源的最新更新
func (*Query) AppendValues ¶
AppendValues将此结构序列化到提供的字符串键值存储区中 用于生成查询字符串
func (*Query) FromValues ¶
FromValues从字符串键值存储中反序列化此实例 用于分析查询字符串
type Request ¶
type Request struct { Update //将放在块上的实际内容,较少签名 Signature *Signature // contains filtered or unexported fields }
请求表示对订阅源更新消息进行签名或签名的请求
func NewFirstRequest ¶
newfirstrequest返回准备好签名的请求以发布第一个源更新
func (*Request) AppendValues ¶
AppendValues将此结构序列化到提供的字符串键值存储区中 用于生成查询字符串
func (*Request) FromValues ¶
FromValues从字符串键值存储中反序列化此实例 用于分析查询字符串
func (*Request) MarshalJSON ¶
marshaljson接受更新请求并将其作为json结构编码到字节数组中 实现json.Marshaler接口
func (*Request) UnmarshalJSON ¶
unmarshaljson接受存储在字节数组中的json结构并填充请求对象 实现json.unmasheler接口
type TestHandler ¶
type TestHandler struct {
*Handler
}
func NewTestHandler ¶
func NewTestHandler(datadir string, params *HandlerParams) (*TestHandler, error)
NewTestHandler创建用于测试的处理程序对象。
func (*TestHandler) Close ¶
func (t *TestHandler) Close()
type Timestamp ¶
type Timestamp struct {
Time uint64 `json:"time"` //unix epoch时间戳(秒)
}
timestamp将时间点编码为unix epoch
func (*Timestamp) MarshalJSON ¶
marshaljson实现json.marshaller接口
func (*Timestamp) UnmarshalJSON ¶
unmashaljson实现json.unmarshaller接口
type Topic ¶
type Topic [TopicLength]byte
主题表示提要的内容
func NewTopic ¶
new topic从提供的名称和“相关内容”字节数组创建新主题, 将两者合并在一起。 如果RelatedContent或Name长于TopicLength,它们将被截断并返回错误 名称可以是空字符串 相关内容可以为零
func (*Topic) MarshalJSON ¶
marshaljson实现json.marshaller接口
func (*Topic) UnmarshalJSON ¶
unmashaljson实现json.unmarshaller接口
type Update ¶
更新将作为源更新的一部分发送的信息封装起来。
func (*Update) AppendValues ¶
AppendValues将此结构序列化到提供的字符串键值存储区中 用于生成查询字符串