Ich möchte das umsetzen, hat also jemand eine Formel für dynamische Blockdauern statt einer festen Vorgabe von 10 Minuten?
Die Blockdauer wird nur durch die Schwierigkeit (wenn auch indirekt) und die Netzwerk-Hashrate gesteuert. Sie sollten also die Schwierigkeit erhöhen, wenn in den letzten X Blöcken nur sehr wenige Transaktionen vorhanden sind, und umgekehrt die Schwierigkeit verringern, wenn die Blöcke zu voll werden, aber auch verringern Schwierigkeit, wenn es eine niedrige Hashrate gibt, und die Schwierigkeit erhöhen, wenn es eine hohe Hashrate gibt.
Gleichzeitig müssten Sie Anreize für das Mining schaffen, also möchten Sie vielleicht eine Belohnung relativ zur Zielzeit haben, anstatt konstant pro Block, da die Miner sonst das Netzwerk spammen könnten, um den Umsatz zu steigern.
Nehmen wir an, wir zielen darauf ab, uns von der Betrachtung der letzten 100 Blöcke auf Blöcke einzustellen, die zu 50 % voll sind.
findNewBlockTime():
newTimeTarget = (avBlockInterval100)*(0.5/averageFullness); //shorter interval with many transactions, longer with less
setReward():
newReward = newTimeTarget*totalIntervalReward/rewardInterval; //rewardInterval could be four years like Bitcoin, or some other interval, with four years totalIntervalReward would be 11.5M coins for first interval
calculateDifficulty():
newDifficulty = sumDiffLast100/last100BlocksTime*newTimeTarget;
Vielleicht interessiert es Sie, was ich hier zu diesem Thema geschrieben habe . Sie können eine Protokolländerung vornehmen, bei der Miner die „Gewicht“ ihres Blocks auswählen können und ihre Entscheidung dann verwendet werden kann, um die globalen Frequenzparameter festzulegen.
Mursch
Maestro
Mursch
Morsecoder
Maestro
Morsecoder
Maestro
Nick Odell
Maestro