17 декабря я узнал, что надпись CIAS будет опубликована на Селестии, и я планировал временно поработать над написанием сценария для зачистки надписи. Теперь мне есть на что пожаловаться на Celestia и ее экосистему Cosmos, а также на само мероприятие CIAS.
На самом деле, написать скрипт для браширования надписей, который в основном разделен на три модуля: построение кошелька, подключение узлов и флуд транзакций. ** Первые два шага нужно найти только в документации разработчика целевой публичной цепочки, чтобы найти быструю реализацию.
Сначала я зашел на официальный сайт Celestia и Github, чтобы посмотреть, и там нет вариантов использования для разработчиков пользовательских сценариев, в основном работы узлов и другой сопутствующей документации. Конечно, это понятно, ведь Celestia не является блокчейном ToC. Celestia просто упоминает в непонятном месте, что она основана на Cosmos и что с ее основной сетью можно взаимодействовать с помощью CosmJS.
Поэтому я сразу перешел на CosmJS. А как же Космос, он даже не силен в документации. **Я зашел сразу на Github, и по здравому смыслу, как правило, этот вид JS будет иметь вариант использования на Github. Но его учебник спрятан на второстепенной странице.,И после нажатия на него.,Следуйте его конфигурации, чтобы выполнить проход.,Наконец, сообщается об ошибке.。
**Эта ошибка не является проблемой окружающей среды.,Это потому, что его учебник не был обновлен в версии учебника.**Часто имя этого класса изменяется, и это не может быть настроено и т. Д.。 Я переключился на версию библиотеки npm на старой версии учебника, и все еще есть некоторые варианты использования, которые не работают, поэтому я сдался после того, как бросил некоторое время.
Поэтому я снова погуглил, и оказалось, что правильная документация была на официальном сайте, а не на Github, что было немного нелогично. **Опять же, разве не хорошо обновить руководство по сведениям на Github до официального сайта?
Получив правильное руководство, я быстро выполнил два шага по созданию кошелька и подключению узлов и приступил к созданию модуля flood-транзакций. Проще говоря, этот модуль представляет собой цикл for, который обрабатывает подписи транзакций + сетевые запросы. Но вот некоторые проблемы:
Все методы транзакций в библиотеке CosmJS выставляют только параметры самой транзакции, но ее последовательность не выставляется (последовательность аналогична nonce в мастерской ETH, который представляет собой счетчик транзакций, установленный для предотвращения атак воспроизведения, и после каждой транзакции nonce и sequence автоматически получают +1).
Последовательность на самом деле заключается в том, что он подключается к сети, чтобы получить его при подписи (chainId и т. д.) при подписании, и он должен пройти через sendTokens() -> signAndBroadCast -> sign(). **Переход в сеть для запроса и ожидание возврата каждый раз, когда транзакция отправляется, повлияет на скорость кисти, а также увеличит бесполезные сетевые запросы, что не очень хорошо для флуда и, конечно же, не способствует ускорению/отмене транзакции. **
Давайте рассмотрим ETH метод отправки транзакций Web3JS, где вы можете самостоятельно указать nonce. Но только не в CosmJS. Я все еще думаю, что дизайн ETH Fang гораздо разумнее, вы можете напрямую указать nonce для отмены/ускорения транзакции, если транзакция застряла, вы можете настроить nonce с той же транзакцией, чтобы заменить застрявшую транзакцию, конечно, его также можно использовать для нашей флуд-атаки.
Из-за нехватки времени в библиотеке было несколько других функций, которые нужно было модифицировать, ** Я решил не использовать Proxy для дехука переписывания, а модифицировать его непосредственно в библиотеке CosmJS. **
Идея скрипта для запуска flood-транзакции заключается в том, чтобы непрерывно инициировать транзакцию через цикл for и генерировать подпись, отправлять ее на RPC-узел, и после инициирования транзакции sequence/nonce будет иметь значение +1, а после инициирования 20 транзакций цикл будет перезапущен.
Последовательности извлекаются локально только перед началом каждого цикла флуда, и нет необходимости повторно запрашивать последовательности с узлов после каждой транзакции, как это происходит по умолчанию в библиотеке CosmJS. chainId, с другой стороны, записывается в виде фиксированного значения, и его не нужно повторно запрашивать у узла. (Примечание редактора: количество петель здесь установлено относительно небольшим, и понятно, что автор не такой жестокий.) Кто-то, набирая надпись Conflux, изменил количество циклов в цикле на 1000, отправляя около 200 различных транзакций в минуту)
В конце концов, я получил рудиментарный скрипт Celestia, который я ненадолго протестировал после того, как CIAS отключился в ночь на 17 декабря, и отправил сотни транзакций. После того, как ЦРУ возобновило работу рано утром 19 декабря, я все-таки связался с несколькими ЦРУ (около 1800). Но есть и другие вещи, на которые можно пожаловаться:**
17 декабря у RPC-узла Celestia возникла серьезная проблема с рассинхронизацией данных, высота блока у разных RPC-узлов сильно отличается, и когда вы запрашиваете узел в последовательности вашего аккаунта, результат возврата в основном непостоянен, что очень болезненно. Обозреватель блоков Celestia также недоступен, и он практически слепой. Можно сказать, что в настоящее время, хотя сеть Celestia не работает и все еще может производить блоки, по оценкам, она почти на пределе.
В тот же день сотрудник CIAS увидел, что Celestia вот-вот не выдержит, и временно объявил, что все транзакции по чеканке надписей в цепочке после высоты блока 48460 являются недействительными, что было довольно характерной тенденцией «отключения сетевого кабеля биржи». И собственный сайт ЦРУ рухнул.
• Нет никаких комментариев по поводу того, что собственный протокол консенсуса сети Cosmos плохо справляется с консенсусом по блокам, но ясно, что цель, с которой CIAS вытащил сетевой кабель прошлой ночью, интригует.
17 декабря сложно выбрать узел с самой быстрой синхронизацией данных, потому что почти все узлы RPC перегружены и часто не отвечают. Позже я попытался написать код, который автоматически переключает узлы.
Формат самой надписи в CIAS не совсем согласуется с другими надписями, например, в json brc-20 все числа являются строками, в то время как в CIA-20 это число.
Стоимость надписей CIAS взлетела до 1,5 ~ 2 единиц за надпись, когда она была самой высокой прошлой ночью, а некоторые люди даже заплатили 80 единиц за надпись. Такая высокая комиссия отражает ограниченный TPS, а основатель Celestia утверждает, что может обрабатывать 10 тысяч транзакций в секунду, что явно нонсенс.
В целом, впечатления от ночи 17 декабря сводились к одному: Celestia определенно не была готова к масштабному трафику, и это было очень поверхностно с точки зрения настройки RPC-узлов (сложно представить, что за 1 час можно взорвать десятки RPC-узлов). **
В ночь на 19-е ситуация была намного лучше, за исключением взлетевшей платы за газ, в остальных аспектах большой проблемы не было, можно только сказать, что Celestia, как сеть DA, предназначенная для распределения данных по легким узлам, временно выдержала испытание, но я не знаю, будут ли еще какие-то подводные камни в будущем.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Написав сценарий Селестии и напечатав надпись, он пожаловался: Базовые навыки Космоса не являются твердыми
Автор: Wuyue, Geek Web3
17 декабря я узнал, что надпись CIAS будет опубликована на Селестии, и я планировал временно поработать над написанием сценария для зачистки надписи. Теперь мне есть на что пожаловаться на Celestia и ее экосистему Cosmos, а также на само мероприятие CIAS.
На самом деле, написать скрипт для браширования надписей, который в основном разделен на три модуля: построение кошелька, подключение узлов и флуд транзакций. ** Первые два шага нужно найти только в документации разработчика целевой публичной цепочки, чтобы найти быструю реализацию.
Сначала я зашел на официальный сайт Celestia и Github, чтобы посмотреть, и там нет вариантов использования для разработчиков пользовательских сценариев, в основном работы узлов и другой сопутствующей документации. Конечно, это понятно, ведь Celestia не является блокчейном ToC. Celestia просто упоминает в непонятном месте, что она основана на Cosmos и что с ее основной сетью можно взаимодействовать с помощью CosmJS.
Поэтому я сразу перешел на CosmJS. А как же Космос, он даже не силен в документации. **Я зашел сразу на Github, и по здравому смыслу, как правило, этот вид JS будет иметь вариант использования на Github. Но его учебник спрятан на второстепенной странице.,И после нажатия на него.,Следуйте его конфигурации, чтобы выполнить проход.,Наконец, сообщается об ошибке.。
**Эта ошибка не является проблемой окружающей среды.,Это потому, что его учебник не был обновлен в версии учебника.**Часто имя этого класса изменяется, и это не может быть настроено и т. Д.。 Я переключился на версию библиотеки npm на старой версии учебника, и все еще есть некоторые варианты использования, которые не работают, поэтому я сдался после того, как бросил некоторое время.
Поэтому я снова погуглил, и оказалось, что правильная документация была на официальном сайте, а не на Github, что было немного нелогично. **Опять же, разве не хорошо обновить руководство по сведениям на Github до официального сайта?
Получив правильное руководство, я быстро выполнил два шага по созданию кошелька и подключению узлов и приступил к созданию модуля flood-транзакций. Проще говоря, этот модуль представляет собой цикл for, который обрабатывает подписи транзакций + сетевые запросы. Но вот некоторые проблемы:
Все методы транзакций в библиотеке CosmJS выставляют только параметры самой транзакции, но ее последовательность не выставляется (последовательность аналогична nonce в мастерской ETH, который представляет собой счетчик транзакций, установленный для предотвращения атак воспроизведения, и после каждой транзакции nonce и sequence автоматически получают +1).
Последовательность на самом деле заключается в том, что он подключается к сети, чтобы получить его при подписи (chainId и т. д.) при подписании, и он должен пройти через sendTokens() -> signAndBroadCast -> sign(). **Переход в сеть для запроса и ожидание возврата каждый раз, когда транзакция отправляется, повлияет на скорость кисти, а также увеличит бесполезные сетевые запросы, что не очень хорошо для флуда и, конечно же, не способствует ускорению/отмене транзакции. **
Давайте рассмотрим ETH метод отправки транзакций Web3JS, где вы можете самостоятельно указать nonce. Но только не в CosmJS. Я все еще думаю, что дизайн ETH Fang гораздо разумнее, вы можете напрямую указать nonce для отмены/ускорения транзакции, если транзакция застряла, вы можете настроить nonce с той же транзакцией, чтобы заменить застрявшую транзакцию, конечно, его также можно использовать для нашей флуд-атаки.
Из-за нехватки времени в библиотеке было несколько других функций, которые нужно было модифицировать, ** Я решил не использовать Proxy для дехука переписывания, а модифицировать его непосредственно в библиотеке CosmJS. **
Идея скрипта для запуска flood-транзакции заключается в том, чтобы непрерывно инициировать транзакцию через цикл for и генерировать подпись, отправлять ее на RPC-узел, и после инициирования транзакции sequence/nonce будет иметь значение +1, а после инициирования 20 транзакций цикл будет перезапущен.
Последовательности извлекаются локально только перед началом каждого цикла флуда, и нет необходимости повторно запрашивать последовательности с узлов после каждой транзакции, как это происходит по умолчанию в библиотеке CosmJS. chainId, с другой стороны, записывается в виде фиксированного значения, и его не нужно повторно запрашивать у узла. (Примечание редактора: количество петель здесь установлено относительно небольшим, и понятно, что автор не такой жестокий.) Кто-то, набирая надпись Conflux, изменил количество циклов в цикле на 1000, отправляя около 200 различных транзакций в минуту)
В конце концов, я получил рудиментарный скрипт Celestia, который я ненадолго протестировал после того, как CIAS отключился в ночь на 17 декабря, и отправил сотни транзакций. После того, как ЦРУ возобновило работу рано утром 19 декабря, я все-таки связался с несколькими ЦРУ (около 1800). Но есть и другие вещи, на которые можно пожаловаться:**
• Нет никаких комментариев по поводу того, что собственный протокол консенсуса сети Cosmos плохо справляется с консенсусом по блокам, но ясно, что цель, с которой CIAS вытащил сетевой кабель прошлой ночью, интригует.
В целом, впечатления от ночи 17 декабря сводились к одному: Celestia определенно не была готова к масштабному трафику, и это было очень поверхностно с точки зрения настройки RPC-узлов (сложно представить, что за 1 час можно взорвать десятки RPC-узлов). **
В ночь на 19-е ситуация была намного лучше, за исключением взлетевшей платы за газ, в остальных аспектах большой проблемы не было, можно только сказать, что Celestia, как сеть DA, предназначенная для распределения данных по легким узлам, временно выдержала испытание, но я не знаю, будут ли еще какие-то подводные камни в будущем.