@brightchain/brightchain-lib 0.29.21 → 0.29.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/package.json +1 -1
  2. package/src/lib/errors/ledgerError.d.ts +4 -1
  3. package/src/lib/errors/ledgerError.d.ts.map +1 -1
  4. package/src/lib/errors/ledgerError.js +3 -0
  5. package/src/lib/errors/ledgerError.js.map +1 -1
  6. package/src/lib/interfaces/ledger/consistencyProof.d.ts +22 -0
  7. package/src/lib/interfaces/ledger/consistencyProof.d.ts.map +1 -0
  8. package/src/lib/interfaces/ledger/consistencyProof.js +12 -0
  9. package/src/lib/interfaces/ledger/consistencyProof.js.map +1 -0
  10. package/src/lib/interfaces/ledger/index.d.ts +4 -0
  11. package/src/lib/interfaces/ledger/index.d.ts.map +1 -1
  12. package/src/lib/interfaces/ledger/index.js +4 -1
  13. package/src/lib/interfaces/ledger/index.js.map +1 -1
  14. package/src/lib/interfaces/ledger/merkleProof.d.ts +42 -0
  15. package/src/lib/interfaces/ledger/merkleProof.d.ts.map +1 -0
  16. package/src/lib/interfaces/ledger/merkleProof.js +23 -0
  17. package/src/lib/interfaces/ledger/merkleProof.js.map +1 -0
  18. package/src/lib/interfaces/ledger/proofVerificationResult.d.ts +19 -0
  19. package/src/lib/interfaces/ledger/proofVerificationResult.d.ts.map +1 -0
  20. package/src/lib/interfaces/ledger/proofVerificationResult.js +12 -0
  21. package/src/lib/interfaces/ledger/proofVerificationResult.js.map +1 -0
  22. package/src/lib/interfaces/ledger/validationResult.d.ts +1 -1
  23. package/src/lib/interfaces/ledger/validationResult.d.ts.map +1 -1
  24. package/src/lib/ledger/incrementalMerkleTree.d.ts +179 -0
  25. package/src/lib/ledger/incrementalMerkleTree.d.ts.map +1 -0
  26. package/src/lib/ledger/incrementalMerkleTree.js +372 -0
  27. package/src/lib/ledger/incrementalMerkleTree.js.map +1 -0
  28. package/src/lib/ledger/ledger.d.ts +91 -1
  29. package/src/lib/ledger/ledger.d.ts.map +1 -1
  30. package/src/lib/ledger/ledger.js +363 -10
  31. package/src/lib/ledger/ledger.js.map +1 -1
  32. package/src/lib/ledger/ledgerChainValidator.d.ts +48 -2
  33. package/src/lib/ledger/ledgerChainValidator.d.ts.map +1 -1
  34. package/src/lib/ledger/ledgerChainValidator.js +145 -2
  35. package/src/lib/ledger/ledgerChainValidator.js.map +1 -1
  36. package/src/lib/ledger/proofSerializer.d.ts +60 -0
  37. package/src/lib/ledger/proofSerializer.d.ts.map +1 -0
  38. package/src/lib/ledger/proofSerializer.js +206 -0
  39. package/src/lib/ledger/proofSerializer.js.map +1 -0
@@ -29,11 +29,13 @@ const rawData_1 = require("../blocks/rawData");
29
29
  const blockDataType_1 = require("../enumerations/blockDataType");
30
30
  const blockType_1 = require("../enumerations/blockType");
31
31
  const ledgerError_1 = require("../errors/ledgerError");
32
+ const merkleProof_1 = require("../interfaces/ledger/merkleProof");
32
33
  const checksum_service_1 = require("../services/checksum.service");
33
34
  const checksum_1 = require("../types/checksum");
34
35
  const xorUtils_1 = require("../utils/xorUtils");
35
36
  const authorizedSignerSet_1 = require("./authorizedSignerSet");
36
37
  const governancePayloadSerializer_1 = require("./governancePayloadSerializer");
38
+ const incrementalMerkleTree_1 = require("./incrementalMerkleTree");
37
39
  /** Magic bytes identifying a ledger metadata block: "LMET" in ASCII. */
