Bitcoin Forum
November 16, 2024, 04:40:31 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Nombre de transactions dans un bloc / plus longue chaîne  (Read 2574 times)
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 06, 2014, 12:57:04 PM
 #1

Bonjour,

J’ai deux questions… Oui, encore ! :-)

1) Qu’est-ce qui détermine le nombre de transactions dans un bloc ?
Est-ce le mineur qui le décide quand bon lui semble ? Un montant total de BTC de transactions ?

2) J’ai du mal à comprendre ce que veut dire : Bitcoin fait confiance à la "plus longue chaîne"
Chaîne de quoi ? Une fois qu’un bloc est né, et que le premier mineur a donc fait sa POW, j’ai cru comprendre qu’il transmettait ce bloc aux autres mineurs qui à leur tour vérifiaient son travail. Est-ce que les autres mineurs en questions ajoutent à leur tour leur propre POW au bloc ? Ce qui voudrait dire que la plus longue chaîne est le bloc qui contient le plus de POW ?

Merci pour votre aide à comprendre.
kcud_dab
Legendary
*
Offline Offline

Activity: 1652
Merit: 1002


Bitcoin enthusiast!


View Profile
August 06, 2014, 03:36:11 PM
 #2

1) Le(s) mineur(s) / la pool choisit quelle transaction il inclue dans les blocks qu'il mine
2) C'est un peu ça, la plus longue chaine signifie qu'il y a eu plus de calcul pour cette chaine

As tu lu le white paper de satoshi ? Si il y a un truc à lire c'est ça :
-> https://bitcoin.org/bitcoin.pdf
C'est en anglais mais ça reste accessible et c'est pas long (moins de 10 pages)

anemol
Hero Member
*****
Offline Offline

Activity: 800
Merit: 500



View Profile WWW
August 06, 2014, 03:46:16 PM
 #3

En version française:
Bitcoin Forum > Local > Français > Wiki, documentation et traduction > Billet de Nakamoto traduit
perl
Legendary
*
Offline Offline

Activity: 1918
Merit: 1190


View Profile
August 06, 2014, 05:06:49 PM
 #4

Oui c'est le pow cumuler qui compte .
On peut écraser le bloc courant si le pow total et supérieur à celui dans la bloc chaîne .
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 06, 2014, 05:41:25 PM
 #5

Oui, merci. C'est justement en le lisant que je me suis demandé ce qu'était "la plus longue chaine"
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 06, 2014, 05:53:36 PM
 #6

Oui c'est le pow cumuler qui compte .
On peut écraser le bloc courant si le pow total et supérieur à celui dans la bloc chaîne .

Ha, dac !!
Mais alors pour cumuler le pow, chaque mineur doit passer le bloc à un autre qui y ajoute son pow et qui le passe à un prochain qui fait pareil… etc… C'est ça ?
C'est un travail de fou ! J'hallucine !!
Je n'arrive pas à comprendre quand le bloc est enregistré dans la bloc chaîne. Dès le premier mineur et chaque autre mineur vient ajouter son pow dans la bloc chaîne, c'est ça ?

Ça prend combien d'octets un pow ?

En tout cas merci à tous pour votre aide.

monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 06, 2014, 07:02:09 PM
 #7

Oui, bon ! Je me réponds tout seul, parce que je viens de réaliser…
Je me suis embrouillé jai mal posé ma question.

Oui c'est le pow cumuler qui compte .
On peut écraser le bloc courant si le pow total et supérieur à celui dans la bloc chaîne .

Je comprends mal la notion de bloc courant / bloc dans la bloc chaîne.

Il est où le bloc courant s'il n'est pas dans la bloc chaîne ?
JackCelere
Sr. Member
****
Offline Offline

Activity: 322
Merit: 250



View Profile
August 06, 2014, 08:08:42 PM
 #8

Il est où le bloc courant s'il n'est pas dans la bloc chaîne ?
Le bloc courant comprend toutes les transactions qui seront validées par le mineur.
Pfool
Full Member
***
Offline Offline

Activity: 217
Merit: 100


View Profile WWW
August 15, 2014, 06:17:21 PM
 #9

