@moid each message signs itself just like current SSB feed format. What is different here is that you can optionally include signatures that spans a range. So lets say you get the first 100 messages from a feed and the author chose to also include signatures for every 25 messages. Then you can check the signatures on message with sequence 25 that covers seq 1-24 and then the signature on the message 25 itself. Similarly for sequence 50 you check sequence 26-49 and then the direct signature on message 50. That way you end up checking 8 signatures instead of 100. This is only for the signature part, you do all the normal checks on the other messages including checking backlinks etc.
We have this kind of debounced validation in db2 already so we should be able to leverage this for the above.
Some numbers from the prototype:
checking 1 feed of 7797 messages db query: 934.799ms validate classic js: 1.497s validate classic rust (chunk size 100): 643.784ms validate classic rust (chunk size all): 367.473ms extract data: 57.453ms single message validation: 713.28ms next two are validation in bulk: verify simple & hash: 61.372ms verify signature: 61.289ms encode butt2 to bipf for db: 78.488ms encode classic to bipf for db: 211.728ms
I'm currrently tidying up the prototype and splitting out the code into a proper module that will hopefully be public within the next week.