The core protocol of WoopChain
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
woop/discovery/discovery.go

63 lines
1.2 KiB

package discovery
import (
"fmt"
"github.com/dedis/kyber"
"github.com/harmony-one/harmony/p2p"
)
type ConfigEntry struct {
IP string
Port string
Role string
ShardID string
ValidatorID int // Validator ID in its shard.
leader p2p.Peer
self p2p.Peer
peers []p2p.Peer
pubK kyber.Scalar
priK kyber.Point
}
func (config ConfigEntry) String() string {
return fmt.Sprintf("idc: %v:%v", config.IP, config.Port)
}
func New(pubK kyber.Scalar, priK kyber.Point) *ConfigEntry {
var config ConfigEntry
config.pubK = pubK
config.priK = priK
config.peers = make([]p2p.Peer, 0)
return &config
}
func (config *ConfigEntry) StartClientMode(idcIP, idcPort string) error {
config.IP = "myip"
config.Port = "myport"
fmt.Printf("idc ip/port: %v/%v\n", idcIP, idcPort)
// ...
// TODO: connect to idc, and wait unless acknowledge
return nil
}
func (config *ConfigEntry) GetShardID() string {
return config.ShardID
}
func (config *ConfigEntry) GetPeers() []p2p.Peer {
return config.peers
}
func (config *ConfigEntry) GetLeader() p2p.Peer {
return config.leader
}
func (config *ConfigEntry) GetSelfPeer() p2p.Peer {
return config.self
}