De flesta blockkedjedataverktyg är indexerare. De extraherar händelser, transformerar dem genom egna mappningar och dumpar resultatet i Postgres eller någon annan allmän butik. Indexeraren är flaskhalsen, databasen under har ingen aning om vad blockkedjedata ens är, och du slutar med att underhålla två system som inte är designade för varandra. Amp är en databas. En blockkedje-nativ, byggd på Apache DataFusion, Apache Arrow och Parquet. Detta är samma grunder som driver moderna analysmotorer inom dataindustrin. DataFusion hanterar frågeexekvering och optimering, Arrow tillhandahåller kolumnformatet i minnet och Parquet hanterar lagring. Amp lägger till blockkedjespecifika funktioner ovanpå: EVM-medvetna UDF:er för ABI-avkodning, verifierbar extraktion, streaming av SQL och inbyggd omorganisationshantering. Skillnaden är viktig eftersom den förändrar var komplexiteten finns. Med en indexer + databasuppsättning hanterar din applikationskod datatransformationer, omorganisationsrullningar och schemahantering. Med Amp är det databasnivå-primitiva. Du skriver SQL, och databasen hanterar resten. Till exempel är avkodning av ERC-20 Transfer-händelser över hela Ethereums mainnet en SQL-fråga med Amps inbyggda evm_decode-funktion: VÄLJ evm_decode(topic1, topic2, topic3, data, 'Överföring(adress indexerad från, adress indexerad till, uint256-värde)') SOM överföring FRÅN 'edgeandnode/ethereum_mainnet'.logs Detta är vad "specialbyggd databas" betyder i praktiken: datamodellen, frågemotorn och lagringslagret förstår alla vad blockkedjedata är och hur det beter sig. Det här är Amp.