Isolation d'une partie du reseau

Bonsoir @cgeek @elois,

Je me pose une question en cas d’isolation d’une partie du réseau.

Imaginons qu’un groupe de noeuds se retrouve isolé du reste du réseau duniter mais que ce groupe enregistre des transactions, calcule des DU, cacule des blocks, etc…

Est-ce que les blocs seront pris en compte au moment de la reconnexion au réseau par l’ensemble du réseau ?

2 Likes

Ha enfin une question intéressante ça me manquais :slight_smile:

Lors de la reconnexion au réseau chaque groupe sera sur un fork différent, donc l’un des groupes effectuera un rolling back (dépilement des blocs) pour rejoindre l’autre branche ( ce qui annulera tout les actes effectués sur la branche minoritaire, comme s’il ne s’étaient jamais produits).

Mais si l’isolement dure trop longtemps, plus longtemps que le rolling back maximal (actuellement 100 blocs), alors en théorie les nœuds de la branche minoritaire continueront leur vie et nous auront deux monnaies différents, une telle situation serait très problématique mais aussi très improbable, il faut que l’isolement total dure plus de 100 blocs et concerne suffisamment de nœuds membres pour qu’ils puissent avancer de plus de 100 blocs, ce qui est très difficile avec la règle du tiers de calculateurs exclus.

Ou dit autrement il faut que l’isolement concerne plus du tiers des nœuds membres, sinon la branche isolée se retrouvera bloquée et lors du dé-isolement elle dépilera (rolling back) pour rejoindre la branche majoritaire.
Donc plus le réseau est grand plus c’est improbable.

2 Likes

C’est dommage que ces transactions soient perdues.

  • W1 est le réseau majoritaire
  • W2 est un réseau isolé mais ayant suffisamment de noeud pour valider des transactions
  • A qui possède 0 G1 et B qui possède 100 G1 sont connectés sur un noeud de W2
  • B achète quelque chose à A pour 100 G1
  • W2 est à nouveau connecté avec W1
  • A achète 100 G1 un produit à C qui a toujours été sur W1

Que se passe-t-il?

A ne peut pas acheter pour 100 Ğ1 puisqu’en revenant sur la chaîne W1 son compte est revenu à 0 et qu’actuellement dans ce cas de figure les transactions sont « perdues ».

Question subsidiaire : que se passe-t-il si dans l’intervalle de la « déconnexion » un DU a été généré dans chaque chaîne pour chaque membre?

Bref, ce genre de fork a certainement des solutions techniques pour éviter de perdre des transactions, mais c’est un peu coton à implémenter. Nul doute que ça arrivera quand on aura assez de développeurs. :wink:

Ok donc c’est B qui est gagnant et A qui est perdant lors de la régulation
car B récupère ses G1 et a reçu un produit
alors que A a envoyé un produit mais reperd ses G1.

Mais A peut attirer C sur W2 avant la régulation et lui transférer sa perte peut-être … ou bien A et B sont de mèche !

Bon ok je pinaille :wink:

Nous sommes des humains : A peut faire valoir que la transaction n’est pas passée, et demander à B de lui retransférer les fonds. Au pire, ça se termine devant la justice. Mais là encore, ça pourra être amélioré dans le futur.

3 Likes

Oui mais chaque membre a bien 1 seul DU, il verra juste deux historiques différents selon qu’il se connecte a un nœud de W1 ou de W2

Hélas non. Au mieux les transactions les plus simples peuvent être réinjecter en piscine mais si elle font appel a des sources qui n’existe pas dans l’autre branche elle ne pourront de toute façon pas repasser, il n’y a aucune solution pour contourner le problème, sinon cela permettrait de tricher.

Exact c’est pour cela que pour les transactions importantes ont ne peut pas se passer de papiers officiels (facture, contrat, ou autre).

1 Like

C’est bien ce que je supputais. D’où ce topic.

Merci.

Cela dit, on peut soi-même prendre la précaution de ne pas faire de transaction importante alors qu’un séisme réseau est en cours (car ce genre d’infos, à grande échelle, ça se voit).

2 Likes