Bitcoin Forum
July 08, 2024, 11:36:41 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 [3]
41  Local / Кодеры / Re: Решаем проблему с размером блока on: March 24, 2017, 06:31:37 PM
Начну с постановки проблемы. К сожалению, на данный момент мировое сообщество эту проблему решить не в состоянии. Но рано или поздно размер блока придется увеличивать - это очевидно. Даже в случае активации SegWit 1MB блока может быть недостаточно для создания каналов, а решения вроде XT или Unlimited имеют серьезные изъяны и влекут собой трудно предсказуемые последствия, следовательно необходимо найти лучшее решение.

Предлагаю применить рациональный подход и логическим путем прийти к оптимальному решению. Это очень важный момент, поскольку только с полным и очевидным доказательством его эффективности можно рассчитывать на принятие сообществом. Решение проблемы размера блока должно касаться только этой проблемы и более ничего. То есть недопустимо, чтобы в результате существенно увеличивалась централизация и влияние майнеров, также в рамках этой задачи нам не нужны дополнительные усовершенствования, вроде создания Lightning или чего-либо еще. Нужен фикс одной конкретной проблемы и всё.
42  Local / Кодеры / Решаем проблему с размером блока on: March 24, 2017, 03:45:08 PM
Всем привет!

Имеются ли на форуме русскоязычные девелоперы, желающие принять активное участие в обсуждении решения данной проблемы, а возможно и его реализации?

Для начала предложу простое решение, альтернативное ограничению блока в 1MB. Так как этот лимит был введен в качестве защиты от спама, то можно просто сделать это другим способом. Допустим, мы считаем спамом все транзакции с комиссией ниже некоторой фиксированной величины (скажем, 20 satoshies/byte). В таком случае, проблема решается предельно просто - снимаем ограничение на размер блока и запрещаем майнерам включать в блоки транзакции с комиссией ниже этой величины, а также бесплатно включать собственные транзакции. Вернее, не совсем запрещаем, а все же оставим немного места (пусть будет 5%) для спорных транзакций:

Вариант решения №1
  • лимит на размер блока отменяется*
  • полные узлы временно отклоняют блоки*, если в них включены транзакции с комиссией ниже 20 сат/байт, или более 5% спорных транзакций (находившиеся в локальной очереди mempool менее 15 секунд)
  • майнеры следуют тем же правилам, но кроме этого, они вынуждены передавать транзакции в сеть (в том числе собственные), как минимум за 15-20 секунд до включения их в блок
  • minTxRelayFee параметр становится частью консенсуса и не может превышать 20 satoshies/byte, иначе ноды просто не смогут проверить блок на валидность

Основная идея в том, что транзакция должна попасть в мемпулы большинства полных нод и пробыть там какое-то время до того, как будет включена в блок. Это необходимо, чтобы майнеры не могли бесплатно включать собственные транзакции - теперь они, наравне со всеми, вынуждены сначала разослать их по сети.
 
5% спорных транзакций - смягчающее условие, это очень большой запас для того, чтобы ноды всегда приходили к консенсусу. Даже в том случае, если готовый блок каким-то образом будет получен раньше, чем некоторые включенные в него транзакции (что на практике почти невозможно).
 
* В любом случае, самая длинная цепочка в конечном итоге строится на PoW, и временно отбракованные блоки теоретически могут быть включены в блокчейн, но только если большинство майнеров (>50%) нарушат правила и согласятся их принять. Поэтому, во время оценки PoW для цепочки, ноды и майнеры не должны считать такие блоки, пока за ними не будет построено хотябы 2-3 нормальных блока. По этой же причине имеет смысл ограничить единовременное увеличение блока по сравнению со средним размером нескольких предыдущих, скажем не более чем вдвое.

Тема в англоязычной ветке: https://bitcointalk.org/index.php?topic=1851018.0
Некоторые выдержки из обсуждений: https://bitcointalk.org/index.php?topic=1840975.msg18465662#msg18465662

Другой возможный способ - это оставить ограничение на размер блока, и увеличивать его тогда, когда в этом появляется реальная необходимость. То есть изменить правила консенсуса, чтобы майнеры могли увеличивать блок, если очередь mempool транзакций (с достаточной комиссией) переполняется. Ниже будут изложены некоторые идеи, как это реализовать...
Pages: « 1 2 [3]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!