def handle_addr(self, payload): count, payload = Bitcoin.unserialize_variable_int(payload) for i in range(min(count, 100)): addr, services, when, payload = Bitcoin.unserialize_network_address( payload, with_timestamp=self.peer_version >= 31402) self.bitcoin_network.discovered_peer_address( '{}:{}'.format(*addr), when, services)
def handle_version(self, payload): if len(payload) < 20: raise BadCommand() try: self.peer_version, self.peer_services, when = struct.unpack("<LQQ", payload[:20]) recipient_address, services, payload = Bitcoin.unserialize_network_address(payload[20:], with_timestamp=False) sender_address, services, payload = Bitcoin.unserialize_network_address(payload, with_timestamp=False) nonce = struct.unpack("<Q", payload[:8])[0] self.peer_user_agent, payload = Bitcoin.unserialize_string(payload[8:]) self.peer_last_block = struct.unpack("<L", payload)[0] except: self.state = BitcoinNetworkPeer.STATE_DEAD return #print("({}) PEER: version {} (User-agent {}, last block {})".format(self.peer_address, self.peer_version, self.peer_user_agent, self.peer_last_block)) self.send_verack()
def handle_version(self, payload): if len(payload) < 20: raise BadCommand() try: self.peer_version, self.peer_services, when = struct.unpack( "<LQQ", payload[:20]) recipient_address, services, payload = Bitcoin.unserialize_network_address( payload[20:], with_timestamp=False) sender_address, services, payload = Bitcoin.unserialize_network_address( payload, with_timestamp=False) nonce = struct.unpack("<Q", payload[:8])[0] self.peer_user_agent, payload = Bitcoin.unserialize_string( payload[8:]) self.peer_last_block = struct.unpack("<L", payload)[0] except: self.state = BitcoinNetworkPeer.STATE_DEAD return #print("({}) PEER: version {} (User-agent {}, last block {})".format(self.peer_address, self.peer_version, self.peer_user_agent, self.peer_last_block)) self.send_verack()
def handle_addr(self, payload): count, payload = Bitcoin.unserialize_variable_int(payload) for i in range(min(count, 100)): addr, services, when, payload = Bitcoin.unserialize_network_address(payload, with_timestamp=self.peer_version >= 31402) self.bitcoin_network.discovered_peer_address('{}:{}'.format(*addr), when, services)