====== QLI Farm Connect ======
> https://github.com/qubic-li/client/blob/main/farm-connect.md
QLI Farm Connectは、QLIプラットフォームに接続するための専用プロキシです。
これにより、誰でも[[https://github.com/qubic-li/client|QLI Client]]のための独自のエントリポイント(API)を運用できるようになります。
> **重要**
> Farm Connectはベータ版であり、エラーが発生して稼働する可能性があります。
{{.:pasted:20260328-215834.png?800}}
===== アカウントの準備 =====
Farm Connectを運用するには、QLIプラットフォームの有効なアカウントが必要です。[[https://pool.qubic.li]] でアカウントを登録できます。
Farm Connectは、標準のプールおよびセルフホストのトレーニングと互換性があります。
===== クイックテスト(非推奨) =====
仕組みを手早く確認したい場合は、以下のコマンドを実行してください。
docker run --name qli-farm-connect -e FarmConnect__AccessToken=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJJZCI6ImUxODc5YzQ3LTIwZjUtNDA5Yy05MThkLTRhYzgyNzFiYjYxMSIsIk1pbmluZyI6IiIsIm5iZiI6MTcyNTE5NzA5NSwiZXhwIjoxNzU2NzMzMDk1LCJpYXQiOjE3MjUxOTcwOTUsImlzcyI6Imh0dHBzOi8vcXViaWMubGkvIiwiYXVkIjoiaHR0cHM6Ly9xdWJpYy5saS8ifQ.hBYWpMvvpj8N-t6r6iIdF5y8ayKxtSi0FEb689oOrbPiwBrs76MBvpva7mbOQslzuEFJ8jZSFHlD1QgR6P9YMcTh5fZndI24VBD8lEkNUQPP1wWAOwEUQy-Yk1VTRg7L654ksf0jE4Obj_CDTPyIkK2f5C817--zE7uyngF3-hMRf3Taqus_jR2qqxYSz2D2B2nEYbrRWMDGoMf1tDHq3kFWaFqOr72IjgqkIDV3hs880mhiKcdI0USv54UK-tBon5B_WFJivPr5uo-OUrbILlU24AgTeLYskf1ajIIFnCqJVrAbYxEiaZ0cH1Ey5k6aDfRveb9wqhSQbTMGZuTsOw -e FarmConnect__Name=test-container1 -v /root/data:/app/data qubicli/farm-connect:latest
===== Docker Compose(推奨) =====
==== Docker Composeファイルの作成 ====
例: ''touch compose.yaml''
以下の内容を追加します:
services:
qli-farm-connect:
image: qubicli/farm-connect:latest
restart: always
container_name: qli-farm-connect
ports:
- "80:8080" # 通信のためにポート80を開放
# ローカルのキャッシュデータをコンテナの外部に保存するためのオプション
# volumes:
# - /root/data:/app/data
environment:
FarmConnect__Name: "My Farm XY" # あなたのファームの名前
FarmConnect__AccessToken: "ACCESSTOKEN" # あなたのQLIプラットフォームのアクセストークン
FarmConnect__ApiPassword: "MySuperSecretPassword" # 変更してください! Farm Connect APIにアクセスするための秘密のパスワード
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- ~/.docker/config.json:/config.json:ro
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 300
restart: always
上記の ''compose.yaml'' ファイルは Farm Connect を起動し、さらに Farm Connect を常に最新の状態に保つ[[https://github.com/containrrr/watchtower|Watchtower]]を追加します。''--interval 300'' により、Watchtowerは5分ごとに新しい Farm Connect のバージョンをチェックし、存在する場合は自動的に更新します。
==== Docker Composeの起動 ====
docker compose up -d
==== Docker Composeの停止 ====
docker compose down
==== 出力のモニタリング ====
最新のログメッセージ:
docker logs qli-farm-connect
ログメッセージの追跡(フォロー):
docker logs -f qli-farm-connect
# (CTRL+Cでキャンセル)
===== Docker 環境変数 =====
^ パラメータ ^ デフォルト値 ^ 説明 ^
| †† FarmConnect__AccessToken | (空) | あなたのQLIプラットフォームのアクセストークン |
| † FarmConnect__Name | ''QLI Farm Connect'' | ファームの名前 |
| † FarmConnect__ApiPassword | ランダムな値 | Farm Connect APIへのアクセスに必要なパスワード |
| FarmConnect__DataFolder | ''data'' | ファームの名前(※原文ママ、データ保存先フォルダ名) |
| FarmConnect__TargetSeedBufferSize | ''1'' | 同時にトレーニングされるターゲットSeedの最大数 |
| FarmConnect__PoolAddress | ''wps.qubic.li'' | メインのプールアドレス |
†† 必須\\
† 設定を推奨
===== Farm Connect API =====
QLI Farm Connectは、現在のパフォーマンスデータを照会するためのAPIを提供しています。
APIにアクセスするには、各リクエストのURLパラメータとして定義されたパスワードを提供する必要があります。
==== ステータス・エンドポイント ====
^ HTTPメソッド ^ エンドポイント ^ 説明 ^
| GET | ''/status/RandomMiningSeed?pw='' | 現在アクティブなマイニングシードを返します |
| GET | ''/status/LiveStat?pw='' | 接続されているクライアントのライブ統計を返します |
| GET | ''/status/CalculatedStat?pw='' | アカウントの計算済み/検証済みの統計(発見されたソリューションなど)を返します |
==== コマンド・エンドポイント ====
^ HTTPメソッド ^ エンドポイント ^ 説明 ^
| GET | ''/command/ReloadTargetSeeds?pw='' | Farm Connectに現在のターゲットシードを再取得させます |
==== リクエスト例 ====
スキーム: http://:/status/LiveStat?pw=
例: ''http://10.10.10.10:80/status/LiveStat?pw=suhc.ksdfdsf''
===== Farm Connect を使用すべきケース =====
Farm Connectを使用することで、以下の場合にプラスの効果が得られる可能性があります:
* 同じ場所から**100台以上**のクライアントを接続したい場合
* インターネットの帯域幅が制限されている場合
* 公式のQLIプールアドレスを使用しなくてよい場合
* カスタム統計(独自の統計情報)を作成したい場合
* クライアントの独自のモニタリングを行いたい場合
==== ユースケース: 限られた帯域幅 ====
数百台のクライアントを持つ独自のトレーニングファームを運営しており、インターネット回線が1つしかないと仮定します。これはクライアントのパフォーマンスに悪影響を及ぼす可能性があります。
QLI APIとクライアント間のプロキシとして Farm Connect を使用すると、必要な帯域幅を削減するのに役立ちます。クライアントは公式の QLI API の代わりに Farm Connect に接続することになります。
===== クライアントをFarm Connectに接続する方法 =====
クライアントを Farm Connect に接続するには、''poolAddress'' をご自身のIPアドレスまたはドメインに変更するだけです。
バージョン ''>= 3.0'' のクライアントの設定例
...
// スキーム
"poolAddress": "ws://YOURIPADDRESS:YOURPORT/"
// IPアドレスとデフォルトポート(80)の例
"poolAddress": "ws://10.10.10.10/ws"
// IPアドレスとカスタムポート(3548)の例
"poolAddress": "ws://10.10.10.10:3548/ws"
// ドメインとデフォルトポート(80)の例
"poolAddress": "ws://myFarmConnect.com/ws"
// ドメインとカスタムポート(3548)の例
"poolAddress": "ws://myFarmConnect.com:3548/ws"
// ドメイン+SSLプロキシとデフォルトポート(443)の例
"poolAddress": "wss://myFarmConnect.com/ws"
// ドメイン+SSLプロキシとカスタムポート(3548)の例
"poolAddress": "wss://myFarmConnect.com:3548/ws"
...
===== Related Articles =====
{{topic>Farm-Connect }}
{{tag>Farm-Connect qubic-li }}