Much of the trouble that we've been having lately with maintaining consistent block times has been a result of Hotspot clusters, some of them quite large. These clusters, often hosted in the same place, lead to an abnormally high number of witnesses and a large disk representation. Since they're colocated and witness each other, our Proof of Coverage (PoC) pathing code has some pathological behavior when they're challenged, since it must consider sometimes hundreds of Hotspots to generate the path. This can lead to single transactions that take the Hotspot hardware multiple seconds to validate, which can cause a lot of problems for protocol completion and steady block times as the validation and the Honeybadger runners compete for the disk.
This release introduces a new chain variable that will allow us to restrict the number of Hotspots
that will be considered per target and pathing transaction step. This should more tightly bound the
amount of time that a single transaction can take and should make block times more predictable. This
new chain variable will cause applications using our blockchain-core
library to halt when it is
activated sometime next week, so please, if you're running something that uses core, upgrade to or
past the 2020.06.24.0
tag by Tuesday June 30.
Contents
- Allow Restriction of Considered Hotspots: PR:
- Update Transaction Fee Code and Tests: PR:
Plan
A 2020.06.24.0
release was deployed to the beta group on the afternoon of Wednesday June 24th at
around 5:30PM PDT. After testing we expect to release this to GA around 9:30 AM PDT the next
morning. The chain variable transaction activating it will be issued some time in the coming week,
no earlier than Wednesday July 1.