def encode_address(self, ip, port): ip = socket.inet_aton(ip) port = struct.pack("!H", port) data = ip + port h = base58.checksum(data) data += h[:4] return base58.b58encode(data)
def decode_address(self, data): data = base58.b58decode(data[1:], None) # remove first character data, h = data[:6], data[6:] if h != base58.checksum(data)[:len(h)]: logging.debug("checksum failure") return None #ip = socket.inet_ntoa(data[:4]) ip = data[:4] (port,) = struct.unpack("!H", data[4:6]) return ip, port
def decode_address(self, data): data = base58.b58decode(data[1:], None) # remove first character data, h = data[:6], data[6:] if h != base58.checksum(data)[:len(h)]: logging.debug("checksum failure") return None #ip = socket.inet_ntoa(data[:4]) ip = data[:4] (port, ) = struct.unpack("!H", data[4:6]) return ip, port
def pop_block(self): logging.debug("pop_block") self.incoming_handler = None data = self.verify_checksum(self.incoming_data) if not data: logging.error("checksum failure") return True h = base58.checksum(data[: 4 + 32 + 32 + 4 + 4 + 4]) block, data = self.context.parser.unpack_block(data) logging.debug("block: %s %s", h.encode("hex_codec"), block) self.incoming_data = data
def pop_block(self): logging.debug("pop_block") self.incoming_handler = None data = self.verify_checksum(self.incoming_data) if not data: logging.error("checksum failure") return True h = base58.checksum(data[:4 + 32 + 32 + 4 + 4 + 4]) block, data = self.context.parser.unpack_block(data) logging.debug("block: %s %s", h.encode("hex_codec"), block) self.incoming_data = data
def checksum(self, data): h = base58.checksum(data) return h[:4]