perp DEX API の癖のために 25 ドルを失った方法 私たちはパープDEX(ポイント保持者トップ10、出来高トップ5)で大量に取引しています。彼らのcancel_order()APIエンドポイントは...であることがわかりました。スペシャル。常に 200 OK を返します。 cancel_order() を次のように呼び出すことができます。 • 有効な注文 ID (13295238234991) • 有効なクライアント注文 ID • 無効な注文 ID またはクライアント注文 ID • すでにキャンセルされた注文 ID • 6か月前の注文ID •ハムサンドイッチ •あなたのおかあさん →まだ200でOK。 それが起こっていることを知っていて、それを中心にコーディングすれば、これは問題ありません。私たちはそうしませんでした。 実際の問題: • 混雑時にcreate_order() RTTが50ms+に急上昇することがあります。 • 注文を解約し、注文が実際に到着する前にクライアント注文 ID でキャンセルします。 • キャンセルは 200 OK を返すため、注文が無効であると想定して帳簿から削除します。 • 数秒後、いっぱいになります。 → インシデントごとに10〜20bpsで取り除かれます。 キッカーは?これらの塗りつぶしは通常の塗りつぶしと混ざっていたので、見つけるのが困難でした。 また、古い順序のバックグラウンドループも実行していましたが、それらは周期的であり、塗りつぶしの前に常にこれらをキャッチするとは限りませんでした。 修理する: • この DEX では、Websocket キャンセルの確認を *要求* するか、最大再試行回数制限が使い果たされるまでキャンセルをスパム送信し続けます。 損害: • 推定損失: $20K-$30K。 レッスン: • すべての API には癖があります。それらは通常、論理的ではなく、時には目に見えないことさえあり、多くの場合、高価です。 • 成功が実際に成功を意味することを常に確認し、200 を信頼してください。
はい、私たちはこの会場でアーブテイカー戦略も実行しており、おそらく「自分自身を選んでいた」のでしょう。しかし、これはすべてのMMとの競争であり、perps DEXのテイカーのしきい値は一般的に高いため、試す前にテイカーのしきい値を外したり、到達しなかったりすることがよくあります
もうひとつのちょっとした問題は、このことが私にとってエッジになっているので、会場に話さないという動機が湧いていることです
@0xKeef
Loris
Loris2025年7月27日
もうひとつのちょっとした問題は、このことが私にとってエッジになっているので、会場に話さないという動機が湧いていることです
42.64K