Bitcoin Forum
August 11, 2024, 10:22:34 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Durée de vie d'une transaction non confirmée  (Read 1737 times)
AlainB (OP)
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
January 19, 2014, 08:46:20 PM
 #1

Bonjour,

J'ai une transaction non confirmée, (une petite erreur en comptant les 0 pour les frais).
Pendant combien de temps peut elle rester non confirmée ?
Va t elle être oubliée ?
superresistant
Legendary
*
Offline Offline

Activity: 2142
Merit: 1130



View Profile
January 20, 2014, 08:50:37 AM
 #2

Bonjour,
J'ai une transaction non confirmée, (une petite erreur en comptant les 0 pour les frais).
Pendant combien de temps peut elle rester non confirmée ?
Va t elle être oubliée ?

Tu as envoyé des Bitcoins sans frais de transaction c'est ça ?
Une transaction n'est jamais oublié mais elle peut ne jamais se confirmer.
FTWbitcoinFTW
Sr. Member
****
Offline Offline

Activity: 476
Merit: 250



View Profile
January 20, 2014, 10:36:36 AM
 #3

Recomme la meme transaction mais avec des fees

Lost coins only make everyone else's coins worth slightly more. Think of it as a donation to everyone.
it has lots of buttery taste..
AlainB (OP)
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
January 20, 2014, 07:19:53 PM
 #4

Bonjour,
J'ai une transaction non confirmée, (une petite erreur en comptant les 0 pour les frais).
Pendant combien de temps peut elle rester non confirmée ?
Va t elle être oubliée ?

Tu as envoyé des Bitcoins sans frais de transaction c'est ça ?
Une transaction n'est jamais oublié mais elle peut ne jamais se confirmer.

Il y a un détail technique qui m’échappe : une transaction est confirmée quand elle est stockée dans un block par un miner ?
Mais alors les transactions non confirmées elles sont mémorisées ou ?


Recomme la meme transaction mais avec des fees

Justement la "source" de la transaction est considérée comme dépensée par cette transaction non confirmée.
razibuzouzou
Sr. Member
****
Offline Offline

Activity: 354
Merit: 251


coinorama.net


View Profile WWW
January 21, 2014, 09:10:46 AM
 #5

Bonjour,
J'ai une transaction non confirmée, (une petite erreur en comptant les 0 pour les frais).
Pendant combien de temps peut elle rester non confirmée ?
Va t elle être oubliée ?

Tu as envoyé des Bitcoins sans frais de transaction c'est ça ?
Une transaction n'est jamais oublié mais elle peut ne jamais se confirmer.

Il y a un détail technique qui m’échappe : une transaction est confirmée quand elle est stockée dans un block par un miner ?
Mais alors les transactions non confirmées elles sont mémorisées ou ?

Salut,
Les transactions non-confirmées sont stockées en RAM, dans le mempool (c'est ce qui s'affiche en continu blockchain.info sur sa home).
Chaque noeud gère son propre mempool, et y inclue toutes les transactions valides dont il entend parler.
Le nombre de transactions sans frais est limité pour mitiger le risque de DoS. Au delà, une purge du mempool a déjà été évoquée,  mais je ne crois pas que ça ait été implémenté.
L'état du mempool n'est pas persistant (AFAIK) ; après un redémarrage de bitcoind, le mempool est vierge. Après un certain temps, il n'est donc pas exclu que le réseau "oublie" l'existence d'une transaction non-confirmée, mais cela peut prendre beaucoup de temps.

À moins que ta transaction soit énorme, même sans frais, elle sera très probablement confirmée. Depuis combien de temps attends-tu ?
AlainB (OP)
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
January 21, 2014, 05:46:18 PM
 #6

C'est une petite transaction tant en montant qu'en taille.

J'arrive à une semaine.
DenisDenis
Member
**
Offline Offline

Activity: 120
Merit: 34


View Profile
January 21, 2014, 08:26:11 PM
 #7

Chaque noeud gère son propre mempool, et y inclue toutes les transactions valides dont il entend parler.

(...)

Après un certain temps, il n'est donc pas exclu que le réseau "oublie" l'existence d'une transaction non-confirmée, mais cela peut prendre beaucoup de temps.

Tu veux dire qu'avec un peu de chances, un nœud pourrait valider la transaction, pendant qu'un autre qui l'aurait "oublié" accepterait de valider une deuxième transaction vers un autre compte ? Il faut tomber pile au bon moment, c'est sûr, mais ça me semble contraire au principe de la double dépense. J'aimerais avoir l'explication d'un spécialiste, sur ce point là.
razibuzouzou
Sr. Member
****
Offline Offline

Activity: 354
Merit: 251


coinorama.net


View Profile WWW
January 21, 2014, 08:51:21 PM
 #8

