Недавно я обнаружил душераздирающее явление: когда группа разработчиков смарт-контрактов получает доступ к топовым оракулам вроде Apro, их головы полны мыслей типа «просто подключи» — как будто с источником данных что-то идёт не так.
Вот это сон. Правда на самом деле гораздо жестока: как только вы подключаетесь к источнику данных, вы становитесь последним межсетевым экраном. Оракул предоставляет «подтверждённые факты в цепочке», но как и как этот факт используется — это всё ваше дело.
Иными словами: больница купила комплект импортных стерильных скальпелей — сам нож был в порядке, но пациент умер на операционном столе, можно ли винить нож? Очевидно, что нет. Проблема в мастерстве доктора, а не в инструментах.
Разработчики должны помнить о четырёх железных законах:
**Статья 1: Данные — это всего лишь сырье, а разработчики — настоящие рулевые**
Apro предоставляет высококачественное сырье, проверенное децентрализованным способом. Но если вы делаете блюдо солёным, ошибаетесь или у вас возникают проблемы с пользователем — это ваше дело. Вам нужно создать собственную систему мониторинга качества данных.
Например, если цена внезапно скачет и падает, превышая теоретический диапазон колебаний, есть ли в вашем контракте механизм автоматического выключателя? Или позволить этой аномальной цене спровоцировать массовые ликвидации? Когда возникает проблема с сетью и задержки данных, ваше приложение ждёт глупо или автоматически переключается на систему безопасности резервного копирования? Эти вещи не могут быть охвачены источниками данных.
**Статья 2: Качество кода определяет всё**
Самые сильные данные встречают уязвимый код, и результат — катастрофа. Нельзя использовать функцию, которая не была тщательно протестирована и несёт риск переполнения памяти, чтобы работать с ценовой информацией, связанной с реальными деньгами.
Говоря прямо, уровень вашего кода должен быть сопоставим с выбранным вами источником данных. Это не опционально, это базово.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Недавно я обнаружил душераздирающее явление: когда группа разработчиков смарт-контрактов получает доступ к топовым оракулам вроде Apro, их головы полны мыслей типа «просто подключи» — как будто с источником данных что-то идёт не так.
Вот это сон. Правда на самом деле гораздо жестока: как только вы подключаетесь к источнику данных, вы становитесь последним межсетевым экраном. Оракул предоставляет «подтверждённые факты в цепочке», но как и как этот факт используется — это всё ваше дело.
Иными словами: больница купила комплект импортных стерильных скальпелей — сам нож был в порядке, но пациент умер на операционном столе, можно ли винить нож? Очевидно, что нет. Проблема в мастерстве доктора, а не в инструментах.
Разработчики должны помнить о четырёх железных законах:
**Статья 1: Данные — это всего лишь сырье, а разработчики — настоящие рулевые**
Apro предоставляет высококачественное сырье, проверенное децентрализованным способом. Но если вы делаете блюдо солёным, ошибаетесь или у вас возникают проблемы с пользователем — это ваше дело. Вам нужно создать собственную систему мониторинга качества данных.
Например, если цена внезапно скачет и падает, превышая теоретический диапазон колебаний, есть ли в вашем контракте механизм автоматического выключателя? Или позволить этой аномальной цене спровоцировать массовые ликвидации? Когда возникает проблема с сетью и задержки данных, ваше приложение ждёт глупо или автоматически переключается на систему безопасности резервного копирования? Эти вещи не могут быть охвачены источниками данных.
**Статья 2: Качество кода определяет всё**
Самые сильные данные встречают уязвимый код, и результат — катастрофа. Нельзя использовать функцию, которая не была тщательно протестирована и несёт риск переполнения памяти, чтобы работать с ценовой информацией, связанной с реальными деньгами.
Говоря прямо, уровень вашего кода должен быть сопоставим с выбранным вами источником данных. Это не опционально, это базово.