38
40
  const METADATA_MAGIC = 0x4c4d4554;
39
41
  /** Current metadata format version. */
@@ -83,6 +85,7 @@ class Ledger {
83
85
  governanceSerializer;
84
86
  index = new Map();
85
87
  checksumService = new checksum_service_1.ChecksumService();
88
+ merkleTree;
86
89
  _length = 0;
87
90
  _head = null;
88
91
  _headEntryHash = null;
@@ -93,6 +96,7 @@ class Ledger {
93
96
  this.serializer = serializer;
94
97
  this.ledgerId = ledgerId;
95
98
  this.governanceSerializer = governanceSerializer;
99
+ this.merkleTree = new incrementalMerkleTree_1.IncrementalMerkleTree(this.checksumService);
96
100
  }
97
101
  // ── Public getters ────────────────────────────────────────────────
98
102
  /** Current chain length. */
@@ -107,6 +111,16 @@ class Ledger {
107
111
  get quorumPolicy() {
108
112
  return this._authorizedSignerSet?.quorumPolicy;
109
113
  }
114
+ /**
115
+ * Current Merkle root, or null if the ledger is empty.
116
+ * @see Requirements 9.1, 7.1
117
+ */
118
+ get merkleRoot() {
119
+ if (this.merkleTree.size === 0) {
120
+ return null;
121
+ }
122
+ return this.merkleTree.root;
123
+ }
110
124
  // ── Append ────────────────────────────────────────────────────────
111
125
  /**
112
126
  * Append a new entry to the ledger.
@@ -242,6 +256,34 @@ class Ledger {
242
256
  }
243
257
  return this.getEntry(this._length - 1);
244
258
  }
259
+ // ── Merkle proof operations ───────────────────────────────────────
260
+ /**
261
+ * Get an inclusion proof for the entry at the given sequence number.
262
+ *
263
+ * @param sequenceNumber - Zero-based sequence number of the entry
264
+ * @returns An IMerkleProof with the authentication path from leaf to root
265
+ * @throws LedgerError(MerkleProofFailed) if sequenceNumber is out of range
266
+ *
267
+ * @see Requirements 9.2, 18.1
268
+ */
269
+ getInclusionProof(sequenceNumber) {
270
+ if (sequenceNumber < 0 || sequenceNumber >= this._length) {
271
+ throw new ledgerError_1.LedgerError(ledgerError_1.LedgerErrorType.MerkleProofFailed, `Sequence number ${sequenceNumber} is out of range [0, ${this._length})`);
272
+ }
273
+ return this.merkleTree.getInclusionProof(sequenceNumber);
274
+ }
275
+ /**
276
+ * Get a consistency proof between an earlier length and the current length.
277
+ *
278
+ * @param earlierLength - The earlier ledger length M
279
+ * @returns An IConsistencyProof with the intermediate hashes
280
+ * @throws LedgerError(ConsistencyProofFailed) if earlierLength > current length
281
+ *
282
+ * @see Requirements 9.3
283
+ */
284
+ getConsistencyProof(earlierLength) {
285
+ return this.merkleTree.getConsistencyProof(earlierLength);
286
+ }
245
287
  // ── Private: genesis entry handling ───────────────────────────────
246
288
  /**
247
289
  * Handle the genesis entry for a governance-enabled ledger.
@@ -307,6 +349,8 @@ class Ledger {
307
349
  this._length = sequenceNumber + 1;
308
350
  this._head = blockChecksum;
309
351
  this._headEntryHash = entryHash;
352
+ // 6b. Append entry hash to Merkle tree (Req 2.1, 7.1)
353
+ this.merkleTree.append(entryHash);
310
354
  // 7. Persist metadata block
311
355
  try {
312
356
  await this.persistMetadata();
@@ -328,7 +372,7 @@ class Ledger {
328
372
  /**
329
373
  * Serialize the current metadata into binary.
330
374
  *
331
- * Format:
375
+ * Format (version 0x0001):
332
376
  * magic 4 bytes 0x4C4D4554 ("LMET")
333
377
  * version 2 bytes 0x0001
334
378
  * ledgerIdLength 4 bytes uint32 BE
@@ -336,22 +380,40 @@ class Ledger {
336
380
  * length 4 bytes uint32 BE
337
381
  * hasHead 1 byte 0x00 or 0x01
338
382
  * headChecksum 0|64 SHA3-512 bytes (block checksum of head)
383
+ * hasMerkleRoot 1 byte 0x00 or 0x01
384
+ * merkleRoot 0|64 SHA3-512 Merkle root
385
+ * frontierCount 2 bytes uint16 BE — number of frontier hashes
386
+ * frontier var frontierCount × 64 bytes SHA3-512 hashes
339
387
  * index entries var seqNum (uint32 BE) + blockChecksum (64 bytes)
388
+ *
389
+ * @see Requirements 7.1, 7.3, 8.1, 8.4
340
390
  */
341
391
  serializeMetadata() {
342
392
  const encoder = new TextEncoder();
343
393
  const ledgerIdBytes = encoder.encode(this.ledgerId);
344
394
  const headBytes = this._head ? this._head.toUint8Array() : null;
395
+ // Merkle root: present when tree has leaves
396
+ const hasMerkleRoot = this.merkleTree.size > 0;
397
+ const merkleRootBytes = hasMerkleRoot
398
+ ? this.merkleTree.root.toUint8Array()
399
+ : null;
400
+ // Frontier hashes
401
+ const frontier = this.merkleTree.currentFrontier;
402
+ const frontierCount = frontier.length;
345
403
  const indexEntrySize = 4 + HASH_LENGTH;
346
404
  const indexSize = this._length * indexEntrySize;
347
- const size = 4 +
348
- 2 +
349
- 4 +
350
- ledgerIdBytes.length +
351
- 4 +
352
- 1 +
353
- (headBytes ? HASH_LENGTH : 0) +
354
- indexSize;
405
+ const size = 4 + // magic
406
+ 2 + // version
407
+ 4 + // ledgerIdLength
408
+ ledgerIdBytes.length + // ledgerId
409
+ 4 + // length
410
+ 1 + // hasHead
411
+ (headBytes ? HASH_LENGTH : 0) + // headChecksum
412
+ 1 + // hasMerkleRoot
413
+ (merkleRootBytes ? HASH_LENGTH : 0) + // merkleRoot
414
+ 2 + // frontierCount
415
+ frontierCount * HASH_LENGTH + // frontier hashes
416
+ indexSize; // index entries
355
417
  const buf = new Uint8Array(size);
356
418
  const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
357
419
  let offset = 0;
@@ -375,6 +437,25 @@ class Ledger {
375
437
  buf[offset] = 0x00;
376
438
  offset += 1;
377
439
  }
440
+ // Merkle root (Req 7.1)
441
+ if (merkleRootBytes) {
442
+ buf[offset] = 0x01;
443
+ offset += 1;
444
+ buf.set(merkleRootBytes, offset);
445
+ offset += HASH_LENGTH;
446
+ }
447
+ else {
448
+ buf[offset] = 0x00;
449
+ offset += 1;
450
+ }
451
+ // Frontier (Req 8.1, 8.4)
452
+ view.setUint16(offset, frontierCount, false);
453
+ offset += 2;
454
+ for (const hash of frontier) {
455
+ buf.set(hash.toUint8Array(), offset);
456
+ offset += HASH_LENGTH;
457
+ }
458
+ // Index entries
378
459
  for (let i = 0; i < this._length; i++) {
379
460
  const checksum = this.index.get(i);
380
461
  if (checksum) {
@@ -403,6 +484,192 @@ class Ledger {
403
484
  const block = new LedgerMetadataBlock(this.blockSize, padded, metadataKey);
404
485
  await this.store.setData(block);
405
486
  }
487
+ // ── Static proof verification ───────────────────────────────────
488
+ /**
489
+ * Verify an inclusion proof against a Merkle root.
490
+ * Static — no Ledger instance needed. Suitable for light clients.
491
+ *
492
+ * Recomputes hashes from the leaf to the root using the proof path,
493
+ * then compares the result to the provided Merkle root.
494
+ *
495
+ * @param proof - The inclusion proof to verify
496
+ * @param merkleRoot - The expected Merkle root
497
+ * @returns An IProofVerificationResult indicating success or failure
498
+ *
499
+ * @see Requirements 9.4, 4.1, 4.2, 4.3, 4.4, 15.3, 18.3
500
+ */
501
+ static verifyInclusionProof(proof, merkleRoot) {
502
+ // Validate proof structure: path length vs tree size
503
+ if (proof.treeSize === 1) {
504
+ if (proof.path.length !== 0) {
505
+ return {
506
+ isValid: false,
507
+ error: `Malformed proof: treeSize is 1 but path length is ${proof.path.length} (expected 0)`,
508
+ };
509
+ }
510
+ }
511
+ else if (proof.treeSize > 1) {
512
+ if (proof.path.length === 0) {
513
+ return {
514
+ isValid: false,
515
+ error: `Malformed proof: treeSize is ${proof.treeSize} but path length is 0 (expected > 0)`,
516
+ };
517
+ }
518
+ }
519
+ const checksumService = new checksum_service_1.ChecksumService();
520
+ let current = proof.leafHash;
521
+ for (const step of proof.path) {
522
+ const currentBytes = current.toUint8Array();
523
+ const stepBytes = step.hash.toUint8Array();
524
+ const combined = new Uint8Array(currentBytes.length + stepBytes.length);
525
+ if (step.direction === merkleProof_1.MerkleDirection.LEFT) {
526
+ // Sibling is on the left: SHA3-512(sibling || current)
527
+ combined.set(stepBytes, 0);
528
+ combined.set(currentBytes, stepBytes.length);
529
+ }
530
+ else {
531
+ // Sibling is on the right: SHA3-512(current || sibling)
532
+ combined.set(currentBytes, 0);
533
+ combined.set(stepBytes, currentBytes.length);
534
+ }
535
+ current = checksumService.calculateChecksum(combined);
536
+ }
537
+ if (current.equals(merkleRoot)) {
538
+ return { isValid: true };
539
+ }
540
+ return { isValid: false, error: 'Root mismatch' };
541
+ }
542
+ /**
543
+ * Verify a consistency proof between two Merkle roots.
544
+ * Static — no Ledger instance needed.
545
+ *
546
+ * Implements the RFC 6962 Section 2.1.4 consistency proof verification
547
+ * algorithm. The proof hashes are consumed in order to reconstruct both
548
+ * the earlier and later roots.
549
+ *
550
+ * @param proof - The consistency proof to verify
551
+ * @param earlierRoot - The Merkle root at the earlier length
552
+ * @param laterRoot - The Merkle root at the later length
553
+ * @param earlierLength - The earlier ledger length M
554
+ * @param laterLength - The later ledger length N
555
+ * @returns An IProofVerificationResult indicating success or failure
556
+ *
557
+ * @see Requirements 9.5, 6.1, 6.2, 6.3
558
+ */
559
+ static verifyConsistencyProof(proof, earlierRoot, laterRoot, earlierLength, laterLength) {
560
+ // Trivial cases: M=0 or M=N
561
+ if (earlierLength === 0) {
562
+ // Empty tree is trivially consistent with any later state
563
+ return { isValid: true };
564
+ }
565
+ if (earlierLength === laterLength) {
566
+ // Same size — roots must match, proof should be empty
567
+ if (earlierRoot.equals(laterRoot)) {
568
+ return { isValid: true };
569
+ }
570
+ return { isValid: false, error: 'Root mismatch for same-size trees' };
571
+ }
572
+ if (earlierLength > laterLength) {
573
+ return {
574
+ isValid: false,
575
+ error: `Earlier length ${earlierLength} exceeds later length ${laterLength}`,
576
+ };
577
+ }
578
+ if (proof.hashes.length === 0) {
579
+ return {
580
+ isValid: false,
581
+ error: 'Empty proof for non-trivial consistency check',
582
+ };
583
+ }
584
+ const checksumService = new checksum_service_1.ChecksumService();
585
+ // RFC 6962 Section 2.1.4 verification algorithm
586
+ // Walk the decomposition path to determine how proof hashes combine
587
+ // to reconstruct both the earlier and later roots.
588
+ let hashIndex = 0;
589
+ let fn = earlierLength - 1; // last node index in earlier tree
590
+ let sn = laterLength - 1; // last node index in later tree
591
+ // Remove common left-spine: while fn is odd (fn is a right child),
592
+ // shift both down. This finds the position of the old tree's root
593
+ // in the decomposition.
594
+ while (fn % 2 === 1) {
595
+ fn >>>= 1;
596
+ sn >>>= 1;
597
+ }
598
+ // When fn === 0 after the loop, M was a power of 2. In this case,
599
+ // the proof generation omits the old root (startFromOldRoot=true),
600
+ // so the verifier must use earlierRoot as the starting hash.
601
+ let fr;
602
+ let sr;
603
+ if (fn === 0) {
604
+ // M is a power of 2: old root was omitted from proof
605
+ fr = earlierRoot;
606
+ sr = earlierRoot;
607
+ }
608
+ else {
609
+ // M is not a power of 2: first proof hash is the old subtree root
610
+ if (hashIndex >= proof.hashes.length) {
611
+ return {
612
+ isValid: false,
613
+ error: 'Proof too short',
614
+ };
615
+ }
616
+ fr = proof.hashes[hashIndex];
617
+ sr = proof.hashes[hashIndex];
618
+ hashIndex++;
619
+ }
620
+ while (sn > 0) {
621
+ if (hashIndex >= proof.hashes.length) {
622
+ return {
623
+ isValid: false,
624
+ error: 'Proof too short',
625
+ };
626
+ }
627
+ const nextHash = proof.hashes[hashIndex];
628
+ hashIndex++;
629
+ if (fn % 2 === 1 || fn === sn) {
630
+ // The next hash is on the left; both fr and sr get it prepended
631
+ fr = Ledger.hashChildren(checksumService, nextHash, fr);
632
+ sr = Ledger.hashChildren(checksumService, nextHash, sr);
633
+ // If fn is odd, keep going up while fn is odd
634
+ while (fn !== 0 && fn % 2 === 1) {
635
+ fn >>>= 1;
636
+ sn >>>= 1;
637
+ }
638
+ }
639
+ else {
640
+ // The next hash is on the right; only sr gets it appended
641
+ sr = Ledger.hashChildren(checksumService, sr, nextHash);
642
+ }
643
+ fn >>>= 1;
644
+ sn >>>= 1;
645
+ }
646
+ // Verify both reconstructed roots match
647
+ if (!fr.equals(earlierRoot)) {
648
+ return {
649
+ isValid: false,
650
+ error: 'Consistency proof failed: earlier root mismatch',
651
+ };
652
+ }
653
+ if (!sr.equals(laterRoot)) {
654
+ return {
655
+ isValid: false,
656
+ error: 'Consistency proof failed: later root mismatch',
657
+ };
658
+ }
659
+ return { isValid: true };
660
+ }
661
+ /**
662
+ * Hash two child nodes: SHA3-512(left || right).
663
+ * Helper for static verification methods.
664
+ */
665
+ static hashChildren(checksumService, left, right) {
666
+ const leftBytes = left.toUint8Array();
667
+ const rightBytes = right.toUint8Array();
668
+ const combined = new Uint8Array(leftBytes.length + rightBytes.length);
669
+ combined.set(leftBytes, 0);
670
+ combined.set(rightBytes, leftBytes.length);
671
+ return checksumService.calculateChecksum(combined);
672
+ }
406
673
  // ── Static load ───────────────────────────────────────────────────
407
674
  /**
408
675
  * Load ledger state from the block store.
@@ -454,6 +721,9 @@ class Ledger {
454
721
  if (governanceSerializer) {
455
722
  await ledger.replayGovernance();
456
723
  }
724
+ // Restore Merkle tree from persisted frontier or rebuild from leaves
725
+ // @see Requirements 7.2, 8.2, 8.3
726
+ await ledger.restoreMerkleTree(parsed.merkleRoot, parsed.frontier, parsed.length, store, serializer);
457
727
  return ledger;
458
728
  }
459
729
  /**
@@ -485,8 +755,63 @@ class Ledger {
485
755
  }
486
756
  }
487
757
  }
758
+ /**
759
+ * Restore the Merkle tree during `Ledger.load()`.
760
+ *
761
+ * Strategy:
762
+ * 1. If a Merkle root and frontier are persisted, attempt fast restoration
763
+ * via `IncrementalMerkleTree.fromFrontier()`. Verify the restored root
764
+ * matches the persisted root.
765
+ * 2. On mismatch, fall back to full reconstruction from entry hashes.
766
+ * 3. If no Merkle root in metadata, rebuild from all entry hashes.
767
+ *
768
+ * @see Requirements 7.2, 8.2, 8.3
769
+ */
770
+ async restoreMerkleTree(persistedMerkleRoot, persistedFrontier, entryCount, store, serializer) {
771
+ // Case 1: Frontier-based fast restoration
772
+ if (persistedMerkleRoot !== null && persistedFrontier.length > 0) {
773
+ const restored = incrementalMerkleTree_1.IncrementalMerkleTree.fromFrontier(persistedFrontier, entryCount, this.checksumService);
774
+ if (restored.root.equals(persistedMerkleRoot)) {
775
+ // Frontier restoration succeeded — use the restored tree
776
+ this.merkleTree = restored;
777
+ return;
778
+ }
779
+ // Mismatch — fall back to full reconstruction (Req 8.3)
780
+ console.warn(`Merkle frontier restoration root mismatch for ledger "${this.ledgerId}". ` +
781
+ `Persisted root does not match frontier-computed root. ` +
782
+ `Falling back to full reconstruction from entry hashes.`);
783
+ }
784
+ // Case 2: No Merkle root in metadata, or frontier mismatch fallback —
785
+ // rebuild from all entry hashes
786
+ if (entryCount > 0) {
787
+ const entryHashes = [];
788
+ for (let i = 0; i < entryCount; i++) {
789
+ const blockChecksum = this.index.get(i);
790
+ if (blockChecksum === undefined) {
791
+ continue;
792
+ }
793
+ try {
794
+ const block = await store.getData(blockChecksum);
795
+ const unpadded = (0, xorUtils_1.unpadCblData)(block.data);
796
+ const entry = serializer.deserialize(unpadded);
797
+ entryHashes.push(entry.entryHash);
798
+ }
799
+ catch {
800
+ // Skip unreadable entries — degraded state
801
+ }
802
+ }
803
+ if (entryHashes.length > 0) {
804
+ this.merkleTree = incrementalMerkleTree_1.IncrementalMerkleTree.fromLeaves(entryHashes, this.checksumService);
805
+ }
806
+ }
807
+ }
488
808
  /**
489
809
  * Parse a metadata block's binary content.
810
+ *
811
+ * Returns the parsed fields including Merkle root and frontier
812
+ * so that `Ledger.load()` can restore the Merkle tree state.
813
+ *
814
+ * @see Requirements 7.2, 7.3, 8.1, 8.4
490
815
  */
491
816
  static parseMetadata(data) {
492
817
  if (data.length < 11) {
@@ -538,6 +863,34 @@ class Ledger {
538
863
  headChecksum = checksum_1.Checksum.fromUint8Array(data.slice(offset, offset + HASH_LENGTH));
539
864
  offset += HASH_LENGTH;
540
865
  }
866
+ // hasMerkleRoot (Req 7.2)
867
+ let merkleRoot = null;
868
+ if (offset + 1 > data.length) {
869
+ throw new ledgerError_1.LedgerError(ledgerError_1.LedgerErrorType.MetadataCorrupted, 'Metadata hasMerkleRoot field overflows');
870
+ }
871
+ const hasMerkleRoot = data[offset];
872
+ offset += 1;
873
+ if (hasMerkleRoot === 0x01) {
874
+ if (offset + HASH_LENGTH > data.length) {
875
+ throw new ledgerError_1.LedgerError(ledgerError_1.LedgerErrorType.MetadataCorrupted, 'Metadata merkleRoot overflows');
876
+ }
877
+ merkleRoot = checksum_1.Checksum.fromUint8Array(data.slice(offset, offset + HASH_LENGTH));
878
+ offset += HASH_LENGTH;
879
+ }
880
+ // frontierCount + frontier hashes (Req 8.4)
881
+ const frontier = [];
882
+ if (offset + 2 > data.length) {
883
+ throw new ledgerError_1.LedgerError(ledgerError_1.LedgerErrorType.MetadataCorrupted, 'Metadata frontierCount field overflows');
884
+ }
885
+ const frontierCount = view.getUint16(offset, false);
886
+ offset += 2;
887
+ if (offset + frontierCount * HASH_LENGTH > data.length) {
888
+ throw new ledgerError_1.LedgerError(ledgerError_1.LedgerErrorType.MetadataCorrupted, 'Metadata frontier hashes overflow');
889
+ }
890
+ for (let i = 0; i < frontierCount; i++) {
891
+ frontier.push(checksum_1.Checksum.fromUint8Array(data.slice(offset, offset + HASH_LENGTH)));
892
+ offset += HASH_LENGTH;
893
+ }
541
894
  // Parse index entries: each is seqNum (4) + checksum (64) = 68 bytes
542
895
  const index = new Map();
543
896
  const indexEntrySize = 4 + HASH_LENGTH;
@@ -548,7 +901,7 @@ class Ledger {
548
901
  offset += HASH_LENGTH;
549
902
  index.set(seqNum, blockChecksum);
550
903
  }
551
- return { ledgerId, length, headChecksum, index };
904
+ return { ledgerId, length, headChecksum, merkleRoot, frontier, index };
552
905
  }
553
906
  }
554
907
  exports.Ledger = Ledger;
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/ledger/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/ledger/ledger.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,9 @@
13
13
  */
14
14
  import { ILedgerEntry } from '../interfaces/ledger/ledgerEntry';
15
15
  import { ILedgerSignatureVerifier } from '../interfaces/ledger/ledgerSignatureVerifier';
16
+ import { IMerkleProof } from '../interfaces/ledger/merkleProof';
16
17
  import { IValidationResult } from '../interfaces/ledger/validationResult';
18
+ import { Checksum } from '../types/checksum';
17
19
  import { AuthorizedSignerSet } from './authorizedSignerSet';
18
20
  import { GovernancePayloadSerializer } from './governancePayloadSerializer';
19
21
  import { LedgerEntrySerializer } from './ledgerEntrySerializer';
@@ -43,8 +45,19 @@ export declare class LedgerChainValidator {
43
45
  * - Each entry's signer is authorized at that chain position
44
46
  * - Governance entries have admin role and satisfy quorum
45
47
  * - Governance actions pass safety constraints
48
+ *
49
+ * When a merkleRoot is provided, also validates:
50
+ * - Reconstructs the Merkle tree from entry hashes
51
+ * - Verifies the computed root matches the provided Merkle root
52
+ *
53
+ * @param entries - The chain entries to validate
54
+ * @param merkleRoot - Optional Merkle root to verify against. When provided,
55
+ * the validator reconstructs the Merkle tree from entry hashes and compares
56
+ * the computed root to this value.
57
+ *
58
+ * @see Requirements 11.1, 11.3, 11.4
46
59
  */
47
- validateAll(entries: ILedgerEntry[]): IValidationResult;
60
+ validateAll(entries: ILedgerEntry[], merkleRoot?: Checksum): IValidationResult;
48
61
  /**
49
62
  * Validate a sub-range of entries, including the link to the predecessor.
50
63
  *
@@ -53,8 +66,41 @@ export declare class LedgerChainValidator {
53
66
  * the sub-range starts at genesis.
54
67
  * @param signerSetAtPredecessor - Optional AuthorizedSignerSet state at the predecessor
55
68
  * for governance validation of the sub-range.
69
+ * @param merkleRoot - Optional Merkle root to verify entry hashes against.
70
+ * When provided along with merkleProofs, each entry's entryHash is verified
71
+ * against its corresponding Merkle proof.
72
+ * @param merkleProofs - Optional array of Merkle proofs corresponding 1:1 with
73
+ * the entries array. Required for Merkle validation when merkleRoot is provided.
74
+ *
75
+ * @see Requirements 11.2
76
+ */
77
+ validateRange(entries: ILedgerEntry[], predecessor: ILedgerEntry | null, signerSetAtPredecessor?: AuthorizedSignerSet, merkleRoot?: Checksum, merkleProofs?: IMerkleProof[]): IValidationResult;
78
+ /**
79
+ * Validate the entire chain in parallel by splitting into chunks and
80
+ * verifying each chunk concurrently via Promise.all.
81
+ *
82
+ * Produces the same validation result as sequential `validateAll()`:
83
+ * same `isValid`, same `entriesChecked`, same error types (though error
84
+ * ordering may differ).
85
+ *
86
+ * Hash verification and signature verification — the expensive operations —
87
+ * run in parallel across chunks. Governance validation is run as a separate
88
+ * sequential pass since it requires tracking the AuthorizedSignerSet state
89
+ * across the chain.
90
+ *
91
+ * @param entries - The chain entries to validate (ordered by sequenceNumber from 0)
92
+ * @param merkleRoot - Optional Merkle root to verify against
93
+ * @returns Promise resolving to the same IValidationResult as validateAll()
94
+ *
95
+ * @see Requirements 17.1, 17.2, 17.3
96
+ */
97
+ validateAllParallel(entries: ILedgerEntry[], merkleRoot?: Checksum): Promise<IValidationResult>;
98
+ /**
99
+ * Run governance validation sequentially across the full chain.
100
+ * This is separated from the parallel chunk validation because governance
101
+ * requires tracking the AuthorizedSignerSet state across entries.
56
102
  */
57
- validateRange(entries: ILedgerEntry[], predecessor: ILedgerEntry | null, signerSetAtPredecessor?: AuthorizedSignerSet): IValidationResult;
103
+ private validateGovernanceSequential;
58
104
  /**
59
105
  * Initialize the AuthorizedSignerSet from a genesis entry.
60
106
  * Returns the signer set, or null if the genesis is not a valid governance payload.
@@ -1 +1 @@
1
- {"version":3,"file":"ledgerChainValidator.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/ledger/ledgerChainValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAEL,iBAAiB,EAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAFrB,UAAU,EAAE,qBAAqB,EACjC,iBAAiB,EAAE,wBAAwB,EAC3C,oBAAoB,CAAC,EAAE,2BAA2B,YAAA;IAGrE;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,iBAAiB;IAsEvD;;;;;;;;OAQG;IACH,aAAa,CACX,OAAO,EAAE,YAAY,EAAE,EACvB,WAAW,EAAE,YAAY,GAAG,IAAI,EAChC,sBAAsB,CAAC,EAAE,mBAAmB,GAC3C,iBAAiB;IAyFpB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAmDhC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IA0ElC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAcvB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAkBxB"}
1
+ {"version":3,"file":"ledgerChainValidator.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/ledger/ledgerChainValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAEL,iBAAiB,EAClB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAFrB,UAAU,EAAE,qBAAqB,EACjC,iBAAiB,EAAE,wBAAwB,EAC3C,oBAAoB,CAAC,EAAE,2BAA2B,YAAA;IAGrE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,iBAAiB;IAsF9E;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CACX,OAAO,EAAE,YAAY,EAAE,EACvB,WAAW,EAAE,YAAY,GAAG,IAAI,EAChC,sBAAsB,CAAC,EAAE,mBAAmB,EAC5C,UAAU,CAAC,EAAE,QAAQ,EACrB,YAAY,CAAC,EAAE,YAAY,EAAE,GAC5B,iBAAiB;IAwGpB;;;;;;;;;;;;;;;;;;OAkBG;IACG,mBAAmB,CACvB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,CAAC,EAAE,QAAQ,GACpB,OAAO,CAAC,iBAAiB,CAAC;IAkF7B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAuBpC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAmDhC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IA0ElC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAcvB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAkBxB"}