Hi everyone,
I wanted to share an update on CompactLog - it now serves both the RFC 6962 and Static CT APIs from the same Merkle tree.
Live endpoints:
- RFC 6962:
https://compact-log.ct.merklemap.com/ct/v1/get-sth- Static CT:
https://compact-log.ct.merklemap.com/checkpointWhat's interesting is that we don't actually need to choose between efficient bulk downloads (easily cached by CDNs) and user-friendly API endpoints. Both can be served from the same tree with good performance. CompactLog generates tiles on-demand and achieves gigabits of throughput from a single small commodity machine.
The architecture is straightforward: CompactLog uses SlateDB (which stores its data on S3, Azure Blob, or local filesystem) to handle merkle tree storage, deduplication, tree versioning, and now on-demand tile generation. No external coordination databases, no
staging mechanisms, no complex write pipelines - just one database that writes to the same cloud storage you'd use for static files anyway.
Both APIs maintain zero MMD - certificates are incorporated into the tree before SCTs are issued, whether clients use RFC 6962 or Static CT endpoints. This immediate incorporation works for both APIs without compromise.
This design trades direct CDN serving of pre-generated tiles for a much simpler write path and operational model. While tiles are generated on-demand, they can still be cached by CDNs just like pre-generated files - the caching benefits remain the same.
I believe this demonstrates that efficiency is largely implementation-dependent rather than protocol-dependent. Different architectural choices can yield very different performance characteristics for the same protocols.
For the ecosystem, this means monitors can use whichever API fits their use case best - bulk synchronization through CDN-friendly tiles or interactive queries through the simpler RFC 6962 interface. Log operators can apply different rate limiting strategies, perhaps
being more generous with tile endpoints since they're more cache-friendly. No forced migrations or ecosystem fragmentation.
Rather than deprecating one API in favor of the other, logs can offer both and let consumers choose based on their needs.
The code is at
https://github.com/merklemap/compact_log and I'm happy to answer any questions about the approach.
Best,
Pierre