Первые блоки gigabyte+, добытые в стресс-тесте STN
22 мая 2019
Фон
21 мая 2019 года тестовая сеть Bitcoin SV Scaling Network (STN) увидела, что ее максимальный размер добытого блока был побит восемь раз подряд. В последнем выпуске Bitcoin SV Node (0.2.0) одним из выдающихся изменений было поднятие предела размера жесткого блока с 128 МБ до 10 ГБ. Причиной установки крышки до сих пор превышающей mainnet является заявленное намерение STN, которое заключается в том, чтобы подтолкнуть пределы программного обеспечения Bitcoin SV к точке разрыва, чтобы мы могли заранее определить эти точки разрыва. Мощность STN всегда должна быть на несколько месяцев впереди mainnet.
План тестирования
Команда SV node упорно работала над улучшениями масштабирования узла, что является требованием, если мы хотим безопасно предоставить 2GB cap в июле на mainnet. Поэтому команда призвала STN показать нам, как эти улучшения повлияли на потенциал. Стресс-тест, поставленный со скромной целью увеличения softcap до 200 МБ, затем, если все прошло хорошо, продолжайте увеличиваться с шагом 200 МБ, пока мы не достигли 1 ГБ или пока не был обнаружен естественный предел в программном обеспечении. Смесь небольших платежных транзакций и транзакций больших данных использовалась в разных пропорциях, поскольку целью было не просто тестирование и сбор данных о пропускной способности транзакций, а наблюдение за влиянием на bitcoind и другие сервисы больших транзакций данных, подталкивающих размеры блоков к крайностям. Нам уже известно, что количество транзакций является скорее ограничением, чем чистым размером блока, но из-за предыдущих ограничений (128mb) было невозможно проверить емкость необработанного размера блока.
Одна из первых проблем, когда речь идет о масштабировании биткойна до 1GB, - это сам майнинг. Старый механизм GetBlockTemplace не очень хорошо масштабируется. Здесь в игру вступает новый api для майнинга. Проще говоря, он позволяет майнерам добывать без отправки каждой транзакции через соединение RPC между узлом и майнером. 0.2.0 был нашим первым официальным релизом с этим API, и результатом стало полное отделение загрузки пула майнинга от размера блока.
Результаты
С этой проблемой решена и несколько других улучшений программного обеспечения узла, 200MB был достигнут комфортно, как и ожидалось. Таким образом, команда начала увеличивать cap в последовательных циклах. Конечный результат был лучше, чем ожидалось, увидев, как надежно 0.2.0 обработал 1GB, было принято решение пройти мимо первоначальной цели. Тест завершился блоком 1.424 GB, содержащим 359 793 транзакции. На этом этапе наблюдалась некоторая деградация сервисов, таких как block explorers. Узлы Bitcoin SV обрабатывали вещи нормально и, вероятно, могли бы быть продвинуты дальше, но команда Stresstest и команда nChain нуждались в некотором сне.
В следующей таблице показаны некоторые из наиболее заметных блоков тестового периода:
https://bitcoinsv.io/2019/05/22/new-record-block-on-stn-stress-test/ Как видно, последовательные большие блоки были обычными, не создавая никакой реальной проблемы.
Мы наблюдали деградацию некоторых сервисов, в частности, у исследователей блоков были небольшие проблемы в начале, когда блоки начали преодолевать барьер 400MB. Тем не менее, с небольшим сообщением и некоторым обменом IP-адресами им всем удалось догнать и из того, что мы видели, все они работали на протяжении всего процесса после этого.
Были также отмечены некоторые реальные эффекты Великого брандмауэра Китая. Пользователь, участвующий в STN, имел свой узел, отстающий от цепочки, это было связано с ограничениями пропускной способности с их сервисом, в результате мы начали искать способы улучшить нашу связь в Китае для STN (мы уже делаем это для mainnet).
Теперь у нас есть гора данных, которые нужно прочесать и проанализировать, ища больше способов улучшить, больше способов быть надежными, больше способов гарантировать, что когда mainnet достигнет этих уровней, это скучно. Так скучно, что не замечаешь. Расточка значит свои надежные, расточные середины ее можно построить дальше. Скучно-это хорошо.
Команда Bitcoin SV хотела бы поблагодарить Эстона Медейроса из команды Satoshi Shotgun, который неустанно работал, чтобы мы могли взорвать практически любой размер и комбинацию блока или объема транзакций по мере необходимости в p2p-сети по требованию.
Брэд Кристенсен
https://bitcoinsv.io/2019/05/22/new-record-block-on-stn-stress-test/Блок 11902 сколько длился минут? Он обработал 360 000 транзакций