async handleHandshake(data) {
    const decoder = this.protoroot.lookupType("HandshakeRequest");
    const { nodeId, ip, lastMessageId } = decoder.toObject(
      decoder.decode(data),
    );

    const added = await this.node.addNode(nodeId, ip, lastMessageId);

    const encoder = this.protoroot.lookupType("HandshakeResponse");
    const response = {
      added,
      lastMessageId: this.node.publisher.lastMessageId,
    };

    const buffer = encoder.encode(encoder.create(response)).finish();

    await this.server.send([topicEnum.HANDSHAKE, buffer]);
  }
Handles a handshake request from a remote node
@return {void}