Анализ биткойн-сети, часть 5: анализ нагрузочного тестирования

load-testing

Предлагаем вашему вниманию пятую статью из серии об увеличении размера блоков и его значении для дальнейшего роста биткойн-сети. Предыдущие части доступны по следующим ссылкам: 1. Блоки2. Транзакции, 3. Майнинг4. Моделирование будущей нагрузки.

Анализ результатов нагрузочного тестирования

29 и 30 мая отдельные участники биткойн-сообщества совместными усилиями протестировали пропускную способность сети, отправив в нее за короткое время десятки тысяч транзакций. Нагрузочное тестирование начало сказываться на работе пула транзакций в памяти узлов поздним вечером (по времени UTC) 29 мая и продолжалось до раннего утра 30 мая (см. диаграмму ниже). Ради целей данного анализа мы определяем интервал тестирования как период между блоками 358 596 (23:39 по UTC) и 358 625 (6:54 по UTC). С помощью инструментов TradeBlock мы проанализировали данные этого тестирования и получили несколько интересных результатов.

Чтобы смоделировать высокую нагрузку на сеть, участники тестирования программно сгенерировали тысячи транзакций с небольшой комиссией. При максимальной нагрузке в пуле транзакций находилось 26 тысяч транзакций (в обычном режиме их количество составляет от 1 до 4 тысяч).

51

mempool-movie

Определение приоритета транзакций

Столкнувшись с необходимостью обработать 135 тысяч транзакций за сутки, майнеры были вынуждены выбирать, какие транзакции им включать в каждый очередной блок. Чтобы сравнить обработку транзакций в обычном режиме и при нагрузочном тестировании, мы проанализировали распределение транзакций относительно «контрольного периода», включающего двое суток перед тестированием (23 и 27 мая) и двое суток после (3 и 6 июня) — по одному рабочему и одному выходному дню.

Средняя комиссия за байт данных в транзакциях за 7 с половиной часов нагрузочного тестирования составила около 32 сатоши, однако большая доля транзакций (26%) включала наименьшую комиссию (0-5 сатоши за байт данных). Средняя величина транзакции во время тестирования составила 5,8 XBT с медианой 0,1 XBT. Эти же значения в контрольный период были равны 10,9 XBT и 0,4 XBT соответственно. Иначе говоря, количество транзакций и объем данных во время тестирования значительно увеличились, но характеристики транзакций при этом также отклонились от стандартных.

53

54

Далее мы проанализировали, как долго пришлось ждать добавления транзакции в блок при тестировании, и сравнили это «время ожидания» (в блоках) с контрольным периодом. Как показано ниже, подтверждение транзакцией с низкой комиссией (от 0 до 5 сатоши за байт данных) во время тестирования занимало в среднем около 28 блоков, или почти 5 часов, тогда как в контрольный период аналогичные транзакции подтверждались менее чем за 10 блоков. В целом увеличение комиссии ускоряло обработку транзакции как при тестировании, так и в обычном режиме. По диаграмме также ясно, что время подтверждения при тестировании увеличилось для всех категорий транзакций в сравнении с обычным режимом.

55

Из этого правила выбивается лишь категория с комиссией 45-50 сатоши за байт. Это объясняется тем, что данная категория включает в основном длинные цепи неподтвержденных транзакций, отправленных в сеть одна за другой с небольшим интервалом. Эти транзакции не только перегрузили пул в памяти узлов, но и чаще остальных интерпретировались как спам из-за очень малого «возраста» монет.

Аналогичная тенденция заметна и при сравнении времени подтверждения в зависимости от величины транзакций. Учитывая, что около 80% транзакций при тестировании относились к категории 0-1 XBT, время подтверждения сильнее всего выросло для этой категории, но и все остальные транзакции обрабатывались при высокой нагрузке дольше.

56

Размеры блоков, их пределы и хешрейт

За 7 с половиной часов тестирования майнеры сгенерировали 30 блоков, тогда как при 10-минутном интервале их должно было быть 45. Мы не уверены, в чем причина уменьшения количества блоков, но статистический анализ указывает, что оно может быть напрямую связано с бОльшим количеством транзакций в каждом блоке.

Согласно приведенной ниже диаграмме, 67% блоков, созданных в ходе тестирования, имели размер около 750 КБ, который по умолчанию задан в стандартном биткойн-клиенте (в обычном режиме за январь-май 2015 года в эту категорию попало 15% блоков). Пулы DiscusFish и Eligius используют блоки с ограничением в 1 МБ — максимумом согласно текущему протоколу. После нагрузочного тестирования пулы BTCChina и AntMiner также увеличили предельный размер до 1 МБ. В общем, 5 из 10 крупнейших майнеров создают блоки, ограниченные пределом 750 КБ, а другие 5 — блоки с пределом 900-1000 КБ.

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

5758

За 7 с половиной часов тестирования пул BTCChina обнаружил 20% блоков, что значительно выше его типичного хешрейта, составляющего около 8% сети. Пул DiscusFish обнаружил только два блока, что соответствует 7% (в сравнении с 19% в обычном режиме). Конечно, к этим данным следует относиться скептически, но для статистически значимой выборки из 30 элементов это указывает на вероятное наличие некоторой неучтенной переменной, вызывающей отклонение результатов от случайного распределения.

59

Заключительные мысли

Подытожим результаты нагрузочного тестирования.

  • Когда сеть работает на пределе возможностей, время подтверждения транзакций увеличивается для всех категорий комиссий и величин транзакций.
  • Когда транзакции конкурируют за включение в блок, указание более высокой комиссии позволяет ускорить обработку транзакции.
  • Несмотря на значительное количество транзакций, ожидающих подтверждения, некоторые блоки остаются незаполненными, что свидетельствует об имеющейся у майнеров власти отказывать пользователям в обрабокте транзакций по своему усмотрению.
  • Пять из десяти крупнейших майнеров создают блоки с пределом в 750 КБ, а другие пять — с пределом в 900-1000 КБ.
  • Количество блоков, созданных во время тестирования, оказалось меньше ожидаемого (30, а не 45), а доля блоков, сгенерированных некоторыми майнерами, существенно отличалась от обычного режима. Это позволяет предположить, что при высокой нагрузке на сеть хешрейт одного или нескольких майнеров заметно снижается.

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

Просмотреть данные блокчейна в реальном времени можно с помощью инструментов TradeBlock.

Источник: tradeblock.com



Categories: Инфраструктура, Майнинг, Теория, Технологии

Tags:

Leave a Reply

39 Комментарий на "Анализ биткойн-сети, часть 5: анализ нагрузочного тестирования"

Notify of
avatar
trackback
Рынки предсказаний и острые проблемы современности | Bit•Новости

[…] «хард форка» протокола. Ранее глюки могли быть решены координированными действиями малого, но открытого сообщества, но теперь они могут […]

trackback
Анализ биткойн-сети, часть 6: распространение данных | Bit•Новости

[…] Часть 1: блокиЧасть 2: транзакцииЧасть 3: майнингЧасть 4: моделирование будущей нагрузкиЧасть 5: анализ нагрузочного тестирования […]

Анонимно
Гость

Ребят почему нельзя оставить оригинальные PNG файлы, обязательно заразить их джпегом с артефактами и размытостью

elite
Гость

Всего за 30$ в 10 минут можно блокировать все биткойн переводы. Создать 1000 транзакций по килобайту и поставить комиссию 0.03 цента. 0.00013 mbtc. Всего-то!

То есть за 5000 баксов можно положить всю сеть на сутки.

Анонимно
Гость

И почему хакеры не ДОСят сеть битка, почему упускают отличную возможность заработать кучу бабок?

elite
Гость

кто заплатит?
за что?

arvicco
Администратор

Решение есть — предоставить юзерам возможность менять комиссию для уже отправленной транзакции. Если важная транзакция «застряла», можно будет просто поднять для нее уровень комиссии. Кошелек может отслеживать, какая комиссия потребуется для включения в ближайший блок и т.д. Тогда подобные попытки завалить сеть спам-транзакциями (которую, кстати, провели сторонники форка Bitcoin-XT) станут бесполезными.

elite
Гость

и в каком клиенте эта функциональность реализована?

Васисуалий
Гость

а не проще размер блока увеличить? или вы предлагаете раскошеливаться на комсы майнерам, которые итак получают битки за транзы? посмотрите сколько транзакций было во время пузыря 2013-2014. может вдруг осенит вас зачем ХТ и почему есть сторонники.

Анонимно
Гость

