@@ -7,16 +7,10 @@ use std::{
7
7
8
8
use anyhow:: { Context , anyhow} ;
9
9
10
- use mithril_cardano_node_internal_database:: {
11
- digesters:: { CardanoImmutableDigester , ImmutableDigester } ,
12
- entities:: ImmutableFile ,
13
- } ;
10
+ use mithril_cardano_node_internal_database:: entities:: ImmutableFile ;
14
11
use mithril_common:: {
15
- crypto_helper:: { MKProof , MKTree , MKTreeNode , MKTreeStoreInMemory } ,
16
- entities:: {
17
- DigestLocation , HexEncodedDigest , ImmutableFileName , ImmutableFileNumber ,
18
- ProtocolMessagePartKey ,
19
- } ,
12
+ crypto_helper:: { MKTree , MKTreeNode , MKTreeStoreInMemory } ,
13
+ entities:: { DigestLocation , HexEncodedDigest , ImmutableFileName , ProtocolMessagePartKey } ,
20
14
messages:: {
21
15
CardanoDatabaseDigestListItemMessage , CardanoDatabaseSnapshotMessage , CertificateMessage ,
22
16
DigestsMessagePart ,
@@ -30,8 +24,6 @@ use crate::{
30
24
utils:: { create_directory_if_not_exists, delete_directory, read_files_in_directory} ,
31
25
} ;
32
26
33
- use super :: immutable_file_range:: ImmutableFileRange ;
34
-
35
27
/// Represents the verified digests and the Merkle tree built from them.
36
28
pub struct VerifiedDigests {
37
29
/// A map of immutable file names to their corresponding verified digests.
@@ -54,31 +46,6 @@ impl InternalArtifactProver {
54
46
}
55
47
}
56
48
57
- /// Compute the Merkle proof of membership for the given immutable file range.
58
- pub async fn compute_merkle_proof (
59
- & self ,
60
- certificate : & CertificateMessage ,
61
- last_immutable_file_number_from_beacon : ImmutableFileNumber ,
62
- immutable_file_range : & ImmutableFileRange ,
63
- database_dir : & Path ,
64
- verified_digests : & VerifiedDigests ,
65
- ) -> MithrilResult < MKProof > {
66
- let network = certificate. metadata . network . clone ( ) ;
67
- let immutable_file_number_range =
68
- immutable_file_range. to_range_inclusive ( last_immutable_file_number_from_beacon) ?;
69
- let immutable_digester = CardanoImmutableDigester :: new ( network, None , self . logger . clone ( ) ) ;
70
- let computed_digests = immutable_digester
71
- . compute_digests_for_range ( database_dir, & immutable_file_number_range)
72
- . await ?
73
- . entries
74
- . values ( )
75
- . map ( MKTreeNode :: from)
76
- . collect :: < Vec < _ > > ( ) ;
77
-
78
- verified_digests. merkle_tree . compute_proof ( & computed_digests)
79
- // merkle_tree.compute_proof(&computed_digests)
80
- }
81
-
82
49
fn check_merkle_root_is_signed_by_certificate (
83
50
certificate : & CertificateMessage ,
84
51
merkle_root : & MKTreeNode ,
@@ -231,7 +198,6 @@ mod tests {
231
198
use std:: path:: Path ;
232
199
use std:: sync:: Arc ;
233
200
234
- use mithril_cardano_node_internal_database:: test:: DummyCardanoDbBuilder ;
235
201
use mithril_common:: {
236
202
entities:: { CardanoDbBeacon , Epoch , HexEncodedDigest } ,
237
203
messages:: CardanoDatabaseDigestListItemMessage ,
@@ -245,61 +211,15 @@ mod tests {
245
211
246
212
use super :: * ;
247
213
248
- mod compute_merkle_proof {
249
-
250
- use std:: ops:: RangeInclusive ;
251
-
214
+ mod download_and_verify_digests {
252
215
use mithril_common:: {
253
216
StdResult ,
254
- entities:: { ImmutableFileNumber , ProtocolMessage , ProtocolMessagePartKey } ,
217
+ entities:: { ProtocolMessage , ProtocolMessagePartKey } ,
255
218
messages:: DigestsMessagePart ,
256
219
} ;
257
220
258
221
use super :: * ;
259
222
260
- async fn prepare_db_and_verified_digests (
261
- dir_name : & str ,
262
- beacon : & CardanoDbBeacon ,
263
- immutable_file_range : & RangeInclusive < ImmutableFileNumber > ,
264
- ) -> ( PathBuf , CertificateMessage , VerifiedDigests ) {
265
- let certificate = CertificateMessage {
266
- hash : "cert-hash-123" . to_string ( ) ,
267
- ..CertificateMessage :: dummy ( )
268
- } ;
269
- let cardano_db = DummyCardanoDbBuilder :: new ( dir_name)
270
- . with_immutables ( & immutable_file_range. clone ( ) . collect :: < Vec < _ > > ( ) )
271
- . append_immutable_trio ( )
272
- . build ( ) ;
273
- let database_dir = cardano_db. get_dir ( ) ;
274
- let immutable_digester = CardanoImmutableDigester :: new (
275
- certificate. metadata . network . to_string ( ) ,
276
- None ,
277
- TestLogger :: stdout ( ) ,
278
- ) ;
279
- let computed_digests = immutable_digester
280
- . compute_digests_for_range ( database_dir, immutable_file_range)
281
- . await
282
- . unwrap ( ) ;
283
-
284
- let digests = computed_digests
285
- . entries
286
- . iter ( )
287
- . map ( |( immutable_file, digest) | ( immutable_file. filename . clone ( ) , digest. clone ( ) ) )
288
- . collect :: < BTreeMap < _ , _ > > ( ) ;
289
-
290
- let merkle_tree = immutable_digester
291
- . compute_merkle_tree ( database_dir, beacon)
292
- . await
293
- . unwrap ( ) ;
294
-
295
- let verified_digests = VerifiedDigests {
296
- digests,
297
- merkle_tree,
298
- } ;
299
-
300
- ( database_dir. to_owned ( ) , certificate, verified_digests)
301
- }
302
-
303
223
fn write_digest_file (
304
224
digest_dir : & Path ,
305
225
digests : & BTreeMap < ImmutableFile , HexEncodedDigest > ,
@@ -415,42 +335,6 @@ mod tests {
415
335
416
336
assert ! ( !InternalArtifactProver :: digest_target_dir( ) . exists( ) ) ;
417
337
}
418
-
419
- #[ tokio:: test]
420
- async fn compute_merkle_proof_succeeds ( ) {
421
- let beacon = CardanoDbBeacon {
422
- epoch : Epoch ( 123 ) ,
423
- immutable_file_number : 10 ,
424
- } ;
425
- let immutable_file_range = 1 ..=15 ;
426
- let immutable_file_range_to_prove = ImmutableFileRange :: Range ( 2 , 4 ) ;
427
- let ( database_dir, certificate, verified_digests) = prepare_db_and_verified_digests (
428
- "compute_merkle_proof_succeeds" ,
429
- & beacon,
430
- & immutable_file_range,
431
- )
432
- . await ;
433
- let expected_merkle_root = verified_digests. merkle_tree . compute_root ( ) . unwrap ( ) ;
434
-
435
- let client =
436
- CardanoDatabaseClientDependencyInjector :: new ( ) . build_cardano_database_client ( ) ;
437
-
438
- let merkle_proof = client
439
- . compute_merkle_proof (
440
- & certificate,
441
- beacon. immutable_file_number ,
442
- & immutable_file_range_to_prove,
443
- & database_dir,
444
- & verified_digests,
445
- )
446
- . await
447
- . unwrap ( ) ;
448
-
449
- merkle_proof. verify ( ) . unwrap ( ) ;
450
-
451
- let merkle_proof_root = merkle_proof. root ( ) . to_owned ( ) ;
452
- assert_eq ! ( expected_merkle_root, merkle_proof_root) ;
453
- }
454
338
}
455
339
456
340
mod download_unpack_digest_file {
0 commit comments