Beim Erstellen eines Tools/einer Visualisierung, die die Gebühr einer Transaktion entsprechend ihrer Position in einem bestimmten Block anzeigt, bin ich in einigen Blöcken auf ein Muster gestoßen.
Ich erwarte, dass ein typischer Block mit Transaktionen mit dem höchsten Gebühren-pro-Byte-Verhältnis (Gebührenrate) beginnt und dann mit Transaktionen fortfährt, bei denen die Gebührenrate langsam abnimmt. Oft gibt es einige CPFP-Transaktionen, bei denen auf einen niedrigeren Gebührensatz ein höherer Gebührensatz folgt.
Was ich jedoch sehe, ist, dass in einigen Blöcken (von verschiedenen Minern) 9 Sat/B-Transaktionen mit 5 Sat/B-Transaktionen dazwischen gemischt sind. An einer späteren Position im Block sind es wieder 5 sat/B-Transaktionen. Dies geschieht über mehrere Blöcke und verschiedene Miner. Ich denke, es stammt von getblocktemplate oder etwas ähnlichem.
Ich habe eine Version meines Tools gegabelt und 5 Sat/B-Transaktionen in Blau hervorgehoben (kann hier gefunden werden , fühlen Sie sich frei zu erkunden). Da sich dies noch in der aktiven Entwicklung befindet, werde ich Screenshots einiger Blöcke hinzufügen, falls die Links nicht mehr funktionieren. Ich habe bewusst eine Reihe von Blöcken ausgewählt, bei denen ich denke, dass klar ist, was ich meine.
Musterblöcke:
Block #517361 abgebaut von ViaBTC (?)
Block #517363 abgebaut von BTC.TOP (?)
Block #517357 abgebaut von BTC.com (?)
und hier ist auch einer von Slush.
Fragen:
1) Ist dieses bekannte Verhalten eines Algorithmus, der Blockvorlagen erstellt?
2) Welche Motivation steckt hinter diesem Feature. Ist es ein Fehler?
3) Gibt es häufig verwendete getblocktemplate
Alternativen?
1) Ist dieses bekannte Verhalten eines Algorithmus, der Blockvorlagen erstellt?
Ja. Dies ist ein Verhalten, das in Bitcoin Core vorhanden ist.
Bitcoin Core bündelt Transaktionen in „Pakete“ aus einer oder mehreren Transaktionen. Jedes Paket besteht aus einer unbestätigten Transaktion und ihren untergeordneten Transaktionen (sofern vorhanden), um den Fall „Child-Pays-For-Eltern“ abzudecken. Der Transaktionsgebührensatz wird für das gesamte Paket berechnet (Gesamtgebühren, die von den Transaktionen im Paket gezahlt werden, dividiert durch die Größe des Pakets).
Wenn Transaktionen ausgewählt werden, sind es wirklich die Pakete, die ausgewählt werden. Da die Pakete in der Reihenfolge der Paketgebühr in den Block eingefügt werden, erhalten Sie manchmal einige Transaktionen mit niedriger Gebühr, gefolgt von einer Transaktion mit wirklich hoher Gebühr, da sie alle Teil derselben Transaktion waren und die Transaktion mit hoher Gebühr ein Kind, das für seine Eltern bezahlt hat.
Dies wird als "Bestellung der Vorfahrengebührensätze" bezeichnet.
2) Welche Motivation steckt hinter diesem Feature. Ist es ein Fehler?
Es ist weder ein Feature noch ein Fehler, es ist nur eine Eigenart, wie die Transaktionsauswahl funktioniert.
Siehe auch: https://bitcointalk.org/index.php?topic=2058831.0
0xb10c
Andreas Chow
0xb10c
Andreas Chow