35 个稳定版本

2.9.3 2024年7月28日
2.8.2 2024年1月7日
2.7.1 2023年7月29日
2.6.7 2022年12月4日
0.0.1 2020年11月21日

#6 in 命令行工具

Download history 8/week @ 2024-07-05 126/week @ 2024-07-26 11/week @ 2024-08-02

每月137次 下载

GPL-3.0+

1.5MB
25K SLoC

C++ 19K SLoC // 0.2% comments Rust 4K SLoC // 0.0% comments Shell 796 SLoC // 0.1% comments JavaScript 703 SLoC // 0.0% comments Python 521 SLoC // 0.1% comments INI 316 SLoC // 0.5% comments

fishnet: lichess.org 的分布式 Stockfish 分析

crates.io Docker Build

安装

  1. 请求您的个人 fishnet 密钥:https://lichess.org/get-fishnet

  2. 安装并运行 fishnet 客户端。

    下载独立二进制文件

    从最新版本中选择适合您平台的二进制文件 此处 并运行。

    # After download:
    mv fishnet-x86_64-unknown-linux-musl fishnet
    chmod +x fishnet
    ./fishnet --auto-update
    

    有用命令

    ./fishnet configure              # Rerun config dialog
    ./fishnet systemd --auto-update  # Print a .service file
    ./fishnet --help                 # List commands and options
    

    其他安装方法: 从源代码DockerKubernetesOpenShift

  3. 选择更新策略。

    自动更新

    按照上面推荐的方式使用 --auto-update 运行。

    订阅发布公告

    使用 GitHub 账户,您可以 监视 此存储库(可以设置为仅监视发布公告)。请参阅此页面的右上角。

视频介绍

观看 @arex 解释 fishnet。

Video introduction

常见问题解答

fishnet 使用什么引擎?

fishnet 使用 Stockfish(因此得名)和 Fairy-Stockfish 用于国际象棋变体。

需要什么要求?

支持 64位 Intel 和 AMD ARMv8 / Silicon
Linux x86_64-unknown-linux-musl aarch64-unknown-linux-musl
Windows x86_64-pc-windows-gnu.exe
macOS x86_64-apple-darwin aarch64-apple-darwin
FreeBSD 从源代码构建
  • 需要 Linux 或 2019 年或之后的操作系统
  • 将使用配置的 CPU 核心数
  • 每个 CPU 核心使用约 64 MiB RAM
  • 少量磁盘空间
  • 与 Lichess 服务器进行低带宽网络通信(仅出站 HTTP 请求,因此可能不需要防火墙配置,IPv4 不需要)

我的 CPU 是否足够快?

几乎所有处理器都能在6秒内满足约2兆节点的需求。在更快一端的用户将自动分配分析任务,这些任务有人等待结果(用户队列,而不是慢速用户的系统队列)。

为什么我的客户端保持空闲状态?

如果鱼网估计另一个客户端能更快地完成下一批任务,或者如果客户端被配置为仅在建立积压时才加入队列,您的客户端可能保持空闲。通过等待,您仍在通过提供冗余来贡献可靠性,并在请求达到峰值时,也贡献了潜在的最大吞吐量。

如果我停止我的客户端会发生什么?

您可以随时开启或关闭您的客户端。默认情况下,客户端会尝试完成它已经开始的任何批次。在立即关闭的情况下,客户端会尝试通知Lichess重新分配批次。如果这还失败了,Lichess将在超时后重新分配批次。

鱼网会使用我的GPU吗?

不,Stockfish是一个经典的alpha-beta引擎。Stockfish NNUE的神经网络评估在CPU上运行效率很高。

为什么我需要一个密钥?

密钥使我们能够将提供的分析追踪回您的Lichess账户。您可以使用单个密钥运行多个实例。

您不需要请求密钥(也不需要我们的许可)来运行私有实例。

鱼网是否安全?

据我们所知。所有引擎输入都经过仔细验证。

请注意,当使用--auto-update时,您隐式地信任作者和GitHub以及Amazon S3基础设施。您可以通过以无特权用户运行fishnet来减轻这一点。

cargo-crev用于审查依赖的可靠性。cargo-auditable用于将依赖元数据嵌入到二进制文件中。

是否有贡献者的排行榜?

对不起,不是公开的。这会激励操纵指标。

我可以在云中自动扩展fishnet吗?

目前还没有现成的解决方案,但提供了一个用于监控作业队列状态的API

协议

Sequence diagram

有关详细信息,请参阅protocol.md。还支持在运行时进行SSLKEYLOGFILE检查。

许可

fishnet根据GPLv3+授权。有关完整授权文本,请参阅LICENSE.txt或使用./fishnet license

依赖项

~22–39MB
~684K SLoC