mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 09:53:48 +00:00
whisper: fix issues after rebase
This commit is contained in:
parent
2205d77508
commit
10e426d6f2
6 changed files with 19 additions and 15 deletions
|
|
@ -22,6 +22,7 @@ package main
|
|||
import (
|
||||
"bufio"
|
||||
"crypto/ecdsa"
|
||||
crand "crypto/rand"
|
||||
"crypto/sha512"
|
||||
"encoding/binary"
|
||||
"encoding/hex"
|
||||
|
|
@ -87,6 +88,7 @@ var (
|
|||
asymmetricMode = flag.Bool("asym", false, "use asymmetric encryption")
|
||||
generateKey = flag.Bool("generatekey", false, "generate and show the private key")
|
||||
fileExMode = flag.Bool("fileexchange", false, "file exchange mode")
|
||||
fileReader = flag.Bool("filereader", false, "load and decrypt messages saved as files, display as plain text")
|
||||
testMode = flag.Bool("test", false, "use of predefined parameters for diagnostics")
|
||||
echoMode = flag.Bool("echo", false, "echo mode: prints some arguments for diagnostics")
|
||||
|
||||
|
|
@ -106,7 +108,8 @@ var (
|
|||
argTopic = flag.String("topic", "", "topic in hexadecimal format (e.g. 70a4beef)")
|
||||
argSaveDir = flag.String("savedir", "", "directory where incoming messages will be saved as files")
|
||||
|
||||
useLibP2P = flag.Bool("libp2p", false, "Use libp2p as the protocol layer")
|
||||
useLibP2P = flag.Bool("libp2p", false, "Use libp2p as the protocol layer")
|
||||
useDeadlines = flag.Bool("deadlines", false, "When using libp2p, force deadline checking")
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
|
@ -649,7 +652,6 @@ func messageLoop() {
|
|||
printMessageInfo(msg)
|
||||
reportedOnce = true
|
||||
}
|
||||
}
|
||||
|
||||
// All messages are saved upon specifying argSaveDir.
|
||||
// fileExMode only specifies how messages are displayed on the console after they are saved.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
package mailserver
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
|
||||
|
|
@ -110,7 +109,7 @@ func (s *WMailServer) DeliverMail(peer whisper.Peer, request *whisper.Envelope)
|
|||
|
||||
ok, lower, upper, bloom := s.validateRequest([]byte(peer.ID()), request)
|
||||
if ok {
|
||||
s.processRequest(peer, lower, upper, topic)
|
||||
s.processRequest(peer, lower, upper, bloom)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ func newPeer(host *Whisper, remote *p2p.Peer, rw p2p.MsgReadWriter) Peer {
|
|||
powRequirement: 0.0,
|
||||
known: set.New(),
|
||||
quit: make(chan struct{}),
|
||||
bloomFilter: makeFullNodeBloom(),
|
||||
bloomFilter: MakeFullNodeBloom(),
|
||||
fullNode: true,
|
||||
},
|
||||
remote,
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ func newLibP2PPeer(s *LibP2PWhisperServer, w *Whisper, pid peer.ID, rw p2p.MsgRe
|
|||
powRequirement: 0.0,
|
||||
known: set.New(),
|
||||
quit: make(chan struct{}),
|
||||
bloomFilter: makeFullNodeBloom(),
|
||||
bloomFilter: MakeFullNodeBloom(),
|
||||
fullNode: true,
|
||||
},
|
||||
pid,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import (
|
|||
"fmt"
|
||||
"math"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/log"
|
||||
|
|
@ -82,19 +81,19 @@ func (peer *PeerBase) handshakeBase() error {
|
|||
return err
|
||||
}
|
||||
if packet.Code != statusCode {
|
||||
return fmt.Errorf("peer [%s] sent packet %x before status packet", peer.ID(), packet.Code)
|
||||
return fmt.Errorf("sent packet %x before status packet", packet.Code)
|
||||
}
|
||||
s := rlp.NewStream(packet.Payload, uint64(packet.Size))
|
||||
_, err = s.List()
|
||||
if err != nil {
|
||||
return fmt.Errorf("peer [%s] sent bad status message: %v", peer.ID(), err)
|
||||
return fmt.Errorf("sent bad status message: %v", err)
|
||||
}
|
||||
peerVersion, err := s.Uint()
|
||||
if err != nil {
|
||||
return fmt.Errorf("peer [%s] sent bad status message (unable to decode version): %v", peer.ID(), err)
|
||||
return fmt.Errorf("sent bad status message (unable to decode version): %v", err)
|
||||
}
|
||||
if peerVersion != ProtocolVersion {
|
||||
return fmt.Errorf("peer [%s]: protocol version mismatch %d != %d", peer.ID(), peerVersion, ProtocolVersion)
|
||||
return fmt.Errorf(": protocol version mismatch %d != %d", peerVersion, ProtocolVersion)
|
||||
}
|
||||
|
||||
// only version is mandatory, subsequent parameters are optional
|
||||
|
|
@ -102,7 +101,7 @@ func (peer *PeerBase) handshakeBase() error {
|
|||
if err == nil {
|
||||
pow := math.Float64frombits(powRaw)
|
||||
if math.IsInf(pow, 0) || math.IsNaN(pow) || pow < 0.0 {
|
||||
return fmt.Errorf("peer [%s] sent bad status message: invalid pow", peer.ID())
|
||||
return fmt.Errorf("sent bad status message: invalid pow")
|
||||
}
|
||||
peer.powRequirement = pow
|
||||
|
||||
|
|
@ -111,14 +110,14 @@ func (peer *PeerBase) handshakeBase() error {
|
|||
if err == nil {
|
||||
sz := len(bloom)
|
||||
if sz != BloomFilterSize && sz != 0 {
|
||||
return fmt.Errorf("peer [%s] sent bad status message: wrong bloom filter size %d", peer.ID(), sz)
|
||||
return fmt.Errorf("sent bad status message: wrong bloom filter size %d", sz)
|
||||
}
|
||||
peer.setBloomFilter(bloom)
|
||||
}
|
||||
}
|
||||
|
||||
if err := <-errc; err != nil {
|
||||
return fmt.Errorf("peer [%s] failed to send status packet: %v", peer.ID(), err)
|
||||
return fmt.Errorf("failed to send status packet: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,6 +99,10 @@ type Whisper struct {
|
|||
mailServer MailServer // MailServer interface
|
||||
}
|
||||
|
||||
type DevP2PBridge struct {
|
||||
*Whisper
|
||||
}
|
||||
|
||||
// New creates a Whisper client ready to communicate through the Ethereum P2P network.
|
||||
func New(cfg *Config) *Whisper {
|
||||
if cfg == nil {
|
||||
|
|
@ -608,7 +612,7 @@ func (whisper *Whisper) Send(envelope *Envelope) error {
|
|||
|
||||
// Start implements node.Service, starting the background data propagation thread
|
||||
// of the Whisper protocol.
|
||||
func (whisper *Whisper) Start(WhisperServer) error {
|
||||
func (whisper *Whisper) Start(/* WhisperServer*/ *p2p.Server) error {
|
||||
log.Info("started whisper v." + ProtocolVersionStr)
|
||||
go whisper.update()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue