AFAIK первоначальное предложение было сделано Гэвин.
котировка
O (1) Блок распространение
Проблема
Bitcoin шахтеры хотят, чтобы их вновь обнаруженные блоки для распространения по сети как можно быстрее, потому что каждая миллисекунда задержки увеличивает вероятность того, что другой блок, найденную примерно в то же время, выигрывает "блок гонки."
С сегодняшнего p2p протокол, это дает шахтерам стимул ограничить число сделок, включенных в их блоков. Сделка должна платить больше сборов с шахтером, чем они статистически могут потерять из-за увеличения шансов потерять блок гонки, поскольку новые блочные объявления включают в себя все данные для всех операций в блоке. Это неэффективно (данные транзакции передаются по сети в два раза, используя в два раза больше пропускной способности) и искусственно увеличивает операционные издержки намного выше, чем они должны быть.
Проблема
Bitcoin шахтеры хотят, чтобы их вновь обнаруженные блоки для распространения по сети как можно быстрее, потому что каждая миллисекунда задержки увеличивает вероятность того, что другой блок, найденную примерно в то же время, выигрывает "блок гонки."
С сегодняшнего p2p протокол, это дает шахтерам стимул ограничить число сделок, включенных в их блоков. Сделка должна платить больше сборов с шахтером, чем они статистически могут потерять из-за увеличения шансов потерять блок гонки, поскольку новые блочные объявления включают в себя все данные для всех операций в блоке. Это неэффективно (данные транзакции передаются по сети в два раза, используя в два раза больше пропускной способности) и искусственно увеличивает операционные издержки намного выше, чем они должны быть.
Полный текст здесь: https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2
Недавно Kalle Розенбаум сделал какую-то работу в этой области, которая включает в себя очень хорошую инфографику.
котировка
Решение
Что делать, если мы могли бы использовать тот факт, что все операции в блоке, вероятно, уже распространяемые в сеть. Почему мы должны послать все транзакции в блоке снова? Мы не делаем. У нас есть несколько вещей, чтобы рассмотреть:
Давайте игнорировать 1 сейчас. (Мы можем исправить либо каноническим упорядочением сделок внутри блоков, или путем присоединения заказа информации с сообщением).
Это, как мы имеем дело с 2 и 3. пристегнуться!
Что делать, если мы могли бы использовать тот факт, что все операции в блоке, вероятно, уже распространяемые в сеть. Почему мы должны послать все транзакции в блоке снова? Мы не делаем. У нас есть несколько вещей, чтобы рассмотреть:
- 1. Порядок операций в рамках вопросов блока
- 2. Есть, вероятно, различие между mempools на разных узлах
- 3. Мы не знаем различия
Давайте игнорировать 1 сейчас. (Мы можем исправить либо каноническим упорядочением сделок внутри блоков, или путем присоединения заказа информации с сообщением).
Это, как мы имеем дело с 2 и 3. пристегнуться!
Полный текст (мульти часть): http://popeller.io/index.php/2015/10/09/bitcoin-block-propagation-with-iblt-infographic/