『何事も起きない:スポーツ市場以外では常に「いいえ」と購入する Polymarket ボット』

2026/04/14 0:31

『何事も起きない:スポーツ市場以外では常に「いいえ」と購入する Polymarket ボット』

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

本書では、Polymarket でスポーツ以外の Yes/No マーケットにおける「NO」エントリを取引することを目的に特化して構築された非同期の Python ボット「Nothing Ever Happens」を معرفیしています。本プロジェクトは娯楽目的でのみ提供されるものであり、保証や免責事項は一切適用されません(as-is)として提供されます。ライブフラグが設定されていないデフォルト状態では

PaperExchangeClient
が採用され、シミュレーションテストが行われます。リアルな取引を実行するには、環境変数を明示的に設定する必要があるためです。具体的には、
BOT_MODE=live
LIVE_TRADING_ENABLED=true
DRY_RUN=false
などを設定することでリアル取引モードを有効化します。また、ライブオーダーの送信を有効にするには、
PRIVATE_KEY
FUNDER_ADDRESS
(署名タイプ 1 および 2 の場合)、データベース URL、および Polygon RPC URL などの特定のエントリが必要となります。

ボットのアーキテクチャはモジュール化されており、ランタイムロジック、取引所クライアント、ダッシュボード UI、回復ツール、そしてコア戦略モジュールである「nothing_happens」で構成されています。ローカルでのセットアップでは、

pip install -r requirements.txt
によって依存関係をインストールし、
config.example.json
config.json
にコピーして非機密設定をその中で構成し、秘密鍵やフラグは
.env
ファイル(パス:
strategies.nothing_happens
)に保存します。ローカル設定は意図的に git 無視されており、ユーザーは環境変数
CONFIG_PATH
を通じてランタイムが参照する異なるパスを指定できるようにしています。

Heroku でのクラウドデプロイメントでは、特定のコマンドヘルパー(

alive.sh
logs.sh
kill.sh
)を使用して、アプリの状態を管理し、ライブ取引の有効化/無効化やロギングを行うことができます。デプロイには、bot モード、プライベートキー、RPC URL、データベースに関する環境変数を
heroku config:set
コマンドを用いて設定する必要があります。-production 環境では、誤って長時間実行タスクを実行してしまうのを防ぐためにワーカーダイノを除外し、ウェブダイノのみを使用するようにスケーリング構成されています。また、
db_stats.py
export_db.py
wallet_history.py
parse_logs.py
などのユーティリティスクリプトは、データベースの点検やログ分析を実行することなく市場の変動を意図的に引き起こさずにこれらの情報を可視化することを可能にするため、透明性を高めています。

本文

Never Happens ポリマーケット ボット

スタンドアロンのスポーツ betting な Yes/No マーケットにおいて「NO(否)」のポジションを、設定された価格上限以下の場合に購入することを目的とした非同期 Python ボットです。このボットは娯楽目的のみのために提供されており、「現状のまま」を提供します。一切の明示的または黙示的な保証、および種類の担保もなされません。使用はご自身の責任でお願いいたします。著者はいかなる請求や損失、損害についても責任を負いかねます。

リポジトリ構成

  • bot/
    : 実行時クライアント、取引所クライアント、ダッシュボード、復旧機能、「never_happens」ストラテジーを含みます。
  • scripts/
    : デプロイされたインスタンスおよびローカルでの調査用の運用支援スクリプトです。
  • tests/
    : ユニットテストと regresstion テストの Coverage を持ったテストスイートです。

実行時 (Runtime) このボットはスタンドアロンのマーケットを走査し、設定された価格上限未満の「NO」エントリーを探します。開けられたポジションを追跡し、ダッシュボードへのアクセスを提供するとともに、注文送信が有効な場合にライブな復旧ステート情報を永続化します。この実行時の戦略名は「never_happens」です。

安全モデル (Safety Model) 実際の注文送信を行うためには、以下の 3 つの環境変数をすべて指定する必要があります:

