Прочитав различные фрагменты документации, мне до сих пор не совсем понятно, что диктует повышение сложности и чем уровни сложности Ethereum отличаются от биткойнов.
На прошлой неделе сложность подскочила с 11 до более 17, в то время как GH/s колебалась между 800,00 и 1400,00, но без четкой корреляции между ними.
Введена ли теперь «бомба сложности»? И если да, то есть ли способ приблизить или рассчитать, насколько сложность, вероятно, возрастет в следующие 6-12 месяцев?
Связанный: если Serenity / PoS вряд ли будет представлен до начала следующего года, были ли какие-либо предложения от команды разработчиков о том, что эффекты этой «бомбы сложности» будут уменьшены в релизах Homestead или Metropolis?
Из https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2.md :
Сложность майнинга рассчитывается по разнице во времени между блоками. Точная формула изменится в Homestead. Символ //
в следующем обозначает целочисленное деление.
block_diff = parent_diff + parent_diff // 2048 * (1 if block_timestamp - parent_timestamp < 13 else -1) + int(2**((block.number // 100000) - 2))
block_diff = parent_diff + parent_diff // 2048 * max(1 - (block_timestamp - parent_timestamp) // 10, -99) + int(2**((block.number // 100000) - 2))
РЕДАКТИРОВАТЬ:
Проблема с формулой границы и причина изменения заключалась в том, что версия границы не учитывает, насколько далеко от 13 секунд было время блока. Блок, добытый через 1 секунду после предыдущего, оказывает такое же влияние на сложность, как и блок, добытый через 12 секунд. Это приводит к тому, что сложность блока приспосабливается к среднему времени блока, а не к среднему .
Опять же, проверьте EIP для более подробной информации.
Бен Викерс
Мистер Чико
block_diff = parent_diff + parent_diff // 2048 + int(2**((block.number // 100000) - 2))
Если время между двумя последними блоками больше 13 секунд, сложность снижается:block_diff = parent_diff - parent_diff // 2048 + int(2**((block.number // 100000) - 2))
Томас Джей Раш