INTP型のブログ

苦味があるな?

dexアビトラbotの構想とやること

【具体的構想】

 

  • solana上の特定のDEXの通貨ペア、それのbids, asksを取得する
  • 仮にA,B,CのDEX上から特定通貨ペアのbids, asksを取得しているとしたとき、Aのbest askよりB, Cのbest bidが高い場合、購入後そこで即売却すれば乖離分の利益が取れる(手数料発生するためそれを考慮する)

 

【問題点】

たくさんある

  • その中でもweb socketを使って常時bids, asksを監視できないのが辛い
  • solanaとweb socketを使った通信を確立することはできるっぽいけど、それを扱うためのライブラリがない感じ(厳密にはonAccountChangeで見れるけど、callbackで処理を渡すので自分の作りたい処理がデータ更新時に作れない)
  • そのためライブラリで補っている部分を自分で作る必要があると思われる
  • ウェブソケットすらあんまりわかってないのでそこから一つずつやるしか無い

 

【気持ち】

 

まじでつらい、情報なさすぎて泣きそう

 

今日とか調べてたら昨日書いた自分の記事出てきたからね、絶望でしょ

 

日本語の情報がないだけだろと思う人もいるかもだけど、英語の情報もない。

 

ブロックチェーンの中でも比較的有名なsolanaでこれなんだから、マイナーチェーンとかどんだけ情報無いんだと震えてる

 

断片的に聞いた話だと公開されてるコントラクトとかも読んだりしてるらしいし、solanaでわからないなんて泣き言いうのはダサいような気はする。でもわからんのだ……

 

ライブラリで表現できているのであれば、多分自分でも表現できるとは思うんだよな。

 

Serum-tsのメソッドなんかは特に再現できると思ってる。なんか日本人の記事で「Serum-tsは使いやすさ重視で性能的には微妙、最終的には自分で実装することになるかもね」みたいなこと言ってたし

 

想像してたより苦戦してるけど、まあでもbids, asks取得までは来てるし、swapもライブラリ使うのであればまあ普通にできるかなって感じなので、web socket使ってbids, asks取れるようになればほぼゴールみたいなもん

 

まあその後は並列処理やりたいんだけど、jsだと流石に厳しい部分ありそうな気がするし、jsで書いたコードを今度はRust化するとかいう地獄が待ってそうな気がしないでもないけど

 

とりあえずできることから一つずつやろうということで、今週末はウェブソケットいろいろ実験してみて知見を深めようかなという次第

 

幸い、bitflyerがweb socket用意してくれてたはずなので、それ使えば理解早いはず。bfで一応bot作ってるからね