Канеш проще. А потом и эмиссию увеличить, ну чтоб было, что майнерам майнить, а то ж мало битков.

Васисуалий
Гость

скажите честно, кого вы хотите этим предостеречь? ваших пра-пра-пра-пра-пра-пра-внуков?

Васисуалий
Гость

😀
а уточни кого всех? тебя и всех горе-переводчиков таких-же, как и ты? и кто ты вообще? от имени кого это сказал?

Васисуалий
Гость

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

Анонимно
Гость

Крепче, не крепче. С точки зрения инвесторов, это дело принципа. Если можно запросто менять размер блока, то можно менять и всё остальное.

arvicco
Администратор

Я уже писал, что не против увеличения размера блока. Я против того, чтобы какой-то хрен с горы выкатил свой персональный форк, назвал его «Биткойном» и ни с того, ни с сего потребовал от всего сообщества на него перейти. Пусть даже этого хрена и зовут Гэвин Андерсен.

Васисуалий
Гость

меня своим ресурсом не пужай. я такие ресурсы не штамповал даже когда деньги предлагали, а этого и в проекте то небыло. куда мне ходить и чего мне делать я как нибудь без тебя разберусь. учить меня собрался 🙂 ты сам то выучись сначала, сопляк.

Васисуалий
Гость

причем тут статьи, которые вы не удосужились до конца перевести? у вас только один путь — покайтесь и вас простят, а это недоразумение быстро забудется.

Анонимно
Гость

напомнило любимую мантру либералов) «пусть русские покаются за свои грехи» ))) Уважаемый, если Вам так не нравится наш сайт, то чего вы так распинаетесь тут…Интернет он большой…всем места хватит 😉 Ну или может свой альтернативный запустите и будете там продвигать своё вью на происходящие события, а?
Читать обвинения в нашей предвзятости даже смешно) Вы явно нас перепутали с каким то другим ресурсом.

Васисуалий
Гость
Я против того, чтобы какой-то хрен с горы выкатил свой персональный форк, назвал его “Биткойном” и ни с того, ни с сего потребовал от всего сообщества на него перейти. Пусть даже этого хрена и зовут Гэвин Андерсен. и кто бы говорил.. Может, у него и есть от кого-то какая-то задача, но явно не та, о которой вы говорите. а может вы аргументируете это чем-то большим нежели : «я догадался до этого сам потому, что я очень умный», — или : «я так считаю потому, что я где-то прочитал такую идею и она мне показалась логичной ибо всё что сложнее задач… Read more »
arvicco
Администратор

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

Васисуалий
Гость

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

arvicco
Администратор

Еще раз: ad hominem. Погуглите.

Васисуалий
Гость
Да понятно, ничего нет. вы мало, что поняли. во-первых не надо обобщать и приписывать мне то, чего я не говорил. во-вторых уже второй раз замечаю, что вы видимо не дочитываете до конца и отвечаете раньше чем осмыслите головой, что я написал. черным по белому написал вам, можете лепить себе плюсы и мне минусы — чести вам это не добавляет 🙂 хоть укакайтесь на свой родной битновости. Только не надо претендовать на “понимание жизни” – она действительно все расставит по своим местам, но вот только совсем не так, как вы рассчитываете. кто знает.. может вовсе и не так, как вы расчитываете.… Read more »
arvicco
Администратор

Это по-научному называется «ad hominem». Я понимаю, вам это словосочетание вряд ли знакомо — судя по вашей терминологии, вы не так уж далеко ушли от детсадовского горшка. Но я могу вам разъяснить — когда нет аргументов, вы переходите на личности. Вот только спор таким образом не выиграть, как ни тужьтесь.

Васисуалий
Гость

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

arvicco
Администратор
Да понятно, ничего нет. Не существует и Гэвина Андересена с Майком Хирном, которые месяцами втихую лоббировали биржи, кошельки и сервисы переходить на Bitcoin-XT, в то время как остальные разработчики занимались делом — код писали. И конечно же, миллионы троллей на Reddit с пустыми аккаунтами, прославляющие Bitcoin-XT и чморящие Bitcoin Core, сами собой взялись из ниоткуда, и питаются исключительно святым духом. И сторонники XT не заваливают специально сеть спам-транзакциями, под предлогом «стресс-теста». Можете и дальше стоять в своей позе страуса, кто ж вам мешает. Только не надо претендовать на «понимание жизни» — она действительно все расставит по своим местам, но вот… Read more »
elite
Гость

