Jump to content

Aktuelle Meldung des Bitcoin Core Wallets (Full Node)


Recommended Posts

Servus,

 

aktuell zeigt mein Core-Wallet folgende Meldung an: "Warnung: Unbekannte Blockversion wird durch Mining erzeugt! Es ist möglich, dass unbekannte Regeln in Kraft sind."

 

Ich vermute, dass dürfte bei jedem Core Wallet so sein und hängt mit der BIP141 bzw. BIP91 Signalisierung zusammen!?

Kann jemand den Hintergrund der Meldung erklären?

 

Vielen Dank und Gruß,

 

btc.crunch

Link to comment
Share on other sites

Ja, zeigt mein Full Node ebenfalls an - es ist ein Warnhinweis bzgl. der Blockgeschichte.

 

Sollten einige Miner ihre Blöcke doch nicht "mit SegWit" minen, dann könnte es auf der Chain zu Problemen kommen.

Dieses Problem sollte aber nur auftreten, wenn nicht so eindeutig geminet wird als aktuell signalisiert (knapp 85% SegWit).

 

Kurz erklärt: Die SegWit-Blöcke werden von den non-SegWit Blöcken akzeptiert, aber nichts andersrum. Für unsere Full Nodes zählt aber immer die längste Kette und diese könnte sich dadurch häufig "ändern" und deshalb dieser Hinweis.

Es wäre also zB möglich, dass dir jemand einen BTC schickt, du siehst diesen in deinem Core aber wenn der nächste Block da ist, ist davon in deinem Core auf einmal nichts mehr ersichtlich, vl. beim Nächsten dann wieder schon usw.

  • Love it 1
Link to comment
Share on other sites

Kurz erklärt: Die SegWit-Blöcke werden von den non-SegWit Blöcken akzeptiert, aber nichts andersrum. Für unsere Full Nodes zählt aber immer die längste Kette [...]

Die die sich auskennen wissen was gemeint ist, aber auch in meiner lern fase, war ich immer verwirrt, über solche aussagen, bzw. bin es heute noch.

 

 

Deshalb erkläre ICH gerne etwas so, dass es auch Neulinge leichter verstehen.

 

 

Also mein Versuch.

 

Ein Block wird nicht von einem Block akzeptiert, sondern von einem Fullnode, der einen eingehenden Block überprüft, und ihn an seine Block-Kette hängt.

 

Ein Fullnode, überprüft einen Block der von einem Miner zusammengestellt wird, wenn alles in Ordnung ist, hängt der Fullnode diesen Block an SEINE Kette, und sendet ihn an andere Fullnodes, die wiederum dasselbe machen, bis in "alle" Fullnodes haben.

 

Ein Fullnode, überprüft die Transaktionen die von einer Wallet in das Netzwerk gesendet werden, wenn damit alles in Ordnung ist sendet der die Transaktion an weitere Fullnodes, und legt sie in seinem Transaktionspool ab.

Ein Miner betreibt normalerweise einen eigenen Fullnode und hat dadurch (im Normalfall) eine aktuelle Kette und neue Transaktionen, daraus nimmt er sich mehrere Transaktionen heraus, bildet daraus einen neuen Block, und wendet darauf dann den Proof-of-Work-Algorithmus an.

Ein fertiger Block wird wieder zu einem Fullnode (meistens seinen) gesendet, der prüft wiederum ob alles richtig ist, und hängt den Block dann an SEINE Blockkette an, sendet den Block wiederum weiter zu anderen Fullnodes, die wiederum das selbe machen, bist "jeder" den neuen Block hat.

 

Also der Verlauf in Kurzform.

  • ein Benutzer bildet mit seiner Wallet eine Transaktion und sendet die in das Netzwerk (zu einem Fullnode)
  • der Fullnode überprüft diese Transaktion, mit Hilfe einer Checkliste, (u.A. auch ob derjenige auch das "Geld" hat, was er überweisen will)
  • wenn etwas nicht stimmt, verwirft der Fullnode die Transaktion einfach. Wenn die Transaktion valide ist wird die Transaktion an andere Fullnodes weiter gesendet, und gleichzeitig wird die Transaktion in SEINEM Transaktionspool gespeichert.
  • Jeder Fullnode der eine Transaktion bekommt mach genau dasselbe wie sein Vorgänger, dadurch hat bald jeder Fullnode die neue Transaktion in SEINEM Transaktionspool.
  • ein Miner (der i.d.R. seinen einen eigenen Fullnode betreibt) stellt sich aus dem (seinem) Transaktionspool dann einen Block aus mehreren Transaktionen zusammen, und wendet den Proof-of-Work-Algorithmus an, sendet ihn dann wieder ins Netzwerk zu einem Fullnode (der i.d.R. zu seinem).
  • der Fullnode überprüft diesen Block wiederum mit Hilfe einer Checkliste
  • wenn etwas nicht stimmt, verwirft der Fullnode diesen Block einfach. Wenn der Block valide ist wird der Block an andere Fullnodes weiter gesendet, und gleichzeitig hängt er den Block an seine Blockkette.
  • Jeder Fullnode der einen Block bekommt mach genau dasselbe wie sein Vorgänger, dadurch hat bald jeder Fullnode den neuen Block in SEINER Blockkette.
  • ... und das Spiel kann von vorne losgehen
