Большинство инструментов для работы с данными блокчейна — это индексаторы. Они извлекают события, преобразуют их с помощью пользовательских сопоставлений и сбрасывают результат в Postgres или другое общее хранилище. Индексатор является узким местом, база данных внизу не имеет представления о том, что такое данные блокчейна, и в итоге вам приходится поддерживать две системы, которые не были разработаны друг для друга. Amp — это база данных. Блокчейн-ориентированная, построенная на Apache DataFusion, Apache Arrow и Parquet. Это те же основы, которые питают современные аналитические движки в индустрии данных. DataFusion обрабатывает выполнение запросов и оптимизацию, Arrow предоставляет формат столбцовых данных в памяти, а Parquet отвечает за хранение. Amp добавляет специфические для блокчейна возможности: UDF, осведомленные о EVM, для декодирования ABI, проверяемого извлечения, потокового SQL и встроенной обработки реорганизаций. Разница имеет значение, потому что она меняет место, где находится сложность. В настройке индексатор + база данных ваш код приложения обрабатывает преобразования данных, откаты реорганизаций и управление схемами. С Amp это примитивы на уровне базы данных. Вы пишете SQL, и база данных обрабатывает остальное. Например, декодирование событий передачи ERC-20 по всей основной сети Ethereum — это SQL-запрос с использованием встроенной функции evm_decode Amp: SELECT evm_decode(topic1, topic2, topic3, data, 'Transfer(address indexed from, address indexed to, uint256 value)') AS transfer FROM 'edgeandnode/ethereum_mainnet'.logs Вот что значит "база данных, созданная для конкретной цели" на практике: модель данных, движок запросов и уровень хранения все понимают, что такое данные блокчейна и как они ведут себя. Это Amp.