types

package
v6.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2020 License: BSD-3-Clause Imports: 19 Imported by: 0

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

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 ClearEventHandler

func ClearEventHandler()

ClearEventHandler clear event handler map

func CloseStream

func CloseStream(stream core.Stream)

CloseStream 关闭流, 存在超时阻塞情况, 对于并行情况,可以优先处理读写,最后统一关闭

func NewStream

func NewStream(host core.Host, pid core.PeerID, msgID string) (core.Stream, error)

NewStream new libp2p stream

func ReadStream

func ReadStream(data types.Message, stream core.Stream) error

ReadStream read data from stream

func RegisterEventHandler

func RegisterEventHandler(eventID int64, handler EventHandler)

RegisterEventHandler 注册消息处理函数

func RegisterProtocol

func RegisterProtocol(typeName string, proto IProtocol)

RegisterProtocol 注册协议类型

func RegisterStreamHandler

func RegisterStreamHandler(typeName, msgID string, handler StreamHandler)

RegisterStreamHandler 注册typeName,msgID,处理函数

func SignProtoMessage

func SignProtoMessage(message types.Message, host core.Host) ([]byte, error)

SignProtoMessage sign an outgoing p2p message payload

func WriteStream

func WriteStream(data types.Message, stream core.Stream) error

WriteStream send data to stream

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) GetHost

func (base *BaseProtocol) GetHost() core.Host

GetHost get local host

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

func (s *BaseStreamHandler) SignProtoMessage(message types.Message, host core.Host) ([]byte, error)

SignProtoMessage sign data

func (*BaseStreamHandler) VerifyRequest

func (s *BaseStreamHandler) VerifyRequest(message types.Message, messageComm *types.MessageComm) bool

VerifyRequest verify data

type EventHandler

type EventHandler func(*queue.Message)

EventHandler handle chain33 event

func GetEventHandler

func GetEventHandler(eventID int64) (EventHandler, bool)

GetEventHandler get event handler

type IProtocol

type IProtocol interface {
	InitProtocol(*P2PEnv)
	GetP2PEnv() *P2PEnv
}

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 协议管理

func (*ProtocolManager) Init

func (p *ProtocolManager) Init(env *P2PEnv)

Init 初始化

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

type StreamRequest

type StreamRequest struct {
	// PeerID peer id
	PeerID core.PeerID
	// MsgID stream msg id
	MsgID string
	// Data request data
	Data types.Message
}

StreamRequest stream request

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL