whisperv6

package
v0.0.0-...-f8b7a73 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2019 License: GPL-3.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProtocolVersion    = uint64(6) //协议版本号
	ProtocolVersionStr = "6.0"     //与字符串相同
	ProtocolName       = "shh"     //GETH中协议的昵称

	NumberOfMessageCodes = 128

	SizeMask = byte(3) //用于从标志中提取有效负载大小字段大小的掩码

	TopicLength = 4 //以字节为单位

	BloomFilterSize = 64 //以字节为单位

	EnvelopeHeaderLength = 20

	MaxMessageSize        = uint32(10 * 1024 * 1024) //邮件的最大可接受大小。
	DefaultMaxMessageSize = uint32(1024 * 1024)
	DefaultMinimumPoW     = 0.2

	DefaultTTL           = 50 //秒
	DefaultSyncAllowance = 10 //秒
)

耳语协议参数

Variables

View Source
var (
	ErrSymAsym              = errors.New("specify either a symmetric or an asymmetric key")
	ErrInvalidSymmetricKey  = errors.New("invalid symmetric key")
	ErrInvalidPublicKey     = errors.New("invalid public key")
	ErrInvalidSigningPubKey = errors.New("invalid signing public key")
	ErrTooLowPoW            = errors.New("message rejected, PoW too low")
	ErrNoTopics             = errors.New("missing topic(s)")
)

错误列表

View Source
var DefaultConfig = Config{
	MaxMessageSize:                        DefaultMaxMessageSize,
	MinimumAcceptedPOW:                    DefaultMinimumPoW,
	RestrictConnectionBetweenLightClients: true,
}

defaultconfig表示(shocker!)默认配置。

Functions

func BloomFilterMatch

func BloomFilterMatch(filter, sample []byte) bool

func BytesToUintBigEndian

func BytesToUintBigEndian(b []byte) (res uint64)

bytestouintbigendian将切片转换为64位无符号整数。

func GenerateRandomID

func GenerateRandomID() (id string, err error)

GenerateRandomID生成一个随机字符串,然后返回该字符串用作键ID

func IsPubKeyEqual

func IsPubKeyEqual(a, b *ecdsa.PublicKey) bool

isubkeyEqual检查两个公钥是否相等

func MakeFullNodeBloom

func MakeFullNodeBloom() []byte

func NewSentMessage

func NewSentMessage(params *MessageParams) (*sentMessage, error)

newsentmessage创建并初始化一个未签名、未加密的悄悄消息。

func TopicToBloom

func TopicToBloom(topic TopicType) []byte

TopicToBloom将主题(4字节)转换为Bloom筛选器(64字节)

func ValidatePublicKey

func ValidatePublicKey(k *ecdsa.PublicKey) bool

validatePublickey检查给定公钥的格式。

Types

type Config

type Config struct {
	MaxMessageSize                        uint32  `toml:",omitempty"`
	MinimumAcceptedPOW                    float64 `toml:",omitempty"`
	RestrictConnectionBetweenLightClients bool    `toml:",omitempty"`
}

config表示耳语节点的配置状态。

type Criteria

type Criteria struct {
	SymKeyID     string      `json:"symKeyID"`
	PrivateKeyID string      `json:"privateKeyID"`
	Sig          []byte      `json:"sig"`
	MinPow       float64     `json:"minPow"`
	Topics       []TopicType `json:"topics"`
	AllowP2P     bool        `json:"allowP2P"`
}

条件保存入站消息的各种筛选选项。

func (Criteria) MarshalJSON

func (c Criteria) MarshalJSON() ([]byte, error)

marshaljson将类型条件封送到json字符串

func (*Criteria) UnmarshalJSON

func (c *Criteria) UnmarshalJSON(input []byte) error

将JSON的类型条件取消标记为JSON字符串

type Envelope

type Envelope struct {
	Expiry uint32
	TTL    uint32
	Topic  TopicType
	Data   []byte
	Nonce  uint64
	// contains filtered or unexported fields
}

信封表示一个明文数据包,通过耳语进行传输。 网络。其内容可以加密或不加密和签名。

func NewEnvelope

func NewEnvelope(ttl uint32, topic TopicType, msg *sentMessage) *Envelope

newenvelope用过期和目标数据包装了一条私语消息 包含在信封中,用于网络转发。

func (*Envelope) Bloom

func (e *Envelope) Bloom() []byte

Bloom将4字节主题映射到64字节的Bloom过滤器中,并设置了3位(最多)。

func (*Envelope) DecodeRLP

func (e *Envelope) DecodeRLP(s *rlp.Stream) error

decoderlp从rlp数据流解码信封。

func (*Envelope) Hash

func (e *Envelope) Hash() common.Hash

hash返回信封的sha3散列,如果还没有完成,则计算它。

func (*Envelope) Open

func (e *Envelope) Open(watcher *Filter) (msg *ReceivedMessage)

open试图解密信封,并在成功时填充消息字段。

func (*Envelope) OpenAsymmetric

func (e *Envelope) OpenAsymmetric(key *ecdsa.PrivateKey) (*ReceivedMessage, error)

OpenAsymmetric试图解密一个信封,可能用一个特定的密钥加密。

func (*Envelope) OpenSymmetric

func (e *Envelope) OpenSymmetric(key []byte) (msg *ReceivedMessage, err error)

opensymmetric试图解密一个可能用特定密钥加密的信封。

func (*Envelope) PoW

func (e *Envelope) PoW() float64

POW计算(如有必要)并返回工作证明目标 信封的。

func (*Envelope) Seal

func (e *Envelope) Seal(options *MessageParams) error

Seal通过花费所需的时间作为证据来关闭信封 关于散列数据的工作。

type Filter

type Filter struct {
	Src        *ecdsa.PublicKey  //邮件的发件人
	KeyAsym    *ecdsa.PrivateKey //收件人的私钥
	KeySym     []byte            //与主题关联的键
	Topics     [][]byte          //筛选邮件的主题
	PoW        float64           //耳语规范中所述的工作证明
	AllowP2P   bool              //指示此筛选器是否对直接对等消息感兴趣
	SymKeyHash common.Hash       //优化所需的对称密钥的keccak256hash

	Messages map[common.Hash]*ReceivedMessage
	// contains filtered or unexported fields
}

筛选器表示耳语消息筛选器

func (*Filter) MatchEnvelope

func (f *Filter) MatchEnvelope(envelope *Envelope) bool

匹配信封检查是否值得解密消息。如果 它返回“true”,要求客户端代码尝试解密 然后调用matchmessage。 这里不检查主题,因为这是由主题匹配器完成的。

func (*Filter) MatchMessage

func (f *Filter) MatchMessage(msg *ReceivedMessage) bool

MatchMessage检查筛选器是否匹配已解密的 消息(即已经由 匹配前一个筛选器选中的信封)。 这里不检查主题,因为这是由主题匹配器完成的。

func (*Filter) Retrieve

func (f *Filter) Retrieve() (all []*ReceivedMessage)

检索将返回所有相关联的已接收消息的列表 过滤器。

func (*Filter) Trigger

func (f *Filter) Trigger(msg *ReceivedMessage)

触发器将未知消息添加到筛选器的列表中 收到的消息。

type Filters

type Filters struct {
	// contains filtered or unexported fields
}

筛选器表示筛选器的集合

func NewFilters

func NewFilters(w *Whisper) *Filters

newfilters返回新创建的筛选器集合

func (*Filters) Get

func (fs *Filters) Get(id string) *Filter

get返回集合中具有特定ID的筛选器

func (*Filters) Install

func (fs *Filters) Install(watcher *Filter) (string, error)

安装将向筛选器集合添加新筛选器

func (*Filters) NotifyWatchers

func (fs *Filters) NotifyWatchers(env *Envelope, p2pMessage bool)

通知观察程序通知已声明感兴趣的任何筛选器 信封主题。

func (*Filters) Uninstall

func (fs *Filters) Uninstall(id string) bool

卸载将删除已从中指定ID的筛选器 筛选器集合

type Info

type Info struct {
	Memory         int     `json:"memory"`         //浮动消息的内存大小(字节)。
	Messages       int     `json:"messages"`       //浮动消息数。
	MinPow         float64 `json:"minPow"`         //最小可接受功率
	MaxMessageSize uint32  `json:"maxMessageSize"` //最大接受邮件大小
}

信息包含诊断信息。

type MailServer

type MailServer interface {
	Archive(env *Envelope)
	DeliverMail(whisperPeer *Peer, request *Envelope)
}

mail server表示一个邮件服务器,能够 存档旧邮件以供后续传递 对同龄人。任何实施都必须确保 函数是线程安全的。而且,他们必须尽快返回。 delivermail应使用directmessagescode进行传递, 以绕过到期检查。

type Message

type Message struct {
	Sig       []byte    `json:"sig,omitempty"`
	TTL       uint32    `json:"ttl"`
	Timestamp uint32    `json:"timestamp"`
	Topic     TopicType `json:"topic"`
	Payload   []byte    `json:"payload"`
	Padding   []byte    `json:"padding"`
	PoW       float64   `json:"pow"`
	Hash      []byte    `json:"hash"`
	Dst       []byte    `json:"recipientPublicKey,omitempty"`
}

message是whisper消息的RPC表示。

func ToWhisperMessage

func ToWhisperMessage(message *ReceivedMessage) *Message

TowHisPermessage将内部消息转换为API版本。

func (Message) MarshalJSON

func (m Message) MarshalJSON() ([]byte, error)

marshaljson将类型消息封送到json字符串

func (*Message) UnmarshalJSON

func (m *Message) UnmarshalJSON(input []byte) error

将类型消息解封为JSON字符串

type MessageParams

type MessageParams struct {
	TTL      uint32
	Src      *ecdsa.PrivateKey
	Dst      *ecdsa.PublicKey
	KeySym   []byte
	Topic    TopicType
	WorkTime uint32
	PoW      float64
	Payload  []byte
	Padding  []byte
}

messageparams指定邮件的包装方式 装进信封里。

type NewMessage

type NewMessage struct {
	SymKeyID   string    `json:"symKeyID"`
	PublicKey  []byte    `json:"pubKey"`
	Sig        string    `json:"sig"`
	TTL        uint32    `json:"ttl"`
	Topic      TopicType `json:"topic"`
	Payload    []byte    `json:"payload"`
	Padding    []byte    `json:"padding"`
	PowTime    uint32    `json:"powTime"`
	PowTarget  float64   `json:"powTarget"`
	TargetPeer string    `json:"targetPeer"`
}

new message表示通过rpc发布的新低语消息。

func (NewMessage) MarshalJSON

func (n NewMessage) MarshalJSON() ([]byte, error)

marshaljson将类型newmessage封送到json字符串

func (*NewMessage) UnmarshalJSON

func (n *NewMessage) UnmarshalJSON(input []byte) error

取消标记JSON将类型newmessage取消标记为JSON字符串

type Peer

type Peer struct {
	// contains filtered or unexported fields
}

Peer表示一个耳语协议对等连接。

func (*Peer) ID

func (peer *Peer) ID() []byte

ID返回对等方的ID

type PublicWhisperAPI

type PublicWhisperAPI struct {
	// contains filtered or unexported fields
}

publicWhisperAPI提供可以 公开使用,不涉及安全问题。

func NewPublicWhisperAPI

func NewPublicWhisperAPI(w *Whisper) *PublicWhisperAPI

NewPublicWhisperAPI创建新的RPC Whisper服务。

func (*PublicWhisperAPI) AddPrivateKey

func (api *PublicWhisperAPI) AddPrivateKey(ctx context.Context, privateKey hexutil.Bytes) (string, error)

addprivatekey导入给定的私钥。

func (*PublicWhisperAPI) AddSymKey

func (api *PublicWhisperAPI) AddSymKey(ctx context.Context, key hexutil.Bytes) (string, error)

addsymkey导入对称密钥。 它返回一个可用于引用该键的ID。 可用于加密和解密双方都知道密钥的消息。

func (*PublicWhisperAPI) CancelLightClient

func (api *PublicWhisperAPI) CancelLightClient(ctx context.Context) bool

cancellightclient取消light client模式。

func (*PublicWhisperAPI) DeleteKeyPair

func (api *PublicWhisperAPI) DeleteKeyPair(ctx context.Context, key string) (bool, error)

DeleteKeyPair删除具有给定密钥的密钥(如果存在)。

func (*PublicWhisperAPI) DeleteMessageFilter

func (api *PublicWhisperAPI) DeleteMessageFilter(id string) (bool, error)

DeleteMessageFilter删除一个筛选器。

func (*PublicWhisperAPI) DeleteSymKey

func (api *PublicWhisperAPI) DeleteSymKey(ctx context.Context, id string) bool

DeleteSymkey删除与给定ID关联的对称密钥。

func (*PublicWhisperAPI) GenerateSymKeyFromPassword

func (api *PublicWhisperAPI) GenerateSymKeyFromPassword(ctx context.Context, passwd string) (string, error)

generatesymkeyfrompassword从给定的密码派生一个密钥,存储并返回其ID。

func (*PublicWhisperAPI) GetFilterMessages

func (api *PublicWhisperAPI) GetFilterMessages(id string) ([]*Message, error)

getfiltermessages返回符合筛选条件和 从上一次投票到现在。

func (*PublicWhisperAPI) GetPrivateKey

func (api *PublicWhisperAPI) GetPrivateKey(ctx context.Context, id string) (hexutil.Bytes, error)

getprivatekey返回与给定密钥关联的私钥。关键是十六进制 以ANSI X9.62第4.3.6节规定的格式对键进行编码表示。

func (*PublicWhisperAPI) GetPublicKey

func (api *PublicWhisperAPI) GetPublicKey(ctx context.Context, id string) (hexutil.Bytes, error)

GetPublicKey返回与给定键关联的公钥。关键是十六进制 以ANSI X9.62第4.3.6节规定的格式对键进行编码表示。

func (*PublicWhisperAPI) GetSymKey

func (api *PublicWhisperAPI) GetSymKey(ctx context.Context, id string) (hexutil.Bytes, error)

GetSymkey返回与给定ID关联的对称密钥。

func (*PublicWhisperAPI) HasKeyPair

func (api *PublicWhisperAPI) HasKeyPair(ctx context.Context, id string) bool

hasKeyPair返回节点是否有与给定ID关联的密钥对的指示。

func (*PublicWhisperAPI) HasSymKey

func (api *PublicWhisperAPI) HasSymKey(ctx context.Context, id string) bool

hassymkey返回节点是否具有与给定密钥关联的对称密钥的指示。

func (*PublicWhisperAPI) Info

func (api *PublicWhisperAPI) Info(ctx context.Context) Info

信息返回关于耳语节点的诊断信息。

func (*PublicWhisperAPI) MakeLightClient

func (api *PublicWhisperAPI) MakeLightClient(ctx context.Context) bool

makelightclient将节点转换为light client,但不会转发 任何传入消息,并且只发送源自此节点的消息。

func (*PublicWhisperAPI) MarkTrustedPeer

func (api *PublicWhisperAPI) MarkTrustedPeer(ctx context.Context, url string) (bool, error)

marktrustedpeer标记一个受信任的对等方,这将允许它发送历史(过期)消息。 注意:此功能不添加新节点,节点需要作为对等节点存在。

func (*PublicWhisperAPI) Messages

func (api *PublicWhisperAPI) Messages(ctx context.Context, crit Criteria) (*rpc.Subscription, error)

消息设置了一个订阅,该订阅在消息到达时触发匹配的事件 给定的一组标准。

func (*PublicWhisperAPI) NewKeyPair

func (api *PublicWhisperAPI) NewKeyPair(ctx context.Context) (string, error)

