Gemäß dem Yellow Paper sind die Beschränkungen für Blockzeitstempel, H s ,
wobei P(H) H s der Zeitstempel des übergeordneten (vorherigen) Blocks ist und ℙ 256 eine Menge natürlicher Zahlen kleiner als 2 256 ist .
Es scheint , dass das Gelbe Papier zukünftige Blöcke (Blöcke mit einem zukünftigen Zeitstempel) zulässt ― ③, da es außer ① und ② keine Beschränkung gibt.
Aber wie gehen Ethereum- Kunden eigentlich damit um? Akzeptieren sie wirklich zukünftige Sperren, wie es das Gelbe Papier erlaubt?
Ich habe einen kurzen Blick auf den Quellcode von geth und cpp-ethereum geworfen , und es scheint ErrFutureBlock
und "allowFutureBlocks"
ist relevant, aber ich konnte nicht vollständig verstehen, was sie damit machen.
Wenn ich oben etwas übersehen oder falsch gemacht habe, lassen Sie es mich bitte wissen.
Ich habe den Quellcode von Eth , Geth , Parity , pyethapp gelesen .
m_future
Kartenobjekt) und verarbeitet sie später zu dem im Zeitstempel angegebenen Zeitpunkt.Wenn sie naive Clients wären, also die Block-Zeitstempel-Validierung nur mit den Einschränkungen des Yellow Paper implementiert hätten, hätten sie Integer-Overflow-Schwachstellen, die zu Denial of Service führen können .
Akzeptieren sie wirklich zukünftige Sperren, wie es das Gelbe Papier erlaubt?
NEIN.
Thomas JayRush