From 6d013bcbe82e46c1845aab4755d897648e508236 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 28 Jan 2025 15:14:05 +0200 Subject: [PATCH 1/3] start with disabled grpc server, enable with sovereign deploy scripts --- cmd/sovereignnode/config/sovereignConfig.toml | 1 + cmd/sovereignnode/go.mod | 10 +++++----- cmd/sovereignnode/go.sum | 20 +++++++++---------- cmd/sovereignnode/sovereignNodeRunner.go | 1 + config/sovereignConfig.go | 1 + .../sovereignBridge/pyScripts/update_toml.py | 16 +++++++++++++++ 6 files changed, 34 insertions(+), 15 deletions(-) diff --git a/cmd/sovereignnode/config/sovereignConfig.toml b/cmd/sovereignnode/config/sovereignConfig.toml index 9b904591c7d..5331b8dc18f 100644 --- a/cmd/sovereignnode/config/sovereignConfig.toml +++ b/cmd/sovereignnode/config/sovereignConfig.toml @@ -39,6 +39,7 @@ ] [OutGoingBridge] + Enabled = false GRPCHost = "localhost" GRPCPort = "8085" # Hasher type for outgoing operations diff --git a/cmd/sovereignnode/go.mod b/cmd/sovereignnode/go.mod index 1dd0e149a3c..3589dd31294 100644 --- a/cmd/sovereignnode/go.mod +++ b/cmd/sovereignnode/go.mod @@ -9,7 +9,7 @@ require ( github.com/multiversx/mx-chain-core-go v1.2.24-0.20241209142414-762196f8dd06 github.com/multiversx/mx-chain-go v1.8.4 github.com/multiversx/mx-chain-logger-go v1.0.15 - github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20240116102202-4cf6fbbd95a3 + github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250128122723-700d9ae97f96 github.com/multiversx/mx-chain-sovereign-notifier-go v0.0.0-20230929085947-df9b345f49ac github.com/multiversx/mx-sdk-abi-go v0.3.0 github.com/stretchr/testify v1.8.4 @@ -171,13 +171,13 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.14.0 // indirect + golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.16.0 // indirect + golang.org/x/net v0.21.0 // indirect golang.org/x/sync v0.4.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/sys v0.19.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.9.1 // indirect gonum.org/v1/gonum v0.11.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect diff --git a/cmd/sovereignnode/go.sum b/cmd/sovereignnode/go.sum index f536bc17e95..d7770d2714b 100644 --- a/cmd/sovereignnode/go.sum +++ b/cmd/sovereignnode/go.sum @@ -395,8 +395,8 @@ github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+w github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= github.com/multiversx/mx-chain-scenario-go v1.4.4 h1:DVE2V+FPeyD/yWoC+KEfPK3jsFzHeruelESfpTlf460= github.com/multiversx/mx-chain-scenario-go v1.4.4/go.mod h1:kI+TWR3oIEgUkbwkHCPo2CQ3VjIge+ezGTibiSGwMxo= -github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20240116102202-4cf6fbbd95a3 h1:8x/cqQ7IQvYEiOy9l2DmUvJArVRz1OfeMyOzJAbyDxs= -github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20240116102202-4cf6fbbd95a3/go.mod h1:/U8wy9SMizv5oXD6suxWRkusSx2SvLRARS4R4HuaXAA= +github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250128122723-700d9ae97f96 h1:JS4/1wMwTVnuAp6J74hLwKiPATRrtjSyyF0xFervRl4= +github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250128122723-700d9ae97f96/go.mod h1:K907bMZUkW/JLKaHkkQbEJMqyMoy1xwBBUW7XHXp4hg= github.com/multiversx/mx-chain-sovereign-notifier-go v0.0.0-20230929085947-df9b345f49ac h1:GtFxKINPiDCsqjKpTWHFN/5qvQGnFClYH4jMHNrJx/M= github.com/multiversx/mx-chain-sovereign-notifier-go v0.0.0-20230929085947-df9b345f49ac/go.mod h1:syNNd30uEkKsz2V5nXCfv3u+KhkpKVw34+2DsfSuFSE= github.com/multiversx/mx-chain-storage-go v1.0.16 h1:l2lJq+EAN3YwLbjJrnoKfFd1/1Xmo9DcAUECND2obLs= @@ -626,8 +626,8 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= @@ -673,8 +673,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= -golang.org/x/net v0.16.0 h1:7eBu7KsSvFDtSXUIDbh3aqlK4DPsZ1rByC8PFfBThos= -golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -730,8 +730,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -746,8 +746,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/cmd/sovereignnode/sovereignNodeRunner.go b/cmd/sovereignnode/sovereignNodeRunner.go index 27706d9faad..e3e0d26f7c9 100644 --- a/cmd/sovereignnode/sovereignNodeRunner.go +++ b/cmd/sovereignnode/sovereignNodeRunner.go @@ -489,6 +489,7 @@ func (snr *sovereignNodeRunner) executeOneComponentCreationCycle( log.Debug("starting node... executeOneComponentCreationCycle") outGoingBridgeOpHandler, err := factoryBridge.CreateClient(&bridgeCfg.ClientConfig{ + Enabled: snr.configs.SovereignExtraConfig.OutGoingBridge.Enabled, GRPCHost: snr.configs.SovereignExtraConfig.OutGoingBridge.GRPCHost, GRPCPort: snr.configs.SovereignExtraConfig.OutGoingBridge.GRPCPort, CertificateCfg: cert.FileCfg{ diff --git a/config/sovereignConfig.go b/config/sovereignConfig.go index 04ad37b9cd0..4c2e2058107 100644 --- a/config/sovereignConfig.go +++ b/config/sovereignConfig.go @@ -25,6 +25,7 @@ type MainChainNotarization struct { // OutGoingBridge holds config for grpc client to send outgoing bridge txs type OutGoingBridge struct { + Enabled bool `toml:"Enabled"` GRPCHost string `toml:"GRPCHost"` GRPCPort string `toml:"GRPCPort"` Hasher string `toml:"Hasher"` diff --git a/scripts/testnet/sovereignBridge/pyScripts/update_toml.py b/scripts/testnet/sovereignBridge/pyScripts/update_toml.py index 0adb1e45f0e..747bdbb8beb 100644 --- a/scripts/testnet/sovereignBridge/pyScripts/update_toml.py +++ b/scripts/testnet/sovereignBridge/pyScripts/update_toml.py @@ -29,6 +29,21 @@ def update_key(lines, key, value) -> []: return updated_lines +def enable_grpc(lines, section): + updated_lines = [] + section_found = False + + for line in lines: + if line.startswith("[" + section + "]"): + section_found = True + if section_found and "Enabled" in line: + line = re.sub(r'(Enabled\s*=\s*)\w+', r'\1true', line) + section_found = False + updated_lines.append(line) + + return updated_lines + + def update_sovereign_config(file_path, main_chain_address, sovereign_chain_address): with open(file_path, 'r') as file: lines = file.readlines() @@ -36,6 +51,7 @@ def update_sovereign_config(file_path, main_chain_address, sovereign_chain_addre updated_lines = update_subscribed_addresses(lines, "OutgoingSubscribedEvents", "deposit", sovereign_chain_address) updated_lines = update_subscribed_addresses(updated_lines, "NotifierConfig", "deposit", main_chain_address) updated_lines = update_subscribed_addresses(updated_lines, "NotifierConfig", "execute", main_chain_address) + updated_lines = enable_grpc(updated_lines, "OutGoingBridge") with open(file_path, 'w') as file: file.writelines(updated_lines) From ef1de5a0747a2fca528af486e285251cf3c861f7 Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Tue, 28 Jan 2025 16:52:47 +0200 Subject: [PATCH 2/3] NotifierConfig disabled by default and enabled with deploy scripts --- cmd/sovereignnode/config/sovereignConfig.toml | 2 +- scripts/testnet/sovereignBridge/pyScripts/update_toml.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cmd/sovereignnode/config/sovereignConfig.toml b/cmd/sovereignnode/config/sovereignConfig.toml index 5331b8dc18f..21d3cfa53ae 100644 --- a/cmd/sovereignnode/config/sovereignConfig.toml +++ b/cmd/sovereignnode/config/sovereignConfig.toml @@ -50,7 +50,7 @@ # Running an additional main chain light node as a notifier requires extra hardware resources. # When disabled, the node will rely on and trust incoming headers from the main chain proposed by other leaders. # Disabling this flag can be useful in scenarios where additional validation infrastructure isn't necessary. - Enabled = true + Enabled = false SubscribedEvents = [ { Identifier = "deposit", Addresses = ["erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th"] }, diff --git a/scripts/testnet/sovereignBridge/pyScripts/update_toml.py b/scripts/testnet/sovereignBridge/pyScripts/update_toml.py index 747bdbb8beb..6810c1644d9 100644 --- a/scripts/testnet/sovereignBridge/pyScripts/update_toml.py +++ b/scripts/testnet/sovereignBridge/pyScripts/update_toml.py @@ -29,7 +29,7 @@ def update_key(lines, key, value) -> []: return updated_lines -def enable_grpc(lines, section): +def enable_key(lines, section): updated_lines = [] section_found = False @@ -51,7 +51,8 @@ def update_sovereign_config(file_path, main_chain_address, sovereign_chain_addre updated_lines = update_subscribed_addresses(lines, "OutgoingSubscribedEvents", "deposit", sovereign_chain_address) updated_lines = update_subscribed_addresses(updated_lines, "NotifierConfig", "deposit", main_chain_address) updated_lines = update_subscribed_addresses(updated_lines, "NotifierConfig", "execute", main_chain_address) - updated_lines = enable_grpc(updated_lines, "OutGoingBridge") + updated_lines = enable_key(updated_lines, "OutGoingBridge") + updated_lines = enable_key(updated_lines, "NotifierConfig") with open(file_path, 'w') as file: file.writelines(updated_lines) From 30cdb9211c5e1fa70209b95c0845d4e259815a1c Mon Sep 17 00:00:00 2001 From: axenteoctavian Date: Thu, 6 Feb 2025 11:48:29 +0200 Subject: [PATCH 3/3] updated go.mod and sovereignConfig.toml comments --- cmd/sovereignnode/config/sovereignConfig.toml | 3 +++ cmd/sovereignnode/go.mod | 2 +- cmd/sovereignnode/go.sum | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cmd/sovereignnode/config/sovereignConfig.toml b/cmd/sovereignnode/config/sovereignConfig.toml index 21d3cfa53ae..85ff0e89f88 100644 --- a/cmd/sovereignnode/config/sovereignConfig.toml +++ b/cmd/sovereignnode/config/sovereignConfig.toml @@ -39,6 +39,9 @@ ] [OutGoingBridge] + # This flag enables or disables the outgoing bridge service connection. + # When enabled, the node will process and forward outgoing transactions to the bridge service. + # Disabling this flag will prevent any outgoing operations from being sent. Enabled = false GRPCHost = "localhost" GRPCPort = "8085" diff --git a/cmd/sovereignnode/go.mod b/cmd/sovereignnode/go.mod index 58feefb6aa7..6f973f6658d 100644 --- a/cmd/sovereignnode/go.mod +++ b/cmd/sovereignnode/go.mod @@ -9,7 +9,7 @@ require ( github.com/multiversx/mx-chain-core-go v1.2.25-0.20250131122047-725dd68e256f github.com/multiversx/mx-chain-go v1.8.4 github.com/multiversx/mx-chain-logger-go v1.0.15 - github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250128122723-700d9ae97f96 + github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250206093614-af9e9aa908ba github.com/multiversx/mx-chain-sovereign-notifier-go v0.0.0-20230929085947-df9b345f49ac github.com/multiversx/mx-sdk-abi-go v0.3.0 github.com/stretchr/testify v1.8.4 diff --git a/cmd/sovereignnode/go.sum b/cmd/sovereignnode/go.sum index a89b8e84feb..504a0873463 100644 --- a/cmd/sovereignnode/go.sum +++ b/cmd/sovereignnode/go.sum @@ -395,8 +395,8 @@ github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+w github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= github.com/multiversx/mx-chain-scenario-go v1.4.4 h1:DVE2V+FPeyD/yWoC+KEfPK3jsFzHeruelESfpTlf460= github.com/multiversx/mx-chain-scenario-go v1.4.4/go.mod h1:kI+TWR3oIEgUkbwkHCPo2CQ3VjIge+ezGTibiSGwMxo= -github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250128122723-700d9ae97f96 h1:JS4/1wMwTVnuAp6J74hLwKiPATRrtjSyyF0xFervRl4= -github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250128122723-700d9ae97f96/go.mod h1:K907bMZUkW/JLKaHkkQbEJMqyMoy1xwBBUW7XHXp4hg= +github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250206093614-af9e9aa908ba h1:69X69U3J8O1D8/8sKDiIq+ooSoLiDFrUxmgUocKvvvk= +github.com/multiversx/mx-chain-sovereign-bridge-go v0.0.0-20250206093614-af9e9aa908ba/go.mod h1:K907bMZUkW/JLKaHkkQbEJMqyMoy1xwBBUW7XHXp4hg= github.com/multiversx/mx-chain-sovereign-notifier-go v0.0.0-20230929085947-df9b345f49ac h1:GtFxKINPiDCsqjKpTWHFN/5qvQGnFClYH4jMHNrJx/M= github.com/multiversx/mx-chain-sovereign-notifier-go v0.0.0-20230929085947-df9b345f49ac/go.mod h1:syNNd30uEkKsz2V5nXCfv3u+KhkpKVw34+2DsfSuFSE= github.com/multiversx/mx-chain-storage-go v1.0.19 h1:2R35MoSXcuNJOFmV5xEhcXqiEGZw6AYGy9R8J9KH66Q=