code: func (sc *syncClient) dial() error {
  	sc.lock.Lock()
  	defer sc.lock.Unlock()
  	if sc.client != nil {
  		sc.refs++
  		return nil
  	}
  
  	// TODO(jsing): Make this default to IPv6, if configured.
  	peer := &net.TCPAddr{
  		IP:   sc.engine.config.Peer.IPv4Addr,
  		Port: sc.engine.config.SyncPort,
  	}
  	self := &net.TCPAddr{
  		IP: sc.engine.config.Node.IPv4Addr,
  	}
  	conn, err := net.DialTCP("tcp", self, peer)
  	if err != nil {
  		return fmt.Errorf("failed to connect: %v", err)
  	}
  	sc.client = rpc.NewClient(conn)
  	sc.refs = 1
  	return nil
  }
docs: // dial establishes a connection to our peer Seesaw node.