Possibilité d'envoyer plusieurs transactions en une seule requête?

Salut !

En train d’expérimenter des trucs avec Silkaj, j’aimerais savoir :

  • est-il possible d’envoyer, en une seule requête, plusieurs docs de transaction à un noeud Duniter ? Si oui, comment ? La doc sur BMA semble indiquer : une requête par document.

  • si oui, Duniterpy permet-elle un tel envoi ? @vit @moul

Merci d’avance !

Je pense que tu touches aux limites de BMA.
Je ne pense que l’on puisse envoyer plusieurs documents en même temps.
Quelle limite vois-tu au fait de pouvoir envoyer un document maximum par requête ?
Quel avantage vois-tu à cette fonctionnalité ?

1 J'aime

Aucune limite. Je peux aussi bien les envoyer en plusieurs fois. Je trouve juste plus propre de le faire en une fois.

Je souhaite envoyer d’un coup des TX de change et la TX finale. Je trouve cela plus propre de les envoyer d’un coup, notamment pour éviter des timeouts intempestifs.

1 J'aime

BMA ne le permet pas en effet. Mais le prototype de GVA le permet déjà :smiley: Donc tu as juste à attendre la sortie de Duniter 1.9 (qui se fera après fin des dev du jalon + la campagne de tests et de stabilisation).

4 J'aimes

Concernant la transaction finale, il faut attendre que le traitement de l’addition des petites UTXO soit effectué pour pouvoir envoyer la transaction finale basé sur les UTXO générés des transactions de change effectuées préalablement.

Autrement pour envoyer tous les documents de transactions de change en même temps ça fait sens.
Je comprends la problématique et ça répond à un besoin qui fait sens selon moi.
Tu peux ajouter cette demande dans la liste souhaits de fonctionnalités GVA en pointant vers ce post.
C’est vrai que GraphQL gère plusieurs requêtes dans la même nativement, dans le sens où le client génère le type de requête qu’il souhaite. Donc, c’est pas une feature request pour GVA.

1 J'aime

Non non pas du tout. Duniter supporte très bien l’envoie de transactions chaînées en mempool, et elles peuvent s’écrire dans un même bloc dans la limite d’une profondeur de 5 (limite trop grande qu’on pourrait réduire à 3). En tous les cas même si la profondeur max est dépassée il n’y a pas besoin d’attendre pour soumettre les transactions.

Même pas besoin de soumettre un batch de requêtes, le prototype actuel de GVA comporte une mutation permettant du soumettre un tableau de transactions, et ça fonctionne déjà :wink:

2 J'aimes

Oui. Mais dans le cas de l’envoi d’un tableau de TXs, il faut (je suppose) que les TX de change entrent en mempool avant la TX finale. Comme ça, les sources de la TX finale sont déjà en mempool, et elle n’est pas rejetée. C’est peut-être à ça que @moul pensait en parlant de « traitement de l’addition des petites UTXO ».

Je verrai sur le moment, mais je suppose que mettre la TX finale en fin du tableau de transaction devrait suffire :innocent:

1 J'aime

Non pas besoin car seule une validation locale est faite lors de l’insertion en mempool. Donc tu peux très bien insérer d’abord la tx finale puis les tx de change. Je pense que @Moul confond avec la génération des documents, ce qui n’a rien y voir.

1 J'aime