0chain / 0chain/zboxcli

Optimization proposal from Sculptex

オープン
#673 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Go
スター
28
フォーク
23
PR マージ指標
30日以内にマージされた PR はありません

説明

https://discord.com/channels/992566329632641056/1045060754103078933/1373235805459316816

Quotes from the discord message from Sculptex:
I have an app that uses the cli tools on the back end to post transactions to the Blockchain (Solana + Züs). Now the miner Active Set is much smaller, just a small number of inactive miners has a more dramatic effect on tx times.

My understanding is that each tx is sent to a random subset of miners. If inoperative miners are included in this subset, then there is a 30s timeout experienced. This can clearly and consistently be seen, the times for cli tx commands to complete consistently falls in the range around 5-7 seconds, 35-37 seconds or even 65-67 seconds. This shows instances of timeouts. The 5+ odd seconds is consistent with a minimum number of blocks passing to ensure finalization which is fine, it's the clear stepping of additional 30 seconds that is a problem.

The simple fix is to reduce the default timeout for miner response in the order of a few seconds max, this way the tx will be retried much quicker with a different set of miners.

This will result in a much more consistent UX.

A different approach that I have had success with is to curate the Active Set list of miners to only include ones that are recently active, so instead of using mainnet/dns/network that returns the entire Active Set, you would have a service running that excludes any miners that are currently inactive, such as active/dns/network.

![Image](https://github.com/user-attachments/assets/b3aeefcd-fbfd-4863-898f-c3235d61e9b7)

![Image](https://github.com/user-attachments/assets/91b80ba5-5095-4fef-8acc-97b739120ca2)

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

CLIツールのトランザクション送信ロジック(おそらくGoSDK内)を調べ、マイナーのサブセットが選択され、タイムアウトが設定されている箇所を特定します。この課題では、マイナー応答のデフォルトタイムアウトを短縮し、Active Setを精選する可能性について言及しています。ネットワーク呼び出し関数とタイムアウト設定の調査から始めてください。変更をテストするには、トランザクションフローの理解と、マイナー応答をシミュレートするためのテスト環境の構築が必要になる場合があります。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
go, shell
領域
backend, cli, performance
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。