Нет никакого большинства за сторонниками форка, есть просто массивный пиар и появляющиеся из ниоткуда проплаченные тролли, которые создают видимость массовой поддержки. По опросу наших читателей, поддержка форка Bitcoin-XT находится на уровне альткойнов, а большинство твердо поддерживает Core.

Нет никакого большинства за сторонниками 0.1 процента от Visa. Есть просто личное мнение bitnovosti.com, которое очень сильно влияет на результаты. Доверия к такой пиар голосовалке никакого нет.

Более честный способ голосования биткойнами ( с переводом на адреса вида 1btxt и 1core) пока показывает, что побеждают сторонники увеличения размера блока. Они просто имеют больше биткойнов.

arvicco
Администратор

Ну, и где же можно посмотреть на условия и результаты этого «более честного способа»? Или вы этот секрет только «для своих» держите? 😉

Васисуалий
Гость

я правильно понял — вы оставляете выбор своего мнения большинству. дело ваше. напомню:

Если вы заметили, что вы на стороне большинства, это верный признак того, что пора меняться.

Логика — дар меньшинства. Большинство подвержено влиянию предрассудков и предубеждений. Очень многие заражены предвзятостью мнений, ревностью подозрительностью, страхом, завистью и гордостью. И люди в большинстве своём не желают менять свои взгляды: будь то вопросы религии или фасон причёски, коммунизм или игра популярного актёра.

Опаснейшие среди нас враги истины и свободы — это сплоченное большинство.

Умереть — значит присоединиться к большинству.

arvicco
Администратор

Не надо сходу наклеивать ярлыки. Во-первых, это не демократия. Консенсус либо есть, либо его нет. Если его нет, сторонники изменений могут спокойно запустить свой альткойн — свобода выбора, все дела. Вот только не надо делать вид, что этот альткойн как раз и является «настоящим биткойном». Нет, это просто очередной альткойн, сторонников которого примерно как у какого-нибудь Ethereuma.

Васисуалий
Гость

вы чуть менее нелепы чем неправы. во-первых повторяя мантру о вреде от раскола вы забываете очевидное — монополия не несёт ничего прогрессивного, напротив, именно в условиях конкурренции, мы — простые пользователи, получим возможность выбирать. да и вообще в чем именно выражается это ваше ЯВНО? явно для вас потому, что вам так захотелось? или может явно потому, что вам об этом поведал ваш сосед? а может явно просто потому,что вы оставляете выбор своего мнения большинству?

arvicco
Администратор

Нет никакого большинства за сторонниками форка, есть просто массивный пиар и появляющиеся из ниоткуда проплаченные тролли, которые создают видимость массовой поддержки. По опросу наших читателей, поддержка форка Bitcoin-XT находится на уровне альткойнов, а большинство твердо поддерживает Core.comment image

Васисуалий
Гость

задача этого хрена с горы, как вы выразились, обеспечивать полноценную работу биткоина. если лучшее что он может для этого сделать — это форк, то винить надо его коллег в том числе. при всём своём снобизме он в отличии от них сделал то во что верит, а не отмахнулся, как большинство, типа когда зачешиться тогда и будем морочиться. ИМХО

arvicco
Администратор

Может, у него и есть от кого-то какая-то задача, но явно не та, о которой вы говорите. «Обеспечивать полноценную работу» в условиях раскола сети невозможно, а вот угробить Биткойн — запросто. Никто Гэвина не назначал «лидером Биткойна», которым он себя мнит.

romanosrich
Гость

Проблема не в математической модели работы блокчейн, а в жадности майнеров, которые осознанно не включали в блоки низкооплачиваемые транзакции, количество которых резко выросло.
Увеличение блоков не решит подобную проблему и этому есть два подтверждения:
1) «35% блоков, созданных в ходе тестирования, не были полными, а один блок был вообще пуст, несмотря на большое количество транзакций в пуле, ожидающих подтверждения»
2) «Количество блоков, созданных во время тестирования, оказалось меньше ожидаемого (30, а не 45)», несмотря на то, что общее количество транзакций выросло до «26 тысяч транзакций (в обычном режиме их количество составляет от 1 до 4 тысяч)»

Васисуалий
Гость

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

wpDiscuz