... und ganz kurz
  • Fullnodes prüfen ob alles Korrekt ist
  • Miner setzen Transaktionen in Blöcken zusammen
Wenn ein Fullnode bemerkt dass es eine längere gültige Blockkette gibt, wird zu dieser gewechselt.

Gleiches gilt bei einem Miner wenn der bemerkt dass der gerade bearbeitete Block schon von einem anderen ins Netzwerk gestellt wurde, unterbricht der sofort die Arbeit und beginnt mit einem neuen Block. 

 

 

 

Bitte korrigiert mich wenn ich etwas falsch sehe, oder falsch formuliert habe.

Hier ein Video dass die Blockchain anschaulich erklärt. Wie funktioniert die Blockchain? -- Einfach erklärt!

Edited by c0in
  • Love it 3
Link to comment
Share on other sites

Wie ermittelt ein Node eigentlich wo die längste Kette ist? 

 

Plausibel fände ich sowas:

Node läßt sich von all seinen Peers den Blockcount schicken und pickt den raus, der den höchsten Count hat. Von dem fordert er dann den letzen Block an den er selbst in seiner eigenen Chain hat und vergleicht diesen damit. Wenn er gleich ist, dann werden alle folgenden Blocks angefordert, validiert und angehängt, falls nicht gehe Block für Block zurück solange, bis die Blöcke gleich sind. Dann werden alle anderen Blocks dahinter verworfen und die richtigen angehängt.

 

Passiert das auch so oder is das noch anders?

Edited by bavarian
Link to comment
Share on other sites

Ein Fullnode sendet wenn er neu startet eine (Inventar) Nachricht an seine "Kollegen", dadurch können die ihm mitteilen welche Blöcke fehlen, die der dann verteilt anfordert um die Last zu verteilen.

Verbundene Fullnodes tauschen regelmäßig den Hash ihres Topblocks aus, wenn ein "Kollege" erkennt dass er selber eine längere Kette hat (da dieser Block-Hash bei ihm schon etwas weiter hinten liegt), teilt er dem anderen mit, welche Blöcke ihm fehlen die der dann anfordert. 

Edited by c0in
  • Love it 2
Link to comment
Share on other sites

  • 4 weeks later...

Eine Frage hätte ich noch.

 

Beispiel:

Wir haben 5 Transaktionen  A B C D E 
Miner 1 nimmt sich Transaktion A B C und baut daraus einen Block.
Miner 2 nummt sich die Transakionen C D E und baur daraus einen Block.

Miner 1 hat den Block zuerst fertig gestellt. Also müsste doch Miner 2 seinen Block verwerfen , da er in seinem Block die Transaktion C hat, welche schon im Block von Miner 1 fertiggestellt wurde.
Somit müssten dann aber auch Transaktion D und E wieder in den Transaktionspool von Miner 2 zurückgehen und auch an die anderen Transaktionspools der Miner verteilt werden.

 

Oder wie wird das geregelt?

 

 

 

 

 

Link to comment
Share on other sites

Miner 1 hat den Block zuerst fertig gestellt. Also müsste doch Miner 2 seinen Block verwerfen , da er in seinem Block die Transaktion C hat, welche schon im Block von Miner 1 fertiggestellt wurde.

 

Sagen wir mal der letzte gültige Block hat die Nummer 100

 

Wenn ein anderer Miner Block(101) fertig bekommt, verwerfen alle Miner ihre Blöcke die ja auch die Nr.(101) hätten, egal welche Transaktionen sie darin haben.

Währenddessen ein Miner einen Block mined, stellt er nebenbei im voraus wieder einen neuen Block aus dem Speicherpool zusammen.

Wenn dann eben ein anderer Miner den Block(101) vor ihm fertig bekommt, schaut er nach ob in seinem (nebenbei neu zusammengestellten) Block, Transaktionen enthalten sind die schon im "jetzt" letzten Block vorhanden sind, wirft sie aus seiner "neuen" Zusammenstellung raus, und fängt sofort an, einen neuen Block zu minen.

Nach dem Empfang des letzten Block(101) wird jeder Miner auch alle Transaktionen im Speicherpool überprüfen, und alle im letzten Block enthaltenen Transaktionen entfernen.

Somit bleibt bei den Miner, im Speicherpool nur die Transaktionen über, die noch nicht in einem Block sind.

Edited by c0in
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.