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.
63 lines
1.2 KiB
63 lines
1.2 KiB
6 years ago
|
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
|
||
|
}
|