func authClient(c *conn.Conn, d *connData) (step, error) { var buf [16]byte _, err := io.ReadFull(c, buf[:]) if err != nil { return nil, err } //clientId := binary.BigEndian.Uint64(buf[:8]) id := binary.BigEndian.Uint64(buf[8:]) d.n = getNode(id) if d.n == nil { return nil, nodeNotFoundError(id) } c.SetKey(d.n.key) c.WriteToHash(buf[:]) if err = c.CheckSig(); err != nil { return nil, err } log.Info(fmt.Sprintf("client %s: authenticated node %d", c.RemoteAddr(), id)) return recvLogs, c.ReceiveChallenge() }