prysm-pulse/sharding/p2p/service.go
Raul Jordan f8d4cdda84 Simplify Goroutines for Better Testing (#216)
sharding: goroutine for better testing (#216)
Former-commit-id: 2c70ee0892b1e36d5b4473f1e5bba5f151ee449c [formerly 3d91ae5c4288ab27fbf09347d5b12164802726bc]
Former-commit-id: 24085acd2b045f549a3356ef0da219cb91149650
2018-06-27 13:19:36 -05:00

51 lines
1.2 KiB
Go

// Package p2p handles peer-to-peer networking for the sharding package.
package p2p
import (
"reflect"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/log"
)
// Sender represents a struct that is able to relay information via shardp2p.
// Server implements this interface.
type Sender interface {
Send(msg interface{}, peer Peer)
}
// Server is a placeholder for a p2p service. To be designed.
type Server struct {
feeds map[reflect.Type]*event.Feed
}
// NewServer creates a new p2p server instance.
func NewServer() (*Server, error) {
return &Server{
feeds: make(map[reflect.Type]*event.Feed),
}, nil
}
// Start the main routine for an p2p server.
func (s *Server) Start() {
log.Info("Starting shardp2p server")
}
// Stop the main p2p loop.
func (s *Server) Stop() error {
log.Info("Stopping shardp2p server")
return nil
}
// Send a message to a specific peer.
func (s *Server) Send(msg interface{}, peer Peer) {
// TODO
// https://github.com/prysmaticlabs/geth-sharding/issues/175
}
// Broadcast a message to the world.
func (s *Server) Broadcast(msg interface{}) {
// TODO
// https://github.com/prysmaticlabs/geth-sharding/issues/176
}