new key pair为消息解密和加密生成一个新的公钥和私钥对。 它返回一个可用于引用密钥对的ID。

func (*PublicWhisperAPI) NewMessageFilter

func (api *PublicWhisperAPI) NewMessageFilter(req Criteria) (string, error)

NewMessageFilter创建一个可用于轮询的新筛选器 (新)满足给定条件的消息。

func (*PublicWhisperAPI) NewSymKey

func (api *PublicWhisperAPI) NewSymKey(ctx context.Context) (string, error)

newsymkey生成随机对称密钥。 它返回一个可用于引用该键的ID。 可用于加密和解密双方都知道密钥的消息。

func (*PublicWhisperAPI) Post

func (api *PublicWhisperAPI) Post(ctx context.Context, req NewMessage) (hexutil.Bytes, error)

在低语网络上发布消息。 如果成功,返回消息的哈希值。

func (*PublicWhisperAPI) SetBloomFilter

func (api *PublicWhisperAPI) SetBloomFilter(ctx context.Context, bloom hexutil.Bytes) (bool, error)

setbloomfilter设置bloom filter的新值,并通知对等方。

func (*PublicWhisperAPI) SetMaxMessageSize

func (api *PublicWhisperAPI) SetMaxMessageSize(ctx context.Context, size uint32) (bool, error)

setmaxmessagesize设置可接受的最大消息大小。 上限由MaxMessageSize定义。

func (*PublicWhisperAPI) SetMinPoW

func (api *PublicWhisperAPI) SetMinPoW(ctx context.Context, pow float64) (bool, error)

setminpow设置最小的pow,并通知对等方。

func (*PublicWhisperAPI) Version

func (api *PublicWhisperAPI) Version(ctx context.Context) string

version返回耳语子协议版本。

type ReceivedMessage

type ReceivedMessage struct {
	Raw []byte

	Payload   []byte
	Padding   []byte
	Signature []byte
	Salt      []byte

	PoW   float64          //耳语规范中所述的工作证明
	Sent  uint32           //消息发布到网络的时间
	TTL   uint32           //消息允许的最长生存时间
	Src   *ecdsa.PublicKey //邮件收件人(用于解码邮件的标识)
	Dst   *ecdsa.PublicKey //邮件收件人(用于解码邮件的标识)
	Topic TopicType

	SymKeyHash   common.Hash //密钥的keccak256哈希
	EnvelopeHash common.Hash //作为唯一ID的消息信封哈希
}

ReceivedMessage表示要通过 并成功解密。

func (*ReceivedMessage) SigToPubKey

func (msg *ReceivedMessage) SigToPubKey() *ecdsa.PublicKey

sigtopubkey返回与消息的 签名。

func (*ReceivedMessage) ValidateAndParse

func (msg *ReceivedMessage) ValidateAndParse() bool

validateAndParse检查消息的有效性,并在成功时提取字段。

type Statistics

type Statistics struct {
	// contains filtered or unexported fields
}

统计数据包含多个与消息相关的计数器用于分析 目的。

type TopicType

type TopicType [TopicLength]byte

TopicType表示密码安全的概率部分 消息的分类,确定为 sha3消息原始作者给出的某些任意数据的散列。

func BytesToTopic

func BytesToTopic(b []byte) (t TopicType)

BytesToTopic从主题的字节数组表示形式转换 进入TopicType类型。

func (TopicType) MarshalText

func (t TopicType) MarshalText() ([]byte, error)

marshalText返回t的十六进制表示形式。

func (*TopicType) String

func (t *TopicType) String() string

字符串将主题字节数组转换为字符串表示形式。

func (*TopicType) UnmarshalText

func (t *TopicType) UnmarshalText(input []byte) error

UnmarshalText解析主题的十六进制表示。

type Whisper

type Whisper struct {
	// contains filtered or unexported fields
}

低语代表通过以太坊的黑暗通信接口 网络,使用自己的P2P通信层。

func New

func New(cfg *Config) *Whisper

New创建了一个准备好通过以太坊P2P网络通信的耳语客户端。