Chaque noeud gère son propre mempool, et y inclue toutes les transactions valides dont il entend parler.

(...)

Après un certain temps, il n'est donc pas exclu que le réseau "oublie" l'existence d'une transaction non-confirmée, mais cela peut prendre beaucoup de temps.

Tu veux dire qu'avec un peu de chances, un nœud pourrait valider la transaction, pendant qu'un autre qui l'aurait "oublié" accepterait de valider une deuxième transaction vers un autre compte ? Il faut tomber pile au bon moment, c'est sûr, mais ça me semble contraire au principe de la double dépense. J'aimerais avoir l'explication d'un spécialiste, sur ce point là.

N'étant pas spécialiste, je marche sur des oeufs... Voici tout de même les infos que j'ai glané (et superficiellement vérifiées dans le code source de bitcoind) :
Théoriquement oui, tu peux propager à un bout du réseau une transaction X et propager à l'autre bout une transaction Y. Je crois que les noeuds qui auront connaissance de X rejetteront Y, et inversement.
Au final, seule la transaction qui sera effectivement inclue dans un bloc (et ça ne peut pas être les deux à la fois) sera définitive, tout dépend donc si le noeud du mineur a reçu X ou Y en premier.
Lorsqu'un nouveau bloc est accepté, le mempool est mis à jour : les transactions confirmées sont retirées, les transactions qui contredisent les transactions confirmées le sont également.


C'est une petite transaction tant en montant qu'en taille.
J'arrive à une semaine.

As-tu essayé de remettre à zéro l'historique de ton client (s'il le permet) ?
Vois-tu toujours la transaction sur blockchain.info ?
Perso, ça ne m'est jamais arrivé ; tu trouveras peut-être de l'aide sur : http://www.reddit.com/r/bitcoinbeginners
AlainB (OP)
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
January 21, 2014, 08:57:20 PM
 #9

Chaque noeud gère son propre mempool, et y inclue toutes les transactions valides dont il entend parler.

(...)

Après un certain temps, il n'est donc pas exclu que le réseau "oublie" l'existence d'une transaction non-confirmée, mais cela peut prendre beaucoup de temps.

Tu veux dire qu'avec un peu de chances, un nœud pourrait valider la transaction, pendant qu'un autre qui l'aurait "oublié" accepterait de valider une deuxième transaction vers un autre compte ? Il faut tomber pile au bon moment, c'est sûr, mais ça me semble contraire au principe de la double dépense. J'aimerais avoir l'explication d'un spécialiste, sur ce point là.
tout dépend donc si le noeud du mineur a reçu X ou Y en premier.

Si j'ai bien compris c'est un peu plus compliqué que l'ordre d'arrivée, entre autre la taille de la transaction le présence de frais selon le parametrage du miner qui fait un peu ce qu'il veut pour remplir son block ...

Pour revenir à mes transactions, certaines disparaissent de blockchain.info en deux ou trois jours, d'autres sont toujours la au bout d'une semaine.
razibuzouzou
Sr. Member
****
Offline Offline

Activity: 354
Merit: 251


coinorama.net


View Profile WWW
January 21, 2014, 10:05:51 PM
 #10

Chaque noeud gère son propre mempool, et y inclue toutes les transactions valides dont il entend parler.

(...)

Après un certain temps, il n'est donc pas exclu que le réseau "oublie" l'existence d'une transaction non-confirmée, mais cela peut prendre beaucoup de temps.

Tu veux dire qu'avec un peu de chances, un nœud pourrait valider la transaction, pendant qu'un autre qui l'aurait "oublié" accepterait de valider une deuxième transaction vers un autre compte ? Il faut tomber pile au bon moment, c'est sûr, mais ça me semble contraire au principe de la double dépense. J'aimerais avoir l'explication d'un spécialiste, sur ce point là.
tout dépend donc si le noeud du mineur a reçu X ou Y en premier.

Si j'ai bien compris c'est un peu plus compliqué que l'ordre d'arrivée, entre autre la taille de la transaction le présence de frais selon le parametrage du miner qui fait un peu ce qu'il veut pour remplir son block ...

Le mineur pioche dans le mempool au moment de la construction du bloc.
Selon mon exemple, quelques soient les critères du mineur, il ne pourra piocher que X ou Y car son mempool ne contiendra que l'une des deux.
Jette un oeil à l'implémentation de référence : https://github.com/bitcoin/bitcoin/blob/master/src/miner.cpp
C'est la fonction CreateNewBlock() qui va piocher dans le mempool, ensuite la fonction TxPriorityCompare() est utilisée pour classer les transactions par ordre de "priorité".
(la fonction ComputePriority() qui calcule les priorités est là : https://github.com/bitcoin/bitcoin/blob/master/src/core.cpp )
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!