whisper: push work in progress for bug report

This commit is contained in:
Péter Szilágyi 2015-04-13 16:19:34 +03:00
parent 89358d25a4
commit cb707ba50c
2 changed files with 19 additions and 6 deletions

View File

@ -25,17 +25,19 @@ const (
signatureLength = 65 signatureLength = 65
) )
const (
DefaultTimeToLive = 50 * time.Second
DefaultProofOfWork = 50 * time.Millisecond
)
type MessageEvent struct { type MessageEvent struct {
To *ecdsa.PrivateKey To *ecdsa.PrivateKey
From *ecdsa.PublicKey From *ecdsa.PublicKey
Message *Message Message *Message
} }
const ( // Whisper represents a dark communication interface through the Ethereum
DefaultTimeToLive = 50 * time.Second // network, using its very own P2P communication layer.
DefaultProofOfWork = 50 * time.Millisecond
)
type Whisper struct { type Whisper struct {
protocol p2p.Protocol protocol p2p.Protocol
filters *filter.Filters filters *filter.Filters
@ -199,7 +201,6 @@ func (self *Whisper) add(envelope *Envelope) error {
self.expiry[envelope.Expiry].Add(hash) self.expiry[envelope.Expiry].Add(hash)
go self.postEvent(envelope) go self.postEvent(envelope)
} }
glog.V(logger.Detail).Infof("added whisper envelope %x\n", envelope) glog.V(logger.Detail).Infof("added whisper envelope %x\n", envelope)
return nil return nil

View File

@ -7,6 +7,7 @@ import (
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/p2p/nat" "github.com/ethereum/go-ethereum/p2p/nat"
) )
@ -17,6 +18,7 @@ type testNode struct {
} }
func startNodes(n int) ([]*testNode, error) { func startNodes(n int) ([]*testNode, error) {
// Start up the cluster of nodes
cluster := make([]*testNode, 0, n) cluster := make([]*testNode, 0, n)
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
shh := New() shh := New()
@ -46,6 +48,11 @@ func startNodes(n int) ([]*testNode, error) {
client: shh, client: shh,
}) })
} }
// Manually wire together the cluster nodes
root := cluster[0].server.Self()
for _, node := range cluster[1:] {
node.server.SuggestPeer(root)
}
return cluster, nil return cluster, nil
} }
@ -56,6 +63,7 @@ func stopNodes(cluster []*testNode) {
} }
func TestSelfMessage(t *testing.T) { func TestSelfMessage(t *testing.T) {
// Start the single node cluster
cluster, err := startNodes(1) cluster, err := startNodes(1)
if err != nil { if err != nil {
t.Fatalf("failed to boot test cluster: %v", err) t.Fatalf("failed to boot test cluster: %v", err)
@ -96,6 +104,10 @@ func TestSelfMessage(t *testing.T) {
} }
func TestDirectMessage(t *testing.T) { func TestDirectMessage(t *testing.T) {
glog.SetV(6)
glog.SetToStderr(true)
// Start the sender-recipient cluster
cluster, err := startNodes(2) cluster, err := startNodes(2)
if err != nil { if err != nil {
t.Fatalf("failed to boot test cluster: %v", err) t.Fatalf("failed to boot test cluster: %v", err)