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

39
ПОДЕЛИТЬСЯ

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

39 КОММЕНТАРИИ

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

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

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

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

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

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

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

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

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

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

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

        • Нет никакого большинства за сторонниками форка, есть просто массивный пиар и появляющиеся из ниоткуда проплаченные тролли, которые создают видимость массовой поддержки. По опросу наших читателей, поддержка форка Bitcoin-XT находится на уровне альткойнов, а большинство твердо поддерживает Core.
          https://bitnovosti.files.wordpress.com/2015/06/goloss.png

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

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

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

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

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

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

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

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

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

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

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

        • Да понятно, ничего нет. Не существует и Гэвина Андересена с Майком Хирном, которые месяцами втихую лоббировали биржи, кошельки и сервисы переходить на Bitcoin-XT, в то время как остальные разработчики занимались делом – код писали. И конечно же, миллионы троллей на Reddit с пустыми аккаунтами, прославляющие Bitcoin-XT и чморящие Bitcoin Core, сами собой взялись из ниоткуда, и питаются исключительно святым духом. И сторонники XT не заваливают специально сеть спам-транзакциями, под предлогом “стресс-теста”. Можете и дальше стоять в своей позе страуса, кто ж вам мешает. Только не надо претендовать на “понимание жизни” – она действительно все расставит по своим местам, но вот только совсем не так, как вы рассчитываете.

        • Да понятно, ничего нет.

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

          Только не надо претендовать на “понимание жизни” – она действительно все расставит по своим местам, но вот только совсем не так, как вы рассчитываете.

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

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

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

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

          и кто бы говорил..

          Может, у него и есть от кого-то какая-то задача, но явно не та, о которой вы говорите.

          а может вы аргументируете это чем-то большим нежели : “я догадался до этого сам потому, что я очень умный”, – или : “я так считаю потому, что я где-то прочитал такую идею и она мне показалась логичной ибо всё что сложнее задач для 9-го класса мне кажется подозрительным”, – и собственно ваш шедевр : “я так думаю потому, что на нашем сайте большинство так думает, а что думает большинство я сам решаю”

          аппеляции к научным терминам из ваших то уст.. ой.. очнитесь!

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

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

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

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

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

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

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

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

        • Васисуалий, ты тут заебал уже всех. Пошел нахуй.

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

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here