From bf5371ea8b3b689dce2198041cf5ce82e820ac3e Mon Sep 17 00:00:00 2001 From: Gregory Bednov Date: Tue, 12 Aug 2025 13:23:24 +0300 Subject: [PATCH] dynamic P2P external_address added --- blockchain/main.go | 1 + yggdrasil/main.go | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/blockchain/main.go b/blockchain/main.go index 4baa991..e80d8a4 100644 --- a/blockchain/main.go +++ b/blockchain/main.go @@ -24,6 +24,7 @@ func openBadger(path string) (*badger.DB, error) { func newTendermint(app abci.Application, config *cfg.Config, laddrReturner chan string) (*nm.Node, error) { config.P2P.ListenAddress = "tcp://" + <-laddrReturner + config.P2P.ExternalAddress = <-laddrReturner config.P2P.PersistentPeers = <-laddrReturner var pv tmTypes.PrivValidator diff --git a/yggdrasil/main.go b/yggdrasil/main.go index 6d81bbb..4e86711 100644 --- a/yggdrasil/main.go +++ b/yggdrasil/main.go @@ -62,7 +62,7 @@ func Yggdrasil(config *viper.Viper, ch chan string) { parsed, err := ParseEntries(peers) if err != nil { parsed = []ParsedEntry{} - ch <- "" + // ch <- "" log.Warnln("Warning: persistent peers has an error") } @@ -141,11 +141,18 @@ func Yggdrasil(config *viper.Viper, ch chan string) { panic(err) } address, subnet := n.core.Address(), n.core.Subnet() - publicstr := hex.EncodeToString(n.core.PublicKey()) - logger.Printf("Your public key is %s", publicstr) + yggPort := 26656 + if len(remoteTcp) > 0 && remoteTcp[0].Listen.Port != 0 { + yggPort = remoteTcp[0].Listen.Port + } + ipStr := address.String() // ожидается чистый IPv6 без /префикса + yggExternal := fmt.Sprintf("[%s]:%d", ipStr, yggPort) + ch <- yggExternal + + //logger.Printf("Your public key is %s", publicstr) logger.Printf("Your IPv6 address is %s", address.String()) logger.Printf("Your IPv6 subnet is %s", subnet.String()) - logger.Printf("Your Yggstack resolver name is %s%s", publicstr, types.NameMappingSuffix) + //logger.Printf("Your Yggstack resolver name is %s%s", publicstr, types.NameMappingSuffix) } // Setup the admin socket.