func (*Whisper) APIs

func (whisper *Whisper) APIs() []rpc.API

API返回Whisper实现提供的RPC描述符

func (*Whisper) AddKeyPair

func (whisper *Whisper) AddKeyPair(key *ecdsa.PrivateKey) (string, error)

AddKeyPair导入非对称私钥并返回其标识符。

func (*Whisper) AddSymKeyDirect

func (whisper *Whisper) AddSymKeyDirect(key []byte) (string, error)

addsymkeydirect存储密钥并返回其ID。

func (*Whisper) AddSymKeyFromPassword

func (whisper *Whisper) AddSymKeyFromPassword(password string) (string, error)

addsymkeyfrompassword根据密码生成密钥,存储并返回其ID。

func (*Whisper) AllowP2PMessagesFromPeer

func (whisper *Whisper) AllowP2PMessagesFromPeer(peerID []byte) error

allowp2pmessagesfrompeer标记特定的受信任对等机, 这将允许它发送历史(过期)消息。

func (*Whisper) BloomFilter

func (whisper *Whisper) BloomFilter() []byte

Bloomfilter返回所有感兴趣主题的聚合Bloomfilter。 节点只需发送与公布的Bloom筛选器匹配的消息。 如果消息与bloom不匹配,则相当于垃圾邮件,对等端将 断开连接。

func (*Whisper) BloomFilterTolerance

func (whisper *Whisper) BloomFilterTolerance() []byte

BloomFilterTolerance返回允许有限 新花开后的一段时间被宣传给了同行们。如果已经过了足够的时间 或者没有发生过布卢姆滤波器的变化,返回值将相同。 作为bloomfilter()的返回值。

func (*Whisper) DeleteKeyPair

func (whisper *Whisper) DeleteKeyPair(key string) bool

DeleteKeyPair删除指定的密钥(如果存在)。

func (*Whisper) DeleteSymKey

func (whisper *Whisper) DeleteSymKey(id string) bool

DeleteSymkey删除与名称字符串关联的键(如果存在)。

func (*Whisper) Envelopes

func (whisper *Whisper) Envelopes() []*Envelope

信封检索节点当前汇集的所有消息。

func (*Whisper) GenerateSymKey

func (whisper *Whisper) GenerateSymKey() (string, error)

generatesymkey生成一个随机对称密钥并将其存储在id下, 然后返回。将在将来用于会话密钥交换。

func (*Whisper) GetEnvelope

func (w *Whisper) GetEnvelope(hash common.Hash) *Envelope

GetEnvelope通过其哈希从消息队列中检索信封。 如果找不到信封,则返回零。

func (*Whisper) GetFilter

func (whisper *Whisper) GetFilter(id string) *Filter

GetFilter按ID返回筛选器。

func (*Whisper) GetPrivateKey

func (whisper *Whisper) GetPrivateKey(id string) (*ecdsa.PrivateKey, error)

getprivatekey检索指定标识的私钥。

func (*Whisper) GetSymKey

func (whisper *Whisper) GetSymKey(id string) ([]byte, error)

GetSymkey返回与给定ID关联的对称密钥。

func (*Whisper) HandlePeer

func (whisper *Whisper) HandlePeer(peer *p2p.Peer, rw p2p.MsgReadWriter) error

当低语子协议时,底层p2p层调用handlepeer。 已协商连接。

func (*Whisper) HasKeyPair

func (whisper *Whisper) HasKeyPair(id string) bool

hasKeyPair检查耳语节点是否配置了私钥 指定的公用对。

func (*Whisper) HasSymKey

func (whisper *Whisper) HasSymKey(id string) bool

如果有一个键与给定的ID相关联,HassymKey将返回true。 否则返回false。

func (*Whisper) LightClientMode

func (whisper *Whisper) LightClientMode() bool

lightclientmode表示此节点是light client(不转发任何消息)

func (*Whisper) LightClientModeConnectionRestricted

func (whisper *Whisper) LightClientModeConnectionRestricted() bool