BOT_MODE=live
LIVE_TRADING_ENABLED=true
、および
DRY_RUN=false
。いずれかが不足している場合、ボットは「PaperExchangeClient(シミュレーション用クライアント)」を使用します。ライブモードを有効にするには、以下の追加要件も満たす必要があります:

  • PRIVATE_KEY
  • サインタイプ 1 および 2 に対しては
    FUNDER_ADDRESS
  • DATABASE_URL
  • ポリゴン RPC URL は、プロキシウォレットの承認および還元処理に必要です。

セットアップ手順

  1. pip install -r requirements.txt
    を実行してください。
  2. cp config.example.json config.json
    で設定ファイルをコピーします。
  3. cp .env.example .env
    で環境変数ファイルをコピーします。
  4. config.json
    は意図的にローカルに保存され、git では無視されます。

設定方法 (Configuration) 実行時は以下から読み込みを行います:

  • 非機密の実行設定は
    config.json
    から。
  • 秘密情報および実行フラグは
    .env
    ファイルから。 実装のストラテジーは
    strategies.nothing_happens
    に配置されています。詳細は
    config.example.json
    .env.example
    を参照してください。必要に応じて
    CONFIG_PATH=/path/to/config.json
    を指定することで、別の設定ファイルへのポインタを切り替えることができます。

ローカルでの実行 ダッシュボードは、ポート番号が

$PORT
または
DASHBOARD_PORT
で設定されている場合、そのポートにバインドされます。

Heroku ワークフロー シェルヘルパー(補助スクリプト)は、明示的なアプリ名引数か、

HEROKU_APP_NAME
を指定することで動作します:

  • export HEROKU_APP_NAME=<your-app>
    (アプリケーション名を設定)
  • ./alive.sh
    (状態を確認)
  • ./logs.sh
    (ログを参照)
  • ./live_enabled.sh
    (ライブ取引を有効化)
  • ./live_disabled.sh
    (ライブ取引を無効化)
  • ./kill.sh
    (プロセスを終了)

汎用デプロイ手順:

  1. heroku config:set BOT_MODE=live DRY_RUN=false LIVE_TRADING_ENABLED=true -a "$HEROKU_APP_NAME"
  2. heroku config:set PRIVATE_KEY=<key> FUNDER_ADDRESS=<addr> POLYGON_RPC_URL=<url> DATABASE_URL=<url> -a "$HEROKU_APP_NAME"
  3. git push heroku <branch>:main
  4. heroku ps:scale web=1 worker=0 -a "$HEROKU_APP_NAME"

※注意: Web Dyno のみを実行してください。Worker エントリーは、誤って Worker モードで起動された際に迅速に失敗(エラー)を起こさせるために用意されています。

テスト関連スクリプト一覧

スクリプト目的
scripts/db_stats.py
ライブデータベースのテーブル计数と最近のアクティビティを検査します
scripts/export_db.py
DATABASE_URL または Heroku アプリからライブテーブルをエクスポートします
scripts/wallet_history.py
設定されたウォレットのポジション、取引履歴、残高を取得します
scripts/parse_logs.py
Heroku の JSON ログを可読なターミナル出力または HTML 形式に変換します

リポジトリの保守 (Repository Hygiene) ローカルの設定ファイル、帳簿(レジュン)、エクスポートデータ、レポート、およびデプロイアーティファクトは、デフォルトでは無視されています。

同じ日のほかのニュース

一覧に戻る →

2026/04/14 2:54

1 つ、30 の WordPress プラグインを購入し、それぞれにバックドアを埋め込まれた。

## Japanese 翻訳: 元サマリーの原文は明確で正確であり、高レベルの概要として十分に範囲内に収まっており、改行文筆は必要ありません。

2026/04/14 5:36

GitHub で積み上がったプルリクエストを処理する。

