From 54660aa7e0eabe9858f5f69b1a3dbe40f05fbe3e Mon Sep 17 00:00:00 2001 From: Victor Barros Date: Mon, 24 Jun 2024 00:39:30 -0400 Subject: [PATCH 1/3] propagate the new node url to node set --- blockchain/blockchain.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/blockchain/blockchain.py b/blockchain/blockchain.py index 0d99ca4..87224bb 100755 --- a/blockchain/blockchain.py +++ b/blockchain/blockchain.py @@ -64,13 +64,21 @@ def register_node(self, node_url): #Checking node_url has valid format parsed_url = urlparse(node_url) if parsed_url.netloc: - self.nodes.add(parsed_url.netloc) + new_url = parsed_url.netloc elif parsed_url.path: # Accepts an URL without scheme like '192.168.0.5:5000'. - self.nodes.add(parsed_url.path) + new_url = parsed_url.path else: raise ValueError('Invalid URL') + self.nodes.add(new_url) + + for node in self.nodes: + try: + requests.post(f'http://{node}/nodes/register', data={'nodes': new_url}) + except Exception as e: + print(e) + def verify_transaction_signature(self, sender_address, signature, transaction): """ From e7d91b875c8ed1ddeedc7efbd6b90297de8e9662 Mon Sep 17 00:00:00 2001 From: Victor Barros Date: Mon, 24 Jun 2024 00:55:35 -0400 Subject: [PATCH 2/3] improve validation --- blockchain/blockchain.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/blockchain/blockchain.py b/blockchain/blockchain.py index 87224bb..ad42b8b 100755 --- a/blockchain/blockchain.py +++ b/blockchain/blockchain.py @@ -71,6 +71,9 @@ def register_node(self, node_url): else: raise ValueError('Invalid URL') + if new_url in self.nodes: + return + self.nodes.add(new_url) for node in self.nodes: @@ -352,7 +355,7 @@ def get_nodes(): args = parser.parse_args() port = args.port - app.run(host='127.0.0.1', port=port) + app.run(host='0.0.0.0', port=port, debug=True) From 5132287943ee67c8ecf0c6de6006913ee4c4f637 Mon Sep 17 00:00:00 2001 From: Victor Barros Date: Mon, 24 Jun 2024 00:56:24 -0400 Subject: [PATCH 3/3] remove debug --- blockchain/blockchain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blockchain/blockchain.py b/blockchain/blockchain.py index ad42b8b..f93ce37 100755 --- a/blockchain/blockchain.py +++ b/blockchain/blockchain.py @@ -355,7 +355,7 @@ def get_nodes(): args = parser.parse_args() port = args.port - app.run(host='0.0.0.0', port=port, debug=True) + app.run(host='127.0.0.1', port=port)