Repository navigation
Why can't Ponder have self-hosted sync engine like Envio Hypersync? #2302
Replies: 1 comment 2 replies
|
This is closely related to what we're proposing in #2310. Your cron-job approach works because the historical backfill — the #2310 turns that into a first-class extension point. You set one field in mainnet: {
id: 1,
rpc: process.env.PONDER_RPC_URL_1,
sync: { historical: myProvider({ /* ... */ }) },
}When That's exactly your "self-hosted sync engine" idea — a columnar export, data lake, or archive dump can back the backfill — but as a supported provider inside Ponder's sync loop rather than a separate process writing to Would be curious whether your setup would map onto this provider interface. |
Uh oh!
There was an error while loading. Please reload this page.
I made a separate cronjob which it only fetchs block data and save it in ponder_sync table in the database where Ponder will be connected so that Ponder does not waste time on calling rpc for event logs.
It seems current ponder works like this.
With my cron script with saving block data in ponder_sync table,
This made the whole syncing process happen in less than 5 mins, and usually cronjob to only store block data were taking about 10mins. This is way faster than the first method because the storing block data is the bottleneck task to sync data from blockchain.
Envio claims that they are faster than Ponder or others but tbh they already keep their own block data on something called HyperSync and Envio just indexes from there in my opinion.
Why doesn't Ponder team just learn from Envio on this and provide self-hosting sync engine like I use? If you want me to add contribution to the code, I may be able to add this with
ponder synccommand to run sync engine.All reactions