|
|
@ -127,14 +127,31 @@ func testnetFiles(cmd *cobra.Command, args []string) error { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Gather persistent peer addresses.
|
|
|
|
var ( |
|
|
|
persistentPeers string |
|
|
|
err error |
|
|
|
) |
|
|
|
if populatePersistentPeers { |
|
|
|
err := populatePersistentPeersInConfigAndWriteIt(config) |
|
|
|
persistentPeers, err = persistentPeersString(config) |
|
|
|
if err != nil { |
|
|
|
_ = os.RemoveAll(outputDir) |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Overwrite default config.
|
|
|
|
for i := 0; i < nValidators+nNonValidators; i++ { |
|
|
|
nodeDir := filepath.Join(outputDir, fmt.Sprintf("%s%d", nodeDirPrefix, i)) |
|
|
|
config.SetRoot(nodeDir) |
|
|
|
config.P2P.AddrBookStrict = false |
|
|
|
if populatePersistentPeers { |
|
|
|
config.P2P.PersistentPeers = persistentPeers |
|
|
|
} |
|
|
|
|
|
|
|
cfg.WriteConfigFile(filepath.Join(nodeDir, "config", "config.toml"), config) |
|
|
|
} |
|
|
|
|
|
|
|
fmt.Printf("Successfully initialized %v node directories\n", nValidators+nNonValidators) |
|
|
|
return nil |
|
|
|
} |
|
|
@ -157,28 +174,16 @@ func hostnameOrIP(i int) string { |
|
|
|
return fmt.Sprintf("%s%d", hostnamePrefix, i) |
|
|
|
} |
|
|
|
|
|
|
|
func populatePersistentPeersInConfigAndWriteIt(config *cfg.Config) error { |
|
|
|
func persistentPeersString(config *cfg.Config) (string, error) { |
|
|
|
persistentPeers := make([]string, nValidators+nNonValidators) |
|
|
|
for i := 0; i < nValidators+nNonValidators; i++ { |
|
|
|
nodeDir := filepath.Join(outputDir, fmt.Sprintf("%s%d", nodeDirPrefix, i)) |
|
|
|
config.SetRoot(nodeDir) |
|
|
|
nodeKey, err := p2p.LoadNodeKey(config.NodeKeyFile()) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
return "", err |
|
|
|
} |
|
|
|
persistentPeers[i] = p2p.IDAddressString(nodeKey.ID(), fmt.Sprintf("%s:%d", hostnameOrIP(i), p2pPort)) |
|
|
|
} |
|
|
|
persistentPeersList := strings.Join(persistentPeers, ",") |
|
|
|
|
|
|
|
for i := 0; i < nValidators+nNonValidators; i++ { |
|
|
|
nodeDir := filepath.Join(outputDir, fmt.Sprintf("%s%d", nodeDirPrefix, i)) |
|
|
|
config.SetRoot(nodeDir) |
|
|
|
config.P2P.PersistentPeers = persistentPeersList |
|
|
|
config.P2P.AddrBookStrict = false |
|
|
|
|
|
|
|
// overwrite default config
|
|
|
|
cfg.WriteConfigFile(filepath.Join(nodeDir, "config", "config.toml"), config) |
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
return strings.Join(persistentPeers, ","), nil |
|
|
|
} |