Documentation ¶
Overview ¶
Copyright Fuzamei Corp. 2018 All Rights Reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
package types protocol and stream register `
Copyright Fuzamei Corp. 2018 All Rights Reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
Copyright Fuzamei Corp. 2018 All Rights Reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
Copyright Fuzamei Corp. 2018 All Rights Reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
Index ¶
- func AuthenticateMessage(message types.Message, data *types.MessageComm) bool
- func ClearEventHandler()
- func CloseStream(stream core.Stream)
- func NewStream(host core.Host, pid core.PeerID, msgID string) (core.Stream, error)
- func ReadStream(data types.Message, stream core.Stream) error
- func RegisterEventHandler(eventID int64, handler EventHandler)
- func RegisterProtocol(typeName string, proto IProtocol)
- func RegisterStreamHandler(typeName, msgID string, handler StreamHandler)
- func SignProtoMessage(message types.Message, host core.Host) ([]byte, error)
- func WriteStream(data types.Message, stream core.Stream) error
- type BaseProtocol
- func (base *BaseProtocol) GetChainCfg() *types.Chain33Config
- func (base *BaseProtocol) GetConnsManager() *manage.ConnManager
- func (base *BaseProtocol) GetHost() core.Host
- func (base *BaseProtocol) GetP2PEnv() *P2PEnv
- func (base *BaseProtocol) GetPeerInfoManager() *manage.PeerInfoManager
- func (base *BaseProtocol) GetQueueClient() queue.Client
- func (base *BaseProtocol) InitProtocol(data *P2PEnv)
- func (base *BaseProtocol) NewMessageCommon(msgID, pid string, nodePubkey []byte, gossip bool) *types.MessageComm
- func (base *BaseProtocol) SendPeer(req *StreamRequest) error
- func (base *BaseProtocol) SendRecvPeer(req *StreamRequest, resp types.Message) error
- func (base *BaseProtocol) SendToBlockChain(ty int64, data interface{}) (interface{}, error)
- func (base *BaseProtocol) SendToMemPool(ty int64, data interface{}) (interface{}, error)
- type BaseStreamHandler
- func (s *BaseStreamHandler) GetProtocol() IProtocol
- func (s *BaseStreamHandler) Handle(core.Stream)
- func (s *BaseStreamHandler) HandleStream(stream core.Stream)
- func (s *BaseStreamHandler) SetProtocol(protocol IProtocol)
- func (s *BaseStreamHandler) SignProtoMessage(message types.Message, host core.Host) ([]byte, error)
- func (s *BaseStreamHandler) VerifyRequest(message types.Message, messageComm *types.MessageComm) bool
- type EventHandler
- type IProtocol
- type P2PEnv
- type ProtocolManager
- type StreamHandler
- type StreamRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AuthenticateMessage ¶
func AuthenticateMessage(message types.Message, data *types.MessageComm) bool
AuthenticateMessage auth msg
func CloseStream ¶
CloseStream 关闭流, 存在超时阻塞情况, 对于并行情况,可以优先处理读写,最后统一关闭
func ReadStream ¶
ReadStream read data from stream
func RegisterEventHandler ¶
func RegisterEventHandler(eventID int64, handler EventHandler)
RegisterEventHandler 注册消息处理函数
func RegisterProtocol ¶
RegisterProtocol 注册协议类型
func RegisterStreamHandler ¶
func RegisterStreamHandler(typeName, msgID string, handler StreamHandler)
RegisterStreamHandler 注册typeName,msgID,处理函数
func SignProtoMessage ¶
SignProtoMessage sign an outgoing p2p message payload
Types ¶
type BaseProtocol ¶
type BaseProtocol struct {
*P2PEnv
}
BaseProtocol store public data
func (*BaseProtocol) GetChainCfg ¶
func (base *BaseProtocol) GetChainCfg() *types.Chain33Config
GetChainCfg get chain cfg
func (*BaseProtocol) GetConnsManager ¶
func (base *BaseProtocol) GetConnsManager() *manage.ConnManager
GetConnsManager get connection manager
func (*BaseProtocol) GetP2PEnv ¶
func (base *BaseProtocol) GetP2PEnv() *P2PEnv
GetP2PEnv get p2p env
func (*BaseProtocol) GetPeerInfoManager ¶
func (base *BaseProtocol) GetPeerInfoManager() *manage.PeerInfoManager
GetPeerInfoManager get peer info manager
func (*BaseProtocol) GetQueueClient ¶
func (base *BaseProtocol) GetQueueClient() queue.Client
GetQueueClient get chain33 msg queue client
func (*BaseProtocol) InitProtocol ¶
func (base *BaseProtocol) InitProtocol(data *P2PEnv)
InitProtocol 初始化协议
func (*BaseProtocol) NewMessageCommon ¶
func (base *BaseProtocol) NewMessageCommon(msgID, pid string, nodePubkey []byte, gossip bool) *types.MessageComm
NewMessageCommon new msg common struct
func (*BaseProtocol) SendPeer ¶
func (base *BaseProtocol) SendPeer(req *StreamRequest) error
SendPeer send data to peer with peer id
func (*BaseProtocol) SendRecvPeer ¶
func (base *BaseProtocol) SendRecvPeer(req *StreamRequest, resp types.Message) error
SendRecvPeer send request to peer and wait response
func (*BaseProtocol) SendToBlockChain ¶
func (base *BaseProtocol) SendToBlockChain(ty int64, data interface{}) (interface{}, error)
SendToBlockChain send to blockchain for request
func (*BaseProtocol) SendToMemPool ¶
func (base *BaseProtocol) SendToMemPool(ty int64, data interface{}) (interface{}, error)
SendToMemPool send to mempool for request
type BaseStreamHandler ¶
type BaseStreamHandler struct { Protocol IProtocol // contains filtered or unexported fields }
BaseStreamHandler base stream handler
func (*BaseStreamHandler) GetProtocol ¶
func (s *BaseStreamHandler) GetProtocol() IProtocol
GetProtocol get protocol
func (*BaseStreamHandler) Handle ¶
func (s *BaseStreamHandler) Handle(core.Stream)
Handle handle stream
func (*BaseStreamHandler) HandleStream ¶
func (s *BaseStreamHandler) HandleStream(stream core.Stream)
HandleStream stream事件预处理函数
func (*BaseStreamHandler) SetProtocol ¶
func (s *BaseStreamHandler) SetProtocol(protocol IProtocol)
SetProtocol set protocol
func (*BaseStreamHandler) SignProtoMessage ¶
SignProtoMessage sign data
func (*BaseStreamHandler) VerifyRequest ¶
func (s *BaseStreamHandler) VerifyRequest(message types.Message, messageComm *types.MessageComm) bool
VerifyRequest verify data
type EventHandler ¶
EventHandler handle chain33 event
func GetEventHandler ¶
func GetEventHandler(eventID int64) (EventHandler, bool)
GetEventHandler get event handler
type P2PEnv ¶
type P2PEnv struct { ChainCfg *types.Chain33Config QueueClient queue.Client Host core.Host ConnManager *manage.ConnManager PeerInfoManager *manage.PeerInfoManager Discovery *net.Discovery P2PManager *p2p.Manager SubConfig *p2pty.P2PSubConfig }
P2PEnv p2p全局公共变量
type ProtocolManager ¶
type ProtocolManager struct {
// contains filtered or unexported fields
}
ProtocolManager 协议管理
type StreamHandler ¶
type StreamHandler interface { // GetProtocol get protocol GetProtocol() IProtocol // SetProtocol 初始化公共结构, 内部通过protocol获取外部依赖公共类, 如queue.client等 SetProtocol(protocol IProtocol) // VerifyRequest 验证请求数据 VerifyRequest(message types.Message, messageComm *types.MessageComm) bool //SignMessage SignProtoMessage(message types.Message, host core.Host) ([]byte, error) // Handle 处理请求 Handle(stream core.Stream) }
StreamHandler stream handler