Skip to content

Commit 06f89dc

Browse files
committed
hashsync: implement multi-peer split-sync
1 parent f8a021f commit 06f89dc

File tree

9 files changed

+1503
-5
lines changed

9 files changed

+1503
-5
lines changed

hashsync/interface.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,32 @@ package hashsync
33
import (
44
"context"
55

6+
"github.com/spacemeshos/go-spacemesh/common/types"
67
"github.com/spacemeshos/go-spacemesh/p2p"
78
"github.com/spacemeshos/go-spacemesh/p2p/server"
89
)
910

11+
//go:generate mockgen -typed -package=hashsync -destination=./mocks_test.go -source=./interface.go
12+
1013
type requester interface {
1114
Run(context.Context) error
1215
StreamRequest(context.Context, p2p.Peer, []byte, server.StreamRequestCallback, ...string) error
1316
}
17+
18+
type peerSet interface {
19+
addPeer(p p2p.Peer)
20+
removePeer(p p2p.Peer)
21+
numPeers() int
22+
listPeers() []p2p.Peer
23+
havePeer(p p2p.Peer) bool
24+
}
25+
26+
type syncBase interface {
27+
derive(p p2p.Peer) syncer
28+
probe(ctx context.Context, p p2p.Peer) (int, error)
29+
}
30+
31+
type syncer interface {
32+
peer() p2p.Peer
33+
sync(ctx context.Context, x, y *types.Hash32) error
34+
}

0 commit comments

Comments
 (0)