Documentation ¶
Index ¶
- func AliveMessageToString(am *pbgossip.AliveMessage) string
- func ConnEstablishToString(ce *pbgossip.ConnEstablish) string
- func DataDigestToString(dd *pbgossip.DataDigest) string
- func DataMessageToString(ds *pbgossip.DataMessage) string
- func DataRequestToString(dataReq *pbgossip.DataRequest) string
- func DataUpdateToString(du *pbgossip.DataUpdate) string
- func GetPullMsgType(m *pbgossip.GossipMessage) pbgossip.PullMsgType
- func InternalEndpoint(se *pbgossip.SecretEnvelope) string
- func IsChannelRestricted(m *pbgossip.GossipMessage) bool
- func IsOrgRestricted(m *pbgossip.GossipMessage) bool
- func IsPullMsg(m *pbgossip.GossipMessage) bool
- func IsTagLegal(m *pbgossip.GossipMessage) error
- func LeadershipMessageToString(lm *pbgossip.LeadershipMessage) string
- func MemberToString(m *pbgossip.Membership) string
- func MembershipRequestToString(mr *pbgossip.MembershipRequest) string
- func MembershipResponseToString(mr *pbgossip.MembershipResponse) string
- func NewGossipMessageComparator(dataBlockStorageSize int) common.MessageReplacingPolicy
- func PayloadToString(payload *pbgossip.Payload) string
- func RemotePvtDataResponseToString(res *pbgossip.RemotePvtDataResponse) string
- func SignSecret(envelope *pbgossip.Envelope, signer SignerFunc, secret *pbgossip.Secret) error
- func StateInfoPullRequestToString(sipr *pbgossip.StateInfoPullRequest) string
- func StateInfoSnapshotToString(sis *pbgossip.StateInfoSnapshot) string
- func StateInfoToString(si *pbgossip.StateInfo) string
- type AuthInfo
- type ConnectionInfo
- type ReceivedMessage
- type SignedGossipMessage
- type SignerFunc
- type VerifierFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AliveMessageToString ¶
func AliveMessageToString(am *pbgossip.AliveMessage) string
func ConnEstablishToString ¶
func ConnEstablishToString(ce *pbgossip.ConnEstablish) string
func DataDigestToString ¶
func DataDigestToString(dd *pbgossip.DataDigest) string
func DataMessageToString ¶
func DataMessageToString(ds *pbgossip.DataMessage) string
func DataRequestToString ¶
func DataRequestToString(dataReq *pbgossip.DataRequest) string
func DataUpdateToString ¶
func DataUpdateToString(du *pbgossip.DataUpdate) string
func GetPullMsgType ¶
func GetPullMsgType(m *pbgossip.GossipMessage) pbgossip.PullMsgType
GetPullMsgType 属于 pull 机制的 GossipMessage,返回此类消息的 PullMsgType:BLOCK_MSG IDENTITY_MSG UNDEFINED。
func InternalEndpoint ¶
func InternalEndpoint(se *pbgossip.SecretEnvelope) string
InternalEndpoint SecretEnvelope.Payload 存储的是基于 Secret 的 protobuf 编码数据,对其进行反序列化即可获得 Secret。
func IsChannelRestricted ¶
func IsChannelRestricted(m *pbgossip.GossipMessage) bool
IsChannelRestricted 判断给定的消息是否只在其通道 channel 内路由:
- GossipMessage_CHAN_AND_ORG
- GossipMessage_CHAN_ONLY
- GossipMessage_CHAN_OR_ORG
func IsOrgRestricted ¶
func IsOrgRestricted(m *pbgossip.GossipMessage) bool
IsOrgRestricted 判断给定的消息是否只在其组织 org 内被路由:
- GossipMessage_CHAN_AND_ORG
- GossipMessage_ORG_ONLY
func IsPullMsg ¶
func IsPullMsg(m *pbgossip.GossipMessage) bool
IsPullMsg 判断给定的消息是否是以下四种消息的一种:
- GossipHello
- DataRequest
- DataUpdate
- DataDigest
func IsTagLegal ¶
func IsTagLegal(m *pbgossip.GossipMessage) error
func LeadershipMessageToString ¶
func LeadershipMessageToString(lm *pbgossip.LeadershipMessage) string
func MemberToString ¶
func MemberToString(m *pbgossip.Membership) string
func MembershipRequestToString ¶
func MembershipRequestToString(mr *pbgossip.MembershipRequest) string
func MembershipResponseToString ¶
func MembershipResponseToString(mr *pbgossip.MembershipResponse) string
func NewGossipMessageComparator ¶
func NewGossipMessageComparator(dataBlockStorageSize int) common.MessageReplacingPolicy
NewGossipMessageComparator 返回的不是一个结构体,而是一个函数,用于比较两个 gossip 消息。
func PayloadToString ¶
func RemotePvtDataResponseToString ¶
func RemotePvtDataResponseToString(res *pbgossip.RemotePvtDataResponse) string
func SignSecret ¶
SignSecret 对秘密消息 Secret 进行签名,并将签名结果填充到 Envelope 的 SecretEnvelope 里。
func StateInfoPullRequestToString ¶
func StateInfoPullRequestToString(sipr *pbgossip.StateInfoPullRequest) string
func StateInfoSnapshotToString ¶
func StateInfoSnapshotToString(sis *pbgossip.StateInfoSnapshot) string
func StateInfoToString ¶
Types ¶
type ConnectionInfo ¶
type ConnectionInfo struct { PKIid common.PKIid Auth *AuthInfo Identity api.PeerIdentity Endpoint string }
ConnectionInfo 表示发送消息的 peer 节点的信息。
func (*ConnectionInfo) String ¶
func (c *ConnectionInfo) String() string
type ReceivedMessage ¶
type ReceivedMessage interface { // Respond 给发送消息的节点回复消息。 Respond(msg *pbgossip.GossipMessage) GetSignedGossipMessage() *SignedGossipMessage GetEnvelope() *pbgossip.Envelope GetConnectionInfo() *ConnectionInfo // 给发送消息的节点一个响应。 Ack(err error) }
ReceivedMessage 是一种对 GossipMessage 的包装器,该包装器可以让用户向发送消息的节点回复消息, 同时它允许用户获晓发送方节点的信息。
type SignedGossipMessage ¶
type SignedGossipMessage struct { Envelope *pbgossip.Envelope GossipMessage *pbgossip.GossipMessage }
func EnvelopeToSignedGossipMessage ¶
func EnvelopeToSignedGossipMessage(envelope *pbgossip.Envelope) (*SignedGossipMessage, error)
EnvelopeToSignedGossipMessage Envelope.Payload 存储的是基于 GossipMessage 的 protobuf 编码数据,对其进行反序列化即可获得 GossipMessage。
func NoopSign ¶
func NoopSign(gm *pbgossip.GossipMessage) (*SignedGossipMessage, error)
NoopSign 构建 SignedGossipMessage 结构体:
type SignedGossipMessage struct { Envelope *pbgossip.Envelope GossipMessage *pbgossip.GossipMessage }
所构建的结构体中,GossipMessage 就是 NoopSign 函数给定的 GossipMessage 参数,原封不动; 而 Envelope 则是通过实例化得来的,Envelope 结构体中定义了三个字段:Payload、Signature、SecretEnvelope, NoopSign 函数只会计算其中的 Payload 字段的值,即 proto.Marshal(给定的 GossipMessage),对于 Signature 和 SecretEnvelope 两个字段,则直接将其设置为空。
func (*SignedGossipMessage) IsSigned ¶
func (sgm *SignedGossipMessage) IsSigned() bool
IsSigned 返回 SignedGossipMessage 里的 Envelope 是否有签名。
func (*SignedGossipMessage) Sign ¶
func (sgm *SignedGossipMessage) Sign(signer SignerFunc) (*pbgossip.Envelope, error)
Sign:
- payload = proto.Marshal(sgm.GossipMessage)
- signature = signer(payload)
- 重组 Envelope:Envelope{payload, signature}
func (*SignedGossipMessage) String ¶
func (sgm *SignedGossipMessage) String() string
func (*SignedGossipMessage) Verify ¶
func (sgm *SignedGossipMessage) Verify(peerIdentity []byte, verify VerifierFunc) error
type SignerFunc ¶
SignerFunc 给定一个消息 msg,对其进行签名,得到签名。
type VerifierFunc ¶
type VerifierFunc func(peerIdentity api.PeerIdentity, signature []byte, message []byte) error
VerifierFunc 根据给定的 peer 身份验证签名的正确性。