Пока гранды Bitcoin бизнеса и разработчики обсуждают максимальный размер блока, нашлись и те, кто решил проверить на практике необходимость такого изменения.
Брокерская компания CoinWallet.eu планировала начать стресс-тест 22 июня в 13:00 GMT, протестировав 100 блоков. Чтобы создать транзакции на 200 MB данных, пришлось бы потратить 20 BTC (примерно $5,000) на комиссии.
Запланированный "альтернативный стресс-тест" для сети Bitcoin прошел без инцидентов, хотя компания, которая организовала мероприятие, сообщает, что дала только 15% запланированной нагрузки на сеть.
Первоначально планировалось "затопить" сеть Bitcoin транзакциями, чтобы показать, может ли сегодняшний 1Mb блок выдержать такую волну, а сеть потом адекватно оправиться от неё.
В CoinWallet сказали, что делают это для того, чтобы продемонстрировать недостаточность размерf блока в 1Mb, если Биткойн собирается стать чем-то большим, чем дорогостоящий научный проект.
Десять серверов с кошельками Bitcoin посылали транзакции два раза в секунду, каждая размером примерно 3KB, и каждая рассылалась на 10–20 адресов.
Выходы из этих сделок (они более массивные, 15-30KB) объединялись и отправлялись обратно на рассылавшие серверы. Большому тесту предшествовал ряд коротких, которые CoinWallet проводила в течение нескольких дней до этого.
Однако, серверы CoinWallet сами упали, и компания не смогла создать нагрузки в тех объемах, которые планировались.
Компания написала в Reddit:
В 17:00 GMT наши серверы с BitcoinD упали. Их работа была возобновлена, но не в полном объёме. Поздно вечером тест пришлось закончить. Было достигнуто примерно 15% oт целевого объема.
В CoinWallet обещают в ближайшую неделю запустить ещё один стресс-тест.
Отзывы
CoinWallet тут же раскритиковали за запуск теста на ничего не подозревающей сети Bitcoin, назвав это "нападением".
Но многим, включая разработчика Биткойна Питера Тодда, было интересно посмотреть, что же из этого получится. Оказалось, что тест прошёл без инцидентов.
Повышение комиссионных
CoinWallet прилагала к своим транзакциям комиссионные разного размера, чтобы увидеть, будет ли происходить задержка повседневных сделок. Некоторые из комиссионных превышали 10,000 сатоши (0.0001 BTC) на 1 Kb данных транзакции.
Производитель легкого кошелька MultiBit написал на своем сайте, что сделки с 1 000 сатоши (0.00001 BTC) за килобайт задерживались на время теста, некоторым требовалось ждать подтверждения до 87 блоков.
MultiBit HD wallet имеет комиссионные по умолчанию 3 000 сатоши (0.00003 BTC) за KB, пользователь может настроить их значение между 1 000 и 10 000 сатоши.
Транзакции с 3 000 сатоши требовали 11–80 блоков для подтверждения, и в среднем девять блоков при комиссионных в 10 000 сатоши.
Участники команды заключили:
Если сеть Bitcoin затоплена транзакциями с определенным уровнем комиссионных, сделки с более низкими комиссиями обрабатываются медленнее, чем обычно.
Хотя сейчас многие утверждают, что для обычного 10-минутного блока требуется выделение 8MB или 20MB, есть голоса и за сохранение существующего порядка вещей.
Создатель протокола BitTorrent Брэм Коэн написал в своем блоге пост под названием "Ирония по поводу кризиса Биткойн". Там он утверждает, что размера блока в 1MB вполне достаточно. По его мнению, лучше обеспечить рост комиссионных, что поможет майнерам.
Комментарий от Bits.media
Экспериментальная проверка повышенной нагрузки на сеть в любом случае была полезна. А в данном случае, несмотря на голоса скептиков, она действительно показала необходимость изменения максимального размера блока.
Даже если объем транзакций в сети не будет расти предсказанными темпами, следует учитывать и возникновение нештатных ситуаций. Сеть должна быть к ним готова.
Итак, что мы видим? Несмотря на то, что запланированная проверка была проведена только на 15%, сеть в ее текущем виде не справилась с нагрузкой. А тест проводил только один сервис не из самых крупных. Даже транзакции с комиссией по умолчанию для официального клиента (10 000 сатоши, или 100 uBTC) проходили с задержкой в несколько раз (9 блоков вместо 1-2)! А транзакции с меньшей комиссией, в том числе минимальной - 1000 сатоши, или 10 uBTC, и даже 30 uBTC за килобайт данных, принятой у Multibit - и вовсе задерживались до 80 блоков, а это больше половины суток.
Можно ли назвать такую задержку нормальной? Нет, никак нельзя. Транзакции без комиссии в таком случае и вовсе могут зависнуть на недели. А бесплатными транзакциями часто пользуются пулы для рассылки вознаграждения майнерам.
Решит ли проблему предложенная "гонка комиссий"? Нет, не решит, так как если объем сделок сохранится на высоком уровне, зависать начнут и транзакции с комиссией. Увеличение комиссий только изменит приоритет, но не сможет повлиять на объем данных. Значит, на данный момент большие блоки необходимы для снятия насущной проблемы возможной перегрузки сети. А скоро придется решать и более важную системную проблему роста блокчейна. Так как его рост до терабайтных величин - дело считанных лет, если не месяцев.