diff --git a/blockchain/blockchain.py b/blockchain/blockchain.py index 0d99ca4..f93ce37 100755 --- a/blockchain/blockchain.py +++ b/blockchain/blockchain.py @@ -64,13 +64,24 @@ 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') + if new_url in self.nodes: + return + + 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): """