0chain / 0chain/zboxcli

Optimization proposal from Sculptex

Ouverte
#673 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Go
Étoiles
28
Forks
23
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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)

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Examinez la logique d'envoi de transaction de l'outil CLI, probablement dans le GoSDK, pour trouver où les sous-ensembles de mineurs sont sélectionnés et les délais d'attente sont définis. Le problème mentionne de réduire le délai d'attente par défaut pour la réponse des mineurs et éventuellement de sélectionner l'Active Set. Commencez par examiner les fonctions d'appel réseau et les configurations de délai d'attente. Tester les changements nécessitera de comprendre le flux de transaction et éventuellement de configurer un environnement de test pour simuler les réponses des mineurs.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
go, shell
Domaine
backend, cli, performance
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.