Skip to main content

Distributed Fairy-Stockfish analysis for lishogi.org

Project description

pypi package

Based on lichess-org/fishnet@824bfe4

Installation

  1. Install the lishoginet client.

    Via pip

    To install or upgrade to the latest version do:

    pip install --upgrade --user lishoginet

    Example usage:

    python -m lishoginet --auto-update

    Other useful commands:

    python -m lishoginet configure  # Rerun the configuration dialog
    python -m lishoignet systemd  # Generate a systemd service file
    python -m lishoginet --help  # List all commands and options

    Via Docker

    There is a Docker container courtesy of @mklemenz. For example you can simply do:

    docker build -t lishoginet:latest .
    docker run -it lishoginet:latest

Lichess’ Video tutorial

Introduction video

FAQ

Which engine does lishoginet use?

lishoginet is using a fork of Stockfish called Fairy Stockfish which supports both shogi and shogi variants by @ianfab.

You can build Fairy-Stockfish yourself (for example with ./build-stockfish.sh) and provide the path using python -m lishoginet --stockfish-command. Otherwise a precompiled binary will be downloaded for you.

What are the requirements?

  • Precompiled Fairy-Stockfish binaries available for Linux, Windows and OS X on Intel and AMD CPUs

  • Python 3.3+ or 2.7

  • Will max out the number of configured CPU cores

  • Uses a default of 256 MiB RAM per engine process, spawns one process for each group of ~3 cores

  • A small amount of disk space

  • Low-bandwidth network communication with Lishogi servers (only outgoing HTTP requests, so probably no firewall configuration required)

Is my CPU fast enough?

Almost all processors will be able to meet the requirement of 4 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).

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 jobs it has already started. On immediate shutdown, the client tries to inform Lishogi that jobs should be reassigned. If even that fails, Lishogi will reassign the jobs after a timeout.

Will lishoginet use my GPU?

No, Fairy-Stockfish is a classical alpha-beta engine.

Is lishoginet secure?

To the best of our knowledge. All network communication uses modern TLS. However you implicitly trust the authors, PyPI infrastructure when running with --auto-update, the CI infrastructure when using precompiled Fairy-Stockfish binaries, and Lishogi to not exploit potential vulnerabilities in Fairy-Stockfish’s USI implementation. You can mitigate all of these by running lishoginet as an unprivileged user.

Is there a leaderboard of contributors?

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

Is there a Docker image?

Yes, see the installation instructions above.

Can I autoscale lishoginet in the cloud?

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

Protocol

https://raw.githubusercontent.com/TheYoBots/lishoginet/master/doc/sequence-diagram.png

See protocol.md for details.

License

lishoginet is licensed under the GPLv3+. See LICENSE.txt for the full license text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lishoginet-2.0.0.tar.gz (37.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lishoginet-2.0.0-py2.py3-none-any.whl (37.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file lishoginet-2.0.0.tar.gz.

File metadata

  • Download URL: lishoginet-2.0.0.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for lishoginet-2.0.0.tar.gz
Algorithm Hash digest
SHA256 a0e271f94e38139dd0562fe4cc948a0f0b942e628bb37caed95bc108f69987b9
MD5 4dccd04272563b4e3c6445b5ce9f61b5
BLAKE2b-256 94dbd3e9423c8df243abeec99aff4d4ff93df4ec189b95d197591787082de3f6

See more details on using hashes here.

File details

Details for the file lishoginet-2.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: lishoginet-2.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 37.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for lishoginet-2.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 08e38834be952a2d2da931014b425963bc042acedca0a99e4aa829f32739618b
MD5 6f728328fa83f6048bbe11efcaaae14d
BLAKE2b-256 0671feef104e1515d62dfbdd073cfb2fcee604f8c74e24c25afd3c63d9cdb69b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page