STreaming ARchives: stricter, verifiable, deterministic, highly compressible alternatives to CAR files for atproto repositories.
atproto car
9
fork

Configure Feed

Select the types of activity you want to include in your feed.

better freezing check

phil 966a07a2 72b537d3

+10 -6
+10 -6
star-lite/readme.md
··· 224 224 225 225 def verify(key_record_pairs, expected_root_cid): 226 226 stack: list[MstNode] = [] 227 + prev_layer = -1 227 228 228 229 for (key, record) in key_record_pairs: 229 230 record_cid = compute_cid(record) ··· 231 232 while len(stack) <= key_layer: 232 233 stack.append(MstNode()) 233 234 234 - for i in range(key_layer): 235 - if stack[i].is_empty(): 236 - continue 237 - (node_cid, _) = encode_mst_node(stack[i]) 238 - stack[i + 1].attach_subtree(node_cid) 239 - stack[i] = MstNode() # empty it 235 + # when `key` is at a higher layer than last, freeze all layers below 236 + if key_layer > prev_layer: 237 + for i in range(key_layer): 238 + if stack[i].is_empty(): 239 + continue 240 + (node_cid, _) = encode_mst_node(stack[i]) 241 + stack[i + 1].attach_subtree(node_cid) 242 + stack[i] = MstNode() # empty it 240 243 241 244 stack[key_layer].entries.append(Leaf(key, record_cid, car_run=None)) 245 + prev_layer = key_layer 242 246 243 247 # Fold remaining stack bottom-up. 244 248 node_cid = None