I have a little more work to do around the CA root validation and then, I'll apply for a test log.
--Hello,After a bunch of improvements I am happy to report that compact_log is able to process thousands of `add-(pre)-entry` requests per second.Here is some logs:INFO slatedb::compactor: i: Batch stats: 26 batches flushed (avg size: 904, avg time: 183ms), throughput: 4703 entries/sec, queue: 436/2000INFO slatedb::compactor: i: Batch stats: 28 batches flushed (avg size: 925, avg time: 177ms), throughput: 5181 entries/sec, queue: 428/2000INFO slatedb::compactor: i: Batch stats: 18 batches flushed (avg size: 884, avg time: 265ms), throughput: 3185 entries/sec, queue: 430/2000So far, I think it's a very successful experiment that'd probably offer a path towards very cheap to operate and higher available logs.I have a little more work to do around the CA root validation and then, I'll apply for a test log.Best,PierreOn Mon, Jun 2, 2025, at 23:38, Pierre Barre wrote:To follow-up on this with something testable:I've hosted compact_log at https://compact-log.pre-test.ct.merklemap.com/ tree grow few hundreds entries a second on a very cheap VM (16 euros a month), with barely any cpu usage (10-20% of 4 slow cores).Get-entries should be pretty fast too:PierreOn Mon, Jun 2, 2025, at 17:15, Pierre Barre wrote:Hi everyone,I wanted to share an experimental CT log implementation I've been working on that takes a different approach to the scalability challenges frequently discussed here.The project is fully RFC 6962-compliant and explores whether we can achieve the same scalability benefits as tile-based architectures, but with a simpler operational model.Key approach:- Uses LSM-trees for storage- Native support for object storage (S3, Azure, local)- Leverages LSM-tree properties: natural write batching, efficient compaction...From rudimentary testing and lightweight hardware ressources (8vcpus), the server easily handles 10k+ writes per second, and 20k+ reads per second.
--You received this message because you are subscribed to a topic in the Google Groups "certificate-transparency" group.To unsubscribe from this topic, visit https://groups.google.com/d/topic/certificate-transparency/ViOlp7fEzWQ/unsubscribe.To unsubscribe from this group and all its topics, send an email to certificate-transp...@googlegroups.com.To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/625c342d-4baf-4635-8a24-f502a3179e8an%40googlegroups.com.
--You received this message because you are subscribed to a topic in the Google Groups "certificate-transparency" group.To unsubscribe from this topic, visit https://groups.google.com/d/topic/certificate-transparency/ViOlp7fEzWQ/unsubscribe.To unsubscribe from this group and all its topics, send an email to certificate-transp...@googlegroups.com.To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/5300fda0-38b3-4e47-8edc-fafd458ea868%40app.fastmail.com.
You received this message because you are subscribed to the Google Groups "certificate-transparency" group.
To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/9c7fe07f-1bf3-4ab6-ad0f-1bf3c448207c%40app.fastmail.com.
Hi Ryan,Thank you _so much_ for your email. I completely missed that and was going to implement something not-optimal in comparison.Should this remain static in the context of a log? Or is it permitted to fetch the list in a worker every so often to update get-roots, and related verification path?
Best,Pierre
--You received this message because you are subscribed to the Google Groups "certificate-transparency" group.To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/6298137e-1cd3-4fd1-b179-f027e3e94e49%40app.fastmail.com.
Wouldn't we need something like `/get-removed-roots` ?Best,Pierre
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/52c4bdcf-c82c-4f8b-8f08-b405ce913230%40app.fastmail.com.
--
You received this message because you are subscribed to the Google Groups "certificate-transparency" group.
To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/db1d6c88-b7a0-4418-b4d7-40053dabc0cc%40app.fastmail.com.
Hi Ryan,Thank you _so much_ for your email. I completely missed that and was going to implement something not-optimal in comparison.Should this remain static in the context of a log? Or is it permitted to fetch the list in a worker every so often to update get-roots, and related verification path?
Best,PierreOn Fri, Jun 6, 2025, at 14:52, 'Ryan Dickson' via certificate-transparency wrote:
--
You received this message because you are subscribed to the Google Groups "certificate-transparency" group.
To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/6298137e-1cd3-4fd1-b179-f027e3e94e49%40app.fastmail.com.
Thank you!I’ll go that route then.By the way, out of curiosity, is the primary reason for a log to not just accept anything primarily for anti-spam reasons and to not make monitors waste resources? Or is there also something else?
Best,Pierre
--You received this message because you are subscribed to the Google Groups "certificate-transparency" group.To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/3b6bff4a-dabc-4656-a5a7-773f76066b5b%40app.fastmail.com.
Not sure about illegal things, but cat pictures? Definitely: https://static.sched.com/hosted_files/bsidessf2019/88/Catlog_BSidesSF_2019.pdf
From: certificate-...@googlegroups.com <certificate-...@googlegroups.com> On Behalf Of Pierre Barre
Sent: Friday, June 6, 2025 4:02 PM
To: Filippo Valsorda <fil...@ml.filippo.io>; certificate-transparency <certificate-...@googlegroups.com>
Subject: Re: New rfc6962 implementation
Couldn’t already you encore illegal things and PII as punnycode in SANs?
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/c223fc2f-aec1-4805-952c-4d774ca53e44%40app.fastmail.com.
--
You received this message because you are subscribed to the Google Groups "certificate-transparency" group.
To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/94ec1cc4-cc4b-4807-a88f-4d48f332446c%40app.fastmail.com.
Hello,I've received several questions about CompactLog's architectural approach, particularly regarding how MMD and versioning is handled. Here's a detailed explanation of the key design decisions:HOW MMD IS ELIMINATED ENTIRELYMany CT log implementations have a Maximum Merge Delay - a window after SCT issuance where submitted certificates aren't yet included in the Merkle tree. This exists because traditional implementations issue SCTs immediately, then incorporate certificates later via background processes.CompactLog eliminates MMD by reversing this order - certificates are incorporated before SCTs are issued:Submission 1 ─┐Submission 2 ─┼─ Wait up to 500ms ─→ Batch tree update ─→ All SCTs returnedSubmission 3 ─┘ └── Certificates already incorporatedThe 500ms delay is submission delay, not MMD. Once SCTs are issued, certificates are already in the tree (MMD <= 0).TRADITIONAL VS COMPACTLOG TIMINGTraditional CT implementations:Submit cert → Issue SCT immediately → [MMD period] → Incorporate in treeCompactLog:Submit cert → [Batch delay ≤500ms] → Incorporate in tree → Issue SCTResult: Traditional logs have MMD after SCT issuance; CompactLog has zero MMD.STH-BOUNDARY VERSIONINGCompactLog versions nodes only at STH publication boundaries:- Update nodes in-memory during batch operations- Store O(log n) versioned nodes only at STH publication- With STHs every k certificates: reduces versioned node storage from O(n log n) to O(n log n / k)Example: Publishing STHs every 1000 certificates reduces versioned node storage overhead by 1000x.Best,PierreOn Fri, Jun 6, 2025, at 22:17, Pierre Barre wrote:Fun, I was toying around the idea of using CT logs to notarize documents few months back, with signatures stored in SANs, I got told off but I still like the idea ;P
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/DS0PR14MB62161BD6A69C1AD3608405E5926EA%40DS0PR14MB6216.namprd14.prod.outlook.com.Attachments:
- smime.p7s
--You received this message because you are subscribed to a topic in the Google Groups "certificate-transparency" group.To unsubscribe from this topic, visit https://groups.google.com/d/topic/certificate-transparency/ViOlp7fEzWQ/unsubscribe.To unsubscribe from this group and all its topics, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/afe2828a-8fef-4914-8b2d-810722c10328%40app.fastmail.com.
--
You received this message because you are subscribed to the Google Groups "certificate-transparency" group.
To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/c82c7eb1-323f-4793-9937-0854f7b6d0ae%40app.fastmail.com.
Hello everyone,I've ingested 54M certificates in CompactLog from real sources (current and past logs).Current storage: 122GB for 54M+ entries (https://compact-log.pre-test.ct.merklemap.com/ct/v1/get-sth). This translates to approximately 236GB per 100M certificates or 2.36TB per billion. I was able to ingest continuously at around 4k-8k entries per second on commodity hardware.For reference, Let's Encrypt's 2019 blog post (https://letsencrypt.org/2019/11/20/how-le-runs-ct-logs/) mentioned their implementation used around 1TB per 100M entries. I wonder if their current numbers are similar.
Best,PierreOn Sun, Jun 8, 2025, at 19:49, Pierre Barre wrote:Now some performance numbers, using a 8 cores (6 years old) cpu and 16GB of memory:Compactlog happily serves:- 5gb/s of get-entries calls:- A little less than 10k add-(pre)-chain requests per second:2025-06-08T17:46:43.654825Z INFO compactlog::storage: Batch stats: 46 batches flushed (avg size: 922, avg time: 91ms), throughput: 8486 entries/sec, queue: 382/20002025-06-08T17:46:48.642678Z INFO compactlog::storage: Batch stats: 46 batches flushed (avg size: 967, avg time: 86ms), throughput: 8904 entries/sec, queue: 429/2000Best,PierreOn Sun, Jun 8, 2025, at 14:44, Pierre Barre wrote:Winston,I've updated the readme with what I hope is some more accurate and clearer wording: https://github.com/Barre/compact_log/commit/a632c92ef292ba6cc1f6e8c8bbe3a102e209acf4I've also added a new section as I just implemented chain deduplication:========================Certificate Chain Deduplication
CompactLog stores certificate chains using content-addressable storage:
- Entry structure: Each log entry stores SHA-256 hashes of certificates rather than the certificates themselves
- Certificate store: Certificates are stored separately under
cert:{hash}keys- Deduplication: Multiple entries referencing the same certificate (e.g., intermediate CA certs) share the same stored copy
- Reconstruction: The API reconstructs full certificate chains by resolving hash references during retrieval
TheDeduplicatedLogEntrystructure contains:
- Certificate hash (32 bytes)
- Chain certificate hashes (array of 32-byte hashes)
- Original metadata (timestamp, index, entry type)
========================Now, I'll ingest few hundreds of millions certificates to check how efficient all this actually is :)Best,PierreOn Sun, Jun 8, 2025, at 04:05, Pierre Barre wrote:Hi Winston,Ah, that makes sense! Thank you, I’ll clear up the wording in the project’s readme.What I was trying to say, is that because the tree is updated _before_ the SCTs are returned, the concept of merge delay doesn’t exist (because if compactlog cannot integrate a new entry, the SCTs just won’t be returned to the clients that are currently waiting).Best,Pierre
--You received this message because you are subscribed to a topic in the Google Groups "certificate-transparency" group.To unsubscribe from this topic, visit https://groups.google.com/d/topic/certificate-transparency/ViOlp7fEzWQ/unsubscribe.To unsubscribe from this group and all its topics, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/6d1eb2d8-3882-4e22-8cbf-87ef751d3382%40app.fastmail.com.
--You received this message because you are subscribed to a topic in the Google Groups "certificate-transparency" group.To unsubscribe from this topic, visit https://groups.google.com/d/topic/certificate-transparency/ViOlp7fEzWQ/unsubscribe.To unsubscribe from this group and all its topics, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/14d48c2a-9583-40ae-b84d-eaa57451175d%40app.fastmail.com.
--You received this message because you are subscribed to a topic in the Google Groups "certificate-transparency" group.To unsubscribe from this topic, visit https://groups.google.com/d/topic/certificate-transparency/ViOlp7fEzWQ/unsubscribe.To unsubscribe from this group and all its topics, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/11b1f516-f331-4cc5-bfd3-6503092116ce%40app.fastmail.com.
--You received this message because you are subscribed to the Google Groups "certificate-transparency" group.To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/d61a3a91-9485-4de9-b480-0108aca9a468%40app.fastmail.com.
I've successfully implemented logic to fetch the CCADB report, and the process went very smoothly. This report has made the implementation much more straightforward than I anticipated. I'm grateful it exists, as I expected significant challenges in fetching and assembling roots.
Rather than adding special handling for these monitoring certificates (which would compromise the clean design), I wanted to ask: Is there any possibility these could be included in report, or are they intentionally excluded from its scope?
Hi Ryan,I've successfully implemented logic to fetch the CCADB report, and the process went very smoothly. This report has made the implementation much more straightforward than I anticipated. I'm grateful it exists, as I expected significant challenges in fetching and assembling roots.Following Filippo and Philippe's suggestion, I've implemented this as a purely additive store:I've encountered one edge case that I wanted to raise.The CCADB report doesn't include certain monitoring certificates, such as "CN=Merge Delay Monitor Root,OU=Certificate Transparency,O=Google UK Ltd.,ST=London,C=GB".While I understand why these may be out of scope for the report, their absence creates a small challenge for my implementation.Rather than adding special handling for these monitoring certificates (which would compromise the clean design), I wanted to ask: Is there any possibility these could be included in report, or are they intentionally excluded from its scope?Thank you again for your help.Best,Pierre
--
You received this message because you are subscribed to the Google Groups "certificate-transparency" group.
To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/207395d5-3ef9-467f-9f70-82f21b147fd3%40app.fastmail.com.
Just curious, how much is "Logical Used" in zfs? And the compression algorithm you use / as well as the recordsize, if you can share that :)
Best,Pierre
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/9b52ece4-13eb-4623-b879-8e06701a05c1%40app.fastmail.com.
We’ve added the compliance monitoring root to the Production Logs report (the report that includes CAs trusted by at least one of the CCADB Root Store Operators). We still need to investigate the endpoint errors you referenced, and we’ll plan to report back shortly after reviewing.
Thank you
-Chris, on behalf of the Chrome CT team
Hello,The endpoints appear to be erroring out quite frequently. While not critical, this may be worth investigating. Unfortunately, I don't have specific statistics as I haven't been keeping logs, but I've seen this quite enough to notice.Here's an example error:2025-06-13T15:18:29.167980Z ERROR compactlog::ccadb: CCADB update failed: Internal error: Failed to read CCADB response: error decoding response bodyBest,Pierre
--
You received this message because you are subscribed to the Google Groups "certificate-transparency" group.
To unsubscribe from this group and stop receiving emails from it, send an email to certificate-transp...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/certificate-transparency/68723675-cf3c-4ab2-a20e-ce8b732edd9e%40app.fastmail.com.