Should probably check if `self.node is None` first, in case we manage to heartbeat before the node is looked up (or lookup fails).