Open5

Polygon mainnet の Transaction を高速に実行するための検証

0xfacad30xfacad3

Polygon mainnet の Contract を元に作成する Transaction を高速に提供できないか。
主にオフチェーン側の対応を模索。(当方が Blockchain 関連技術に詳しくないためメモとして使う)

提供とは何を指すか、Backend API として提供して同期で値を返す。
目標:3 request /sec

0xfacad30xfacad3

そもそも出来るのか?
→わからない。出来てるのを見たことがない。

0xfacad30xfacad3

検証中で調子が良さそうなもの。
Operator Wallet (mint)を実行できるWalletを大量に用意しローテーションして使う。

0xfacad30xfacad3

ローテーションするためにRedisでIndex管理をしてLua scriptでAtomicな更新・利用を保証し、環境変数にリストで格納しているOperator Wallet Addressから利用するものを決定する。

そのアドレスで、Transactionを作成する。

0xfacad30xfacad3

Nonceを手動でインクリメント(Redisで同じように管理)して、Transaction作成時にNonceを指定して実行する方法も試してみて、3 request /sec は耐えたが、とても安定しない。

理由→Nonceの値が決まるのはTransactionの状態が決定して確認できた時らしく、失敗したTransactionが手前にあると、手動でインクリメントして実行したTransactionは、Nonceが不用意に大きくなってしまい、失敗する。

ひとつ前のWalletを増やして対処する前にこの方法を試したが、Transactionを作成するWalletのNonceを管理、状態を追跡する工数が重そう or 不可能そうなので断念。