node rpc Start & Ping, add rpc-test (client), add ID marshalers

This commit is contained in:
arnaucube
2019-12-07 20:03:50 +01:00
parent a698128605
commit 0e39e2facb
9 changed files with 192 additions and 3 deletions

View File

@@ -1,12 +1,23 @@
package config
import (
"go-dht/kademlia"
"github.com/spf13/viper"
"github.com/urfave/cli"
)
type Config struct {
ID string
Addr string
Port string
KnownNodesStr []KnownNodeStr `mapstructure:"knownnodes"`
KnownNodes []kademlia.ListedNode `mapstructure:"-"`
}
type KnownNodeStr struct {
ID string
Addr string
Port string
}
@@ -27,5 +38,19 @@ func MustRead(c *cli.Context) error {
if err := viper.Unmarshal(&C); err != nil {
return err
}
for _, v := range C.KnownNodesStr {
id, err := kademlia.IDFromString(v.ID)
if err != nil {
return err
}
kn := kademlia.ListedNode{
ID: id,
Addr: v.Addr,
Port: v.Port,
}
C.KnownNodes = append(C.KnownNodes, kn)
}
C.KnownNodesStr = []KnownNodeStr{}
return nil
}