A maioria das ferramentas de dados de blockchain são indexadores. Elas extraem eventos, transformam-nos através de mapeamentos personalizados e despejam o resultado no Postgres ou em algum outro armazenamento de uso geral. O indexador é o gargalo, o banco de dados por baixo não tem ideia do que são dados de blockchain, e você acaba mantendo dois sistemas que não foram projetados um para o outro. Amp é um banco de dados. Um nativo de blockchain, construído sobre Apache DataFusion, Apache Arrow e Parquet. Estas são as mesmas fundações que alimentam motores de análise modernos em toda a indústria de dados. O DataFusion lida com a execução e otimização de consultas, o Arrow fornece o formato columnar em memória, e o Parquet cuida do armazenamento. O Amp adiciona capacidades específicas de blockchain em cima: UDFs cientes do EVM para decodificação de ABI, extração verificável, SQL em streaming e manuseio de reorg embutido. A diferença importa porque muda onde a complexidade reside. Com uma configuração de indexador + banco de dados, seu código de aplicação lida com transformações de dados, retrocessos de reorg e gerenciamento de esquema. Com o Amp, esses são primitivos a nível de banco de dados. Você escreve SQL, e o banco de dados cuida do resto. Por exemplo, decodificar eventos de Transferência ERC-20 em toda a mainnet do Ethereum é uma consulta SQL com a função evm_decode embutida do Amp: SELECT evm_decode(topic1, topic2, topic3, data, 'Transfer(address indexed from, address indexed to, uint256 value)') AS transfer FROM 'edgeandnode/ethereum_mainnet'.logs Isso é o que "banco de dados projetado para um propósito" significa na prática: o modelo de dados, o motor de consulta e a camada de armazenamento entendem todos o que são dados de blockchain e como se comportam. Isso é o Amp.