## Japanese Translation: 本テキストでは、「Stacked PRs(スタックされたプルリクエスト)」を紹介します。これは、大規模で管理が困難なプルリクエストによる問題、例えばレビューの難易度が高いこと、マージにかかる時間が長いこと、頻繁な衝突などを解決するために GitHub が実装した機能です。開発者は一度に巨額の変更を提出するのではなく、作業を注力し独立した層に分割し、それらが互いに縦方向に積み上げられ、最終的に main ブランチへマージされるまで進めます。 GitHub 本家はこのワークフローを、ナビゲーション用の可視化「スタックマップ(stack map)」UI でサポートしており、ブランチ保護規則がターゲットとなる最終ブランチに対して自動的に適用され、継続的統合(CI)システムが各層ごとに個別にテストを実行し、main ブランチへのマージを想定する manner で動作します。また、ユーザーはスタックの全て、または一部の PR をマージすることができ、残りの PR は自動的にリベースされ、スタック構造が維持されます。 このワークフローをローカル環境で管理するためには、開発者は `gh stack` CLI ツールを使用します。これは、拡張機能をインストール(`gh extension install github/gh-stack`)し、`gs init`、`gs add`、`gs push`、`gs submit` などのコマンドを用いてブランチを作成し、カスケードリベースを管理し、スタックをレビューまたはマージのためにオープン化することを意味します。将来的には、AI コーディングエージェントもこのスタックを自律的に処理できるように、特定のスキルパッケージ(`npx skills add github/gh-stack`)をインストールすることで教育できます。Ultimately(結果として)、Stacked PRs はチームが段階的なレビューを通じてコードの品質を向上させながら、大規模なコードベースを維持するために必要な手動作業を劇的に削減することを可能にします。

2026/04/14 3:50

# フォアファイアのビルドを 17% 高速化する手順 Mozilla のビルド環境を最適化し、**17% のパフォーマンス向上**を実現するための手順をご紹介します: - ビルドシステムと依存関係を最新の状態に更新してください。 - `MOZ_MAKEFLAGS` を適切に設定して(例:`-j$(nproc)`)、並列ビルドプロセスを有効にしてください。 - `-O2` や `-O3` といった最適化されたコンパイラフラグを、状況に応じて使用してください。 - 不要な負荷を削減するために、古くなったビルドアーティファクトを削除してください。 - インクリメンタルビルドにおいては、プリビルドされたツールキットやキャッシュされたオブジェクトファイルの利用を検討してください。 これらの変更を加えることで、コード品質を損なうことなくコンパイル時間を大幅に短縮できます。

## Japanese Translation: このアップデートは、Firefox のビルドシステムへの重要な修正を導入し、Buildcache Lua プラグインシステムを介して WebIDL バインディングコードの生成に対して有効なキャッシュ化を実現します。歴史的に、この Python ベースのステップ(`python3 -m mozbuild.action.webidl`)は ccache や sccache のような標準的なコンパイラキャッシュと互換性がありませんでした。これは任意のコマンドを効果的にラップできないためです。修正内容は `dom/bindings/Makefile.in` に条件付きラッパーを追加するものであり、Buildcache を使用する際にのみ有効化されます(`MOZ_USING_BUILDCACHE` が定義されている場合)。これにより呼び出しは `buildcache python3 -m mozbuild.action.webidl ...` へと変換されます。Buildcache の Lua ラッパー (`webidl.lua`) は `.webidl` ファイルや Python スクリプトなどの入力を、および `file-lists.json` と `codegen.json` から出力を識別し、ハッシュ化には `direct_mode` を使用します。Linux におけるタイミング測定では、このラッパーがなかった場合に Buildcache が使用されなかった場合の約 3m27sに対して、ccache(約 3m21s)および sccache(約 2m49s)が以前より優れていました。Lua ラッパーを有効にすると、ウォームビルド時間は約 1m12s–1m27s に低下します。設定には、central を更新するか `buildcache-wrappers` をクローンし、`~/.buildcache/config.json` で `lua_paths` を構成する(または mozconfig を通じて `BUILDCACHE_LUA_PATH` を設定)ことを必要とします。構成には、Rust クレートからの大規模なエントリに対応するための 2.5 GB の `max_local_entry_size` が含まれています。現在では概念実証として機能していますが、この最適化は将来の Firefox 開発において大きな可能性を示しており、反復サイクルの加速とより高速なアップデートをもたらすとともに、他の確定論的コード生成ステップへの拡張の可能性もあります。

『何事も起きない:スポーツ市場以外では常に「いいえ」と購入する Polymarket ボット』 | そっか~ニュース