Quelques petits rappels pour commencer:
-Le réseaux bitcoin est composés de noeuds qui contiennent tous une même copie de la blockchain (ce n'est pas tout a fais vrai puisque deux noeuds peuvent avoir une copie légérement différente à un instant t à cause de la technologie P2P utilisée. Mais à au bout d'un certain temps, les copies sont ientiques. On vas considérer qu'elles le sont tout le temps pour simplifier).
-Chaque noeud du réseau connait toutes les transactions restantes à valider (les transactions qui ne sont pas encore incluses dans un bloc inscrit dans la blockchain).

Pour miner un bloc, un miner va:
-Construire lui même le bloc qu'il veut miner en insérant dans le bloc les transactions qu'il souhaite avec une limite de taille. Un bloc peut contenir jusqu'à 1 Mo de transaction (limite imposé par le code du client bitcoin mais qui pourra être revue par la suite). Les transactions à haute priorités (par exemple celle avec des frais de transactions) sont en général sélectionnées en priorité par les mineurs, mais il est tout a fais possible de construire un bloc valide sans aucune transaction.
-Une fois le bloc construit, le mineur va essayer de valider son bloc en effectuant des calculs de hash sur l'entête du bloc (le header). Une fois que le mineur à trouver un hash répondant aux critères du réseau, le mineur soumet son bloc au réseau bitcoin qui va l'insérer dans la blockchain (après vérification par tout ou partie des noeuds du réseau). Un bloc hash d'entête de bloc est valide si hash_de_entete < target. La valeur de target est défini par le réseau bitcoin.

Quelques remarques en vrac:
-On peut donc considérer que ce qui est appeler "bloc courant" dans les posts précédents est le bloc sur lequel le mineur travail.
-Le bloc courant pour un mineur est en général différent de celui d'un autre mineur (pas les même transactions sélectionnées par les mineurs).
-Si deux mineurs arrivent à valider leur bloc courant en même temps, le réseau va insérer les deux dans la blockchain. Il y aura donc un tonc et une branche sur la blockchain. Le réseaux ne va conserver que le tronc.
-Les transactions qui se trouvaient dans le bloc de la branche devront être insérer dans un nouveau bloc sur le tronc
-Pour définir lequel des deux blocs le réseau va définir comme la branche, le réseau regarde lequel des deux blocs à un hash d'entête avec la valeur la plus petite (donc le bloc qui a potentiellement nécessité le plus de travail).
-Ces explications sont simplifiées car à cause de la technologie P2P, tous les noeuds ne sont pas forcément parfaitement synchronisés et n'ont donc pas la même vision de la blockchain. Il se peut donc que des mineurs travail toujours sur la branche (qui pour eux est le tronc) et que de nouveau blocs soient ajoutés sur cette branche. Lorsque tout le monde se re-synchronise, les mineurs verront qu'ils ont travailler sur la branche et commenceront à travailler sur le tronc.
-Tous les blocs qui sont sur la branche sont dits "orphelins".
 
N'hésitez pas à me corriger s'il y a des erreurs.

Thanx Wink
BTC: 19wv8FQKv3NkwTdzBCQn1AGsb9ghqBPWXi
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 16, 2014, 09:19:21 AM
 #10

Merci beaucoup pour ces explications.
Puisque les mineurs choisissent les transactions qu’ils mettent dans leur bloc courant, chacun de leur côté, de nombreuses transactions doivent se trouver dans plusieurs blocs. Non ?
ceric35
Hero Member
*****
Offline Offline

Activity: 585
Merit: 500



View Profile
August 16, 2014, 09:52:39 AM
 #11

Non, car des qu'un bloc est trouvé, les mineurs doivent constituer un block différent.
Introduire une transaction déjà dépensée dans un nouveau block rendrait le block invalide et ne serait pas accepter par le réseau.
Les mineurs ont intérêt à trouver le plus rapidement des blocks valides.
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 16, 2014, 10:19:32 AM
 #12

Non, car des qu'un bloc est trouvé, les mineurs doivent constituer un block différent.
Introduire une transaction déjà dépensée dans un nouveau block rendrait le block invalide et ne serait pas accepter par le réseau.
Les mineurs ont intérêt à trouver le plus rapidement des blocks valides.

Oui, mais temps qu'un bloc est "courant" c'est à dire qu'il n'est pas encore dans la bloc chain, pendant que le mineur travaille pour lui trouver un hash, qu'est ce qui empêche d'autres mineurs de choisir quelques transactions déjà choisies pour ce bloc courant ?

sinon autre question :
j'imagine que quand on mine, l'intérêt est de mettre le plus grand nombre de transactions possible dans son bloc courant (pour les fee). C'est à dire jusqu'à 1M. Non ?
ceric35
Hero Member
*****
Offline Offline

Activity: 585
Merit: 500



View Profile
August 16, 2014, 10:27:08 AM
 #13

Oui, mais temps qu'un bloc est "courant" c'est à dire qu'il n'est pas encore dans la bloc chain, pendant que le mineur travaille pour lui trouver un hash, qu'est ce qui empêche d'autres mineurs de choisir quelques transactions déjà choisies pour ce bloc courant ?
Il y a soit:
 - le dernier block valide qui est dans la chaine (à la fin)
 - les blocks que contituent les mineurs pour les ajouter à la fin de la chaine

Les blocks en cours de contitution ne peuvent pas contenir des transactions qui sont déjà présente dans la chaine principale.
Evidement, les nombreux blocks que contituent les mineurs contiennent quasiment tous les mêmes transactions.

Mais dès qu'un mineur trouvent un blocks, il ajoute le sien à la fin de la chaine, invalidant donc tous les autres.
Et le cycle recommence.

sinon autre question :
j'imagine que quand on mine, l'intérêt est de mettre le plus grand nombre de transactions possible dans son bloc courant (pour les fee). C'est à dire jusqu'à 1M. Non ?
Je ne sais pas s'il y a une strategie pour choisir les transactions. Mais je pense qu'il n'y en a pas suffisamment en 10 minutes pour constituer un block plein de 1Mo.
Il faut savoir aussi, c'est dès qu'un block est trouvé, un pool constitue un block pendant 1 millisecondes et demande à tout les mineurs de trouver un hash valide.
Pendant que les mineurs essaye de trouver le hash, le contenu du block ne peut pas changer.
Les transactions qui arrivent entre temps s’accumulent et serviront pour le block suivant.
Seldar
Sr. Member
****
Offline Offline

Activity: 333
Merit: 250


View Profile
August 16, 2014, 04:00:59 PM
 #14

Je crois que le nombre max de transactions est de 7 par secondes vu la taille max 1mo, mais je ne sais plus où j'ai li ça.

Sorry for my bad english Smiley
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 17, 2014, 06:08:16 AM
 #15

Bonjour,


-Les transactions qui se trouvaient dans le bloc de la branche devront être insérer dans un nouveau bloc sur le tronc


OK, vu le nombre de mineurs, j'imagine le nombre d'insertions de transactions avortées puis recommencées… et aussi l'importance du flux permanent de communication entre les mineurs. En fait, celui qui a un peu de retard sur la vision de la chaîne de bloc. (Ho ! tiens ! Ça fait exotique de le dire en français  Grin) risque beaucoup de choisir des transactions déjà insérées par d’autres.



-Pour définir lequel des deux blocs le réseau va définir comme la branche, le réseau regarde lequel des deux blocs à un hash d'entête avec la valeur la plus petite (donc le bloc qui a potentiellement nécessité le plus de travail).

C'est à dire celui qui commence par le plus de "0" ?
Pfool
Full Member
***
Offline Offline

Activity: 217
Merit: 100


View Profile WWW
August 17, 2014, 02:40:14 PM
 #16

Bonjour,


-Les transactions qui se trouvaient dans le bloc de la branche devront être insérer dans un nouveau bloc sur le tronc


OK, vu le nombre de mineurs, j'imagine le nombre d'insertions de transactions avortées puis recommencées… et aussi l'importance du flux permanent de communication entre les mineurs. En fait, celui qui a un peu de retard sur la vision de la chaîne de bloc. (Ho ! tiens ! Ça fait exotique de le dire en français  Grin) risque beaucoup de choisir des transactions déjà insérées par d’autres.

En fait, il n'y a pas de communication direct entre les mineurs. Les mineurs ne communiquent qu'avec leur noeud bitcoin (en général bitcoin-core). Le mineur demande le travail à effectuer directement au noeud. Lorsque le noeud détecte qu'un nouveau bloc a été ajouté dans la blockchain, le noeud va prévenir le mineur qu'il peut arrêter de travailler sur son bloc courant (car celui-ci contient très certainement des transactions qui viennent d'être validées par le dernier bloc de la blockchain, et le nouveau bloc doit contenir une référence sur le dernier bloc insérer dans la blockchain) et qu'il doit construire un autre bloc pour essayer de le valider. Pour construire son nouveau bloc, le mineur va récupérer une liste fraiche de transactions depuis le noeud. Cette liste ne contient plus les transactions qui viennent d'être validées.
Donc dans l'idéal, tous les noeuds informent au même moment tous les mineurs qu'ils doivent commencer le travail sur un nouveau bloc. Cela évite l'insertion d'une transaction déjà validé dans le bloc courant d'un mineur.

A l'heure actuel, le réseau bitcoin est suffisamment fluide pour éviter la majeur partie des problèmes de synchronisation (quelques secondes de retard n'est pas réellement impactant). En revanche, sur des monnaies alternatives qui utilise un temps de génération de bloc plus court (10 minutes pour bitcoin, 2.5 pour litecoin), les problèmes de synchronisation se font plus rapidement ressentir par les mineurs.


-Pour définir lequel des deux blocs le réseau va définir comme la branche, le réseau regarde lequel des deux blocs à un hash d'entête avec la valeur la plus petite (donc le bloc qui a potentiellement nécessité le plus de travail).

C'est à dire celui qui commence par le plus de "0" ?

C'est bien ça

Thanx Wink
BTC: 19wv8FQKv3NkwTdzBCQn1AGsb9ghqBPWXi
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 17, 2014, 04:27:11 PM
 #17

Le mineur demande le travail à effectuer directement au noeud.

OK…
Moi qui pensais que les mineurs étaient les noeuds… J'ai encore beaucoup à fouiller pour tout comprendre :-)

Merci en tout cas
Pfool
Full Member
***
Offline Offline

Activity: 217
Merit: 100


View Profile WWW
August 17, 2014, 06:45:21 PM
 #18

Le mineur demande le travail à effectuer directement au noeud.

OK…
Moi qui pensais que les mineurs étaient les noeuds… J'ai encore beaucoup à fouiller pour tout comprendre :-)

Merci en tout cas

Les noeuds permettent de gerer la blockchain: ils vérifient que la blockchain n'est pas corrompue, que les blocs soumis par les mineurs sont valides, de resoudre les branches/tronc sur la blockchain... Un noeud permet aussi aux utilisateurs d'interagir avec le réseau bitcoin: envoyer des transactions, récupérer du travail pour les mineurs...

L'implémentation de référence des noeuds bitcoin est le wallet officiel bitcoin. Le wallet comporte effectivement un mineur intégré mais il est désactivé par défault. Les mineurs ne font pas parti à proprement parler du réseau bitcoin, mais sont en revanche indispensable (car sans eux, pas de sécurité).

Thanx Wink
BTC: 19wv8FQKv3NkwTdzBCQn1AGsb9ghqBPWXi
monusername (OP)
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
August 17, 2014, 06:57:58 PM
 #19

L'implémentation de référence des noeuds bitcoin est le wallet officiel bitcoin. Le wallet comporte effectivement un mineur intégré mais il est désactivé par défault.
Dac !
Donc les noeuds sont des types qui utilisent le wallet officiel bitcoin sans en avoir activer le mineur. Ceux qui l'on activer son donc à la foie un noeud et un mineur. C'est ça ?
J'ai bien compris ce qui motivent les mineurs. Mais qu'est ce qui motivent les noeuds qui ne sont pas des mineurs ?
Pfool
Full Member
***
Offline Offline

Activity: 217
Merit: 100


View Profile WWW
August 17, 2014, 09:16:59 PM
 #20

L'implémentation de référence des noeuds bitcoin est le wallet officiel bitcoin. Le wallet comporte effectivement un mineur intégré mais il est désactivé par défault.
Dac !
Donc les noeuds sont des types qui utilisent le wallet officiel bitcoin sans en avoir activer le mineur. Ceux qui l'on activer son donc à la foie un noeud et un mineur. C'est ça ?
J'ai bien compris ce qui motivent les mineurs. Mais qu'est ce qui motivent les noeuds qui ne sont pas des mineurs ?

Les mineurs n'utilisent plus le logiciel embarqué dans le wallet depuis longtemps mais des logiciels et materiel dédié. Mais dans le principe, c'est bien ça.

Pour la motivation des personnes faisant tourner un noeud, je dirais qu'une partie des gens utilisant le wallet officiel ne savent pas réellement qu'ils sont des noeuds (ce qui était mon cas quand j'ai commencer à m'intéresser au bitcoin). Pour mon cas, je continue de faire tourner un noeud car je posséde un serveur fonctionnant 24/7 et j'en profite pour soutenir le réseau.

Sinon, il faudra demander aux autres leurs motivations...

Thanx Wink
BTC: 19wv8FQKv3NkwTdzBCQn1AGsb9ghqBPWXi
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!