LightClientModeConnectionRestricted表示不允许以轻型客户端模式连接到轻型客户端

func (*Whisper) MaxMessageSize

func (whisper *Whisper) MaxMessageSize() uint32

maxmessagesize返回可接受的最大消息大小。

func (*Whisper) MinPow

func (whisper *Whisper) MinPow() float64

minpow返回此节点所需的pow值。

func (*Whisper) MinPowTolerance

func (whisper *Whisper) MinPowTolerance() float64

minpowTolerance返回在有限的 功率改变后的时间。如果已经过了足够的时间或电源没有变化 一旦发生,返回值将与minpow()的返回值相同。

func (*Whisper) NewKeyPair

func (whisper *Whisper) NewKeyPair() (string, error)

NewKeyPair为客户端生成新的加密标识,并注入 它进入已知的身份信息进行解密。返回新密钥对的ID。

func (*Whisper) Overflow

func (whisper *Whisper) Overflow() bool

溢出返回消息队列是否已满的指示。

func (*Whisper) Protocols

func (whisper *Whisper) Protocols() []p2p.Protocol

协议返回此特定客户端运行的耳语子协议。

func (*Whisper) RegisterServer

func (whisper *Whisper) RegisterServer(server MailServer)

registerserver注册mailserver接口。 邮件服务器将使用p2prequestcode处理所有传入的邮件。

func (*Whisper) RequestHistoricMessages

func (whisper *Whisper) RequestHistoricMessages(peerID []byte, envelope *Envelope) error

RequestHistoricMessages向特定对等端发送带有p2prequestcode的消息, 它可以实现mailserver接口,并且应该处理这个 请求和响应一些对等消息(可能已过期), 不能再转发了。 耳语协议对信封的格式和内容不可知。

func (*Whisper) Send

func (whisper *Whisper) Send(envelope *Envelope) error

send将一条消息插入到whisper发送队列中,并在 网络在未来的周期中。

func (*Whisper) SendP2PDirect

func (whisper *Whisper) SendP2PDirect(peer *Peer, envelope *Envelope) error

sendp2pdirect向特定对等发送对等消息。

func (*Whisper) SendP2PMessage

func (whisper *Whisper) SendP2PMessage(peerID []byte, envelope *Envelope) error

sendp2pmessage向特定对等发送对等消息。

func (*Whisper) SetBloomFilter

func (whisper *Whisper) SetBloomFilter(bloom []byte) error

setbloomfilter设置新的bloom filter

func (*Whisper) SetLightClientMode

func (whisper *Whisper) SetLightClientMode(v bool)

setlightclientmode生成节点light client(不转发任何消息)

func (*Whisper) SetMaxMessageSize

func (whisper *Whisper) SetMaxMessageSize(size uint32) error

setmaxmessagesize设置此节点允许的最大消息大小

func (*Whisper) SetMinimumPoW

func (whisper *Whisper) SetMinimumPoW(val float64) error

setminimumPow设置此节点所需的最小Pow

func (*Whisper) SetMinimumPowTest

func (whisper *Whisper) SetMinimumPowTest(val float64)

setminimumPowTest设置测试环境中的最小Pow

func (*Whisper) Start

func (whisper *Whisper) Start(*p2p.Server) error

start实现node.service,启动后台数据传播线程 关于耳语协议。

func (*Whisper) Stats

func (whisper *Whisper) Stats() Statistics

stats返回低语节点统计信息。

func (*Whisper) Stop

func (whisper *Whisper) Stop() error

stop实现node.service,停止后台数据传播线程 关于耳语协议。

func (*Whisper) Subscribe

func (whisper *Whisper) Subscribe(f *Filter) (string, error)

订阅安装用于筛选、解密的新消息处理程序 以及随后存储的传入消息。

func (*Whisper) Unsubscribe

func (whisper *Whisper) Unsubscribe(id string) error

取消订阅将删除已安装的消息处理程序。

func (*Whisper) Version

func (whisper *Whisper) Version() uint

version返回耳语子协议版本号。

Jump to

Keyboard shortcuts

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