GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - lichess-org/fishnet: Distributed Stockfish analysis for lichess.org

BranchesTags
Open more actions menu

Latest commit

 

History

2,045 Commits
2,045 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
Fairy-Stockfish @ a809210
Fairy-Stockfish @ a809210
 
 
Stockfish @ edb0d9d
Stockfish @ edb0d9d
 
 
doc
doc
 
 
scripts
scripts
 
 
src
src
 
 
.dockerignore
.dockerignore
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
COPYING.txt
COPYING.txt
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
Dockerfile
Dockerfile
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 
build.rs
build.rs
 
 
devenv.lock
devenv.lock
 
 
devenv.nix
devenv.nix
 
 
devenv.yaml
devenv.yaml
 
 
favicon.ico
favicon.ico
 
 
rustfmt.toml
rustfmt.toml
 
 

Repository files navigation

fishnet: distributed Stockfish analysis for lichess.org

crates.io Docker

Installation

  1. Request your personal fishnet key: https://lichess.org/get-fishnet

  2. Install and run the fishnet client.

    Download standalone binary

    Select the binary for your platform from the latest release and run it.

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

    Useful commands

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

    Other installation methods: From source, Docker, Kubernetes, OpenShift

  3. Pick an update strategy.

    Automatic updates

    Run with --auto-update as recommended above.

    Subscribe to release announcements

    With a GitHub account, you can watch this repository (can be set to release announcements only). See the top right corner on this page.

Video introduction

Watch @arex explain fishnet.

Video introduction

FAQ

Which engine does fishnet use?

fishnet uses Stockfish (hence the name) and Fairy-Stockfish for chess variants.

What are the requirements?

Available for 64-bit Intel and 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 build from source
  • Needs Linux or an operating system from around 2019 or later
  • Will max out the configured number of CPU cores
  • Uses about 64 MiB RAM per CPU core
  • A small amount of disk space
  • Low-bandwidth network communication with Lichess servers (only outgoing HTTP requests, so probably no firewall configuration required, IPv4 not required)

Is my CPU fast enough?

Almost all processors will be able to meet the requirement of ~2 meganodes in 6 seconds. Clients on the faster end will automatically be assigned analysis jobs that have humans waiting for the result (the user queue, as opposed to the system queue for slower clients).

Why does my client remain idle?

Your client may remain idle if fishnet estimates that another client would be able to complete the next batch more quickly, or if the client has been configured to join the queue only if a backlog is building up. By standing by, you're still contributing to reliability by providing redundancy, and also to the potential maximum throughput in case requests peak.

What happens if I stop my client?

Feel free to turn your client on and off at any time. By default, the client will try to finish any batches it has already started. On immediate shutdown, the client tries to inform Lichess that batches should be reassigned. If even that fails, Lichess will reassign the batches after a timeout.

Will fishnet use my GPU?

No, Stockfish is a classical alpha-beta engine. The neural network evaluation of Stockfish NNUE works efficiently on CPUs.

Why do I need a key?

The key allows us to trace provided analysis back to your Lichess account. You can use a single key to run multiple instances.

You do not need to request a key (nor our permission) to run private instances.

Is fishnet secure?

To the best of our knowledge. All engine input is carefully validated.

Note that you implicitly trust the authors and the GitHub and Amazon S3 infrastructure when running with --auto-update. You can mitigate this by running fishnet as an unprivileged user.

cargo-crev is used to review the trustworthiness of dependencies. cargo-auditable is used to embed dependency meta data into binaries.

Is there a leaderboard of contributors?

No, sorry, not publicly. It would incentivize gaming the metrics.

Can I autoscale fishnet in the cloud?

There is currently no ready-made solution, but an API for monitoring the job queue status is provided.

Protocol

Sequence diagram

See protocol.md for details. Also supports SSLKEYLOGFILE for inspection at runtime.

License

fishnet is licensed under the GPLv3+. See LICENSE.txt or ./fishnet license for the full license text.

About

Distributed Stockfish analysis for lichess.org

lichess.org/get-fishnet

Topics

chessdistributed-computinglichessstockfishvolunteer-computing

Resources

Readme

Code of conduct

Code of conduct

Security policy

Security policy
Activity
Custom properties

Stars

940 stars

Watchers

26 watching

Forks

120 forks
Report repository

Releases

Sponsor this project

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.