Author

Topic: Aнaлиз Bitcoin-сети: рaспространение данных (Read 1047 times)

legendary
Activity: 1468
Merit: 1102
[Так оно же так и есть изначально. Все узлы сети передают друг другу.
Ах, ну я понимаю в чем различие наших взглядов - по вашему есть "майнеры" и "ноды".
А я считаю и тех и других "майнерами". Просто у некоторых из них хешрейт нулевой Smiley

А с орфанами все равно проблема есть. Потому что получив блок надо его сперва проверить, а потом уже начинать от него майнить.
А тот, кто блок создал - уже сам майнит от своего блока (ну самого себя-то зачем проверять?)
Правда, пулы выкрутились - получив новый блок, они начинают майнить "пустышку", не включив туда никаких транзакций.
Так как до полной проверки не знают что туда можно включать.
Поэтому такое сравнительно большое количество "пустых" блоков, которое не укладывается в нормальное распределение по терверу.

Все-таки обычные ноды не создают блоки, поэтому их поведение и их роль внутри системы отличается от майнеров. Например, их не должна особо волновать скорость распространения нового блока.
А с пустыми блоками я согласен. Ничего не сделаешь. Правила системы диктуют поведение.
legendary
Activity: 1260
Merit: 1019
Если все майнеры будут напрямую передавать друг другу новые блоки с гигабитными скоростями,
то никаких  особых проблем с орфанами  не должно быть.
Так оно же так и есть изначально. Все узлы сети передают друг другу.
Ах, ну я понимаю в чем различие наших взглядов - по вашему есть "майнеры" и "ноды".
А я считаю и тех и других "майнерами". Просто у некоторых из них хешрейт нулевой Smiley

А с орфанами все равно проблема есть. Потому что получив блок надо его сперва проверить, а потом уже начинать от него майнить.
А тот, кто блок создал - уже сам майнит от своего блока (ну самого себя-то зачем проверять?)
Правда, пулы выкрутились - получив новый блок, они начинают майнить "пустышку", не включив туда никаких транзакций.
Так как до полной проверки не знают что туда можно включать.
Поэтому такое сравнительно большое количество "пустых" блоков, которое не укладывается в нормальное распределение по терверу.
legendary
Activity: 1468
Merit: 1102
Quote
Уже предложено несколько решений этой проблемы, в том числе создание опорной (backbone) сети для майнинга
А кто будет этой сетью рулить?
Если это независимое от майнеров лицо, как Matt Corallo и его RelayNetwork https://bitcointalksearch.org/topic/how-and-why-pools-and-all-miners-should-use-the-relay-network-766190
то в чем его профит держать за свой счет сервера?

Если это какая-то организация майнеров - то на фига им это?
Майнинг - это соревнование кто быстрее найдет блок и начнет от него майнить свой следующий.
Для майнера вообще-то тот факт, что его блок не дошел до какого-то другого майнера на другом краю земли может быть даже в чем-то выгоден - так как тот другой майнер всё еще молотит вхолостую, тогда как нашедший блок уже начал следущий за ним.
Правда наоборот ему невыгодно. Если кто-то другой нашел блок - то лучше бы узнать про это пораньше.

В общем, тут много "злоупотреблений" и возможностей для картелей и альянсов.
Короче, губительная централизация во всей её красе.

Вообще-то майнеру выгодно, чтобы его найденный блок как можно быстрее распространился по сети (поправка: распространился среди майнеров). Тогда он гарантированно получит награду. Иначе, если зажать блок, то есть большая вероятность появления конкурентного блока и потери награды. И выгодно как можно быстрее узнать о появлении блока у конкурента.

А в чем проблема майнерам подключаться друг к другу напрямую и быстро передавать блоки. Для этого не надо создавать никакой отдельной сети или организации.
Если все майнеры будут напрямую передавать друг другу новые блоки с гигабитными скоростями, то никаких  особых проблем с орфанами  не должно быть.
А скорость распространения по обычным фулл-нодам для майнеров не будет иметь никакого значения.

Просто сейчас скорость передачи блока между майнерами секунды и это не играет большой роли. Когда будут минуты, тогда они будут с этим бороться.
legendary
Activity: 1260
Merit: 1019
Quote
Уже предложено несколько решений этой проблемы, в том числе создание опорной (backbone) сети для майнинга
А кто будет этой сетью рулить?
Если это независимое от майнеров лицо, как Matt Corallo и его RelayNetwork https://bitcointalksearch.org/topic/how-and-why-pools-and-all-miners-should-use-the-relay-network-766190
то в чем его профит держать за свой счет сервера?

Если это какая-то организация майнеров - то на фига им это?
Майнинг - это соревнование кто быстрее найдет блок и начнет от него майнить свой следующий.
Для майнера вообще-то тот факт, что его блок не дошел до какого-то другого майнера на другом краю земли может быть даже в чем-то выгоден - так как тот другой майнер всё еще молотит вхолостую, тогда как нашедший блок уже начал следущий за ним.
Правда наоборот ему невыгодно. Если кто-то другой нашел блок - то лучше бы узнать про это пораньше.

В общем, тут много "злоупотреблений" и возможностей для картелей и альянсов.
Короче, губительная централизация во всей её красе.
legendary
Activity: 1176
Merit: 1056
Мы также выяснили, зависит ли время доставки блока до 3000 узлов от майнера. Похоже, что большинство майнеров попадают в пределы одного стандартного отклонения от среднего значения (среднее = 9,6 с, медиана = 7,2 с.). Из ряда выбиваются китайский пул BW Pool (21 секунда) и польская майнинг-компания Polmine (4 секунды).

Пометив каждый блок метками, указывающими географическое расположение релевантных майнеров, можно получить более общее представление о времени распространения блоков в разных регионах. Как показано ниже на второй диаграмме, региональными различиями можно объяснить лишь небольшие вариации скорости распространения. В целом европейские майнеры демонстрируют скорость чуть выше средней, а майнеры из Китая (после коррекции с учетом BW Pool) и США ретранслируют блоки немного медленнее. Возможно, однако, что данные по блокам, обнаруженным в Китае, измеримы только за пределами ‘Великого файрвола’, и тогда подлинное время распространения блоков неизвестно.





 
Выводы для дискуссии о размере блоков

Полученные результаты по-настоящему важны для текущей дискуссии о размере блоков. Мы показали, что (1) наблюдается прямая связь между размером блока и временем его распространения по сети и что (2) блоки, участвующие в гонке сирот, в среднем значительно больше, чем блоки, в ней не участвующие.

По установленным скоростям распространения блоков размером до 1 МБ можно путем экстраполяции вывести время распространения блоков бОльших размеров. Как показано на приведенной ниже диаграмме линейной регрессии, на распространение полного блока размером 8 МБ по сети при текущих технических возможностях потребовалось бы примерно 137 секунд.



Хотя в части 2 мы обоснованно предположили, что в ближайшее время не следует ожидать появления полных блоков размером 8 МБ, дополнительная задержка в 2 с лишним минуты может стать в будущем существенной проблемой. Каждая секунда задержки повышает вероятность того, что сетью будет признан конкурирующий блок, а это лишает майнеров мотивации включать в блок больше транзакций. Уже предложено несколько решений этой проблемы, в том числе создание опорной (backbone) сети для майнинга, обновления кэша транзакций и использование обратимых таблиц поиска Блума (Invertible Bloom Lookup Tables). Однако пока они не реализованы, распространение крупных блоков может представлять количественно измеримый риск для доходов майнеров.




http://bitnovosti.com/2015/07/14/bitcoin-network-capacity-analysis-part-6-data-propagation/
legendary
Activity: 1176
Merit: 1056
Анализ биткойн-сети : распространение данных

2015/07/14



Эта статья продолжает серию TradeBlock, посвященную анализу блокчейна и биткойн-сети в контексте размера блоков.


Распространение данных

Для нормальной работы биткойн-экосистемы крайне важно своевременное распространение данных в сети. Скорость распространения данных можно измерить, подключившись к большому количеству узлов сети и собрав нужные данные в реальном времени. У TradeBlock имеется доступ к большому количеству биткойн-узлов в разных регионах, и благодаря возможности просмотра и записи всех сообщений, транслируемых в сеть, мы смогли получить некоторые интересные результаты.


На приведенной выше диаграмме показана средняя скорость распространения блоков в 2015 году. Для ее измерения мы регистрируем моменты, когда каждый узел биткойн-сети ретранслирует блок данных, и вычисляем время между первой и последующими ретрансляциями. Ниже мы рассмотрим различные показатели распространения данных в сети и как они могут измениться при увеличении размера блоков. Кроме того, мы обсудим, как это может повлиять на мотивацию и поведение майнеров.

Скорость распространения и гонки блоков

Когда двое или более майнеров находят блок примерно в одно время, в сеть поступают два (или более) альтернативных блока, которые могут стать отправными пунктами для расчета следующего блока. Поскольку майнеры направляют свои вычислительные ресурсы на обработку цепи, заключающей в себе бОльшую часть проделанной работы (обычно это цепь с наибольшим количеством блоков), скорость распространения блоков в таких ситуациях приобретает особенно важное значение. Вообще говоря, блок, ретранслированный узлами бОльшее число раз, имеет более высокие шансы на “выигрыш гонки” при добавлении вслед за ним следующего обнаруженного блока.

Более того: на отвергнутый блок, который еще называют “сиротой” (“orphan”), не ссылаются последующие блоки, а майнер, создавший блок-сироту, не получает награду в виде coinbase-транзакции. На приведенной ниже диаграмме показано количество блоков-сирот, добытых в каждый день, начиная с середины апреля. В среднем майнеры создавали 1,3 таких блока в день, или около 1% от всех блоков.


На следующей диаграмме показаны результаты анализа гонок сирот за последние три месяца. Очевидно, что проигравшие гонку блоки в большинстве случаев достигали меньшего количества узлов в сравнении с победителями. Хотя в конкретный момент в биткойн-сети активно примерно 6000 узлов, судя по этим данным, доставка блока до 3000 узлов обеспечивает 90-процентную вероятность того, что этот блок победит в гонке сирот. Похоже также, что в большинстве случаев побеждает тот блок, который был первым отправлен в сеть. Это подтверждается тем фактом, что большинству гонок соответствуют положительные значения x (количество секунд между отправкой блока, попавшего в блокчейн, и блока-сироты).


Возникает вопрос, связана ли вероятность победы блока в гонке с его размером. Как показано на следующей диаграмме, блоки, участвующие в гонке, в среднем примерно на 100 КБ или на 20% больше, чем обычные блоки, не участвующие в гонке. Вероятно, это связано с тем, что на ретрансляцию более крупных блоков требуется больше времени.

Получив блок, узел должен проверить список транзакций в нем по собственному пулу, находящемуся в памяти. Таким образом, каждая транзакция потенциально может тормозить обработку блока при каждой ретрансляции в дополнение к увеличению времени передачи данных. Это означает, что майнерам приходится тратить больше времени на хеширование предыдущего блока.



Скорость распространения, размер блоков и майнинг

Учитывая важность своевременного распространения блоков, мы проанализировали отношение между скоростью распространения, размером блоков и географическим расположением майнера. Наш набор данных включает данные за апрель — июнь 2015 года. Судя по диаграмме, наблюдается непосредственная связь между размером блоков и временем достижения указанного выше критического порога в 3000 узлов. Например, распространение блока размером 700+ КБ занимает примерно 17 секунд, а блока размером 200-300 КБ — всего 6 секунд.

Jump to: