Skip to content

Commit 1d337ca

Browse files
committed
update: fornite maggiori informazioni
1 parent 97ed6e7 commit 1d337ca

File tree

4 files changed

+53
-28
lines changed

4 files changed

+53
-28
lines changed

README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Il presente software effettua il Merkle Root di una serie di hash e ne confronta
66

77
In particolare permette di confrontare il contenuto presente su QLDB con quello presente su blockchain.
88

9-
Seguendo questa guida è possibile eseguire in autonomia il predetto controllo.
9+
Seguendo questa guida è possibile eseguire in autonomia il predetto controllo.
1010

1111

1212
## Prerequisiti
@@ -16,9 +16,9 @@ Seguendo questa guida è possibile eseguire in autonomia il predetto controllo.
1616

1717
## Guida
1818

19-
- Clona questo software oppure scaricalo da questo <a href="https://github.com/jambtc/merkle-root-php/releases/tag/v1.0">link</a> in una cartella sul tuo pc.
20-
- Copia i file json sia del Qldb che della Blockchain sotto questa stessa cartella.
21-
- Apri la finestra shell o prompt e digita i seguenti comandi:
19+
- Clona questo software oppure scaricalo da questo <a href="https://github.com/jambtc/merkle-root-php/releases/tag/v1.1">link</a> in una cartella sul tuo pc.
20+
- Copia i file json sia del Qldb che della Blockchain sotto questa stessa cartella. Nel file `blockchain.json` lascia soltanto il merkle root che vuoi verificare. Nel file `qldb.json` lascia soltanto gli hash relativi al periodo che vuoi verificare. Ricordati di eliminare l'ultima virgola per evitare errori di formattazione del formato json.
21+
- Apri una finestra shell o prompt e digita i seguenti comandi:
2222

2323
```bash
2424
cd <nomecartella>
@@ -30,7 +30,6 @@ Dovresti ottenere una risposta di questo tipo:
3030
```bash
3131
Merkle Root Calculator
3232

33-
Hash Transazione: 0x4de4beaf81e16c53537f1369180ab77a803b4251d8a29a6ee937b5f72af8a0c9
3433
Merkle root da Blockchain: 36d12cb8e28699290b0cef1ea5a1fadfd2c6bc4afad02633330e86b197b61884
3534
Merkle root da QLDB: 36d12cb8e28699290b0cef1ea5a1fadfd2c6bc4afad02633330e86b197b61884
3635
Verifica Merkle root: SUCCESSO

blockchain.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
{
2-
"merkleRoot": "36d12cb8e28699290b0cef1ea5a1fadfd2c6bc4afad02633330e86b197b61884",
3-
"txHash": "0x4de4beaf81e16c53537f1369180ab77a803b4251d8a29a6ee937b5f72af8a0c9",
4-
"timestamp": 1683380719
5-
}
1+
[
2+
{
3+
"merkleRoot": "36d12cb8e28699290b0cef1ea5a1fadfd2c6bc4afad02633330e86b197b61884",
4+
"txHash": "0x4de4beaf81e16c53537f1369180ab77a803b4251d8a29a6ee937b5f72af8a0c9",
5+
"timestamp": 1683380719
6+
}
7+
]

index.php

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,51 @@
11
<?php
22

3-
require __DIR__ . '/src/MerkleRoot.php';
3+
require __DIR__ . '/src/MerkleRootCalculator.php';
4+
5+
/**
6+
* Questa funzione carica un file e ne restituisce il contenuto in formato json
7+
*
8+
* @param string $filename
9+
* @return json
10+
*/
11+
function loadFile($filename){
12+
// verifico l'esistenza del file
13+
if (file_exists($filename)) {
14+
$json = json_decode(file_get_contents($filename));
15+
} else {
16+
echo "Il file {$filename} non esiste.\n";
17+
die();
18+
}
19+
20+
// verifico se il file è un json
21+
if ((json_last_error() === JSON_ERROR_NONE) == false) {
22+
echo "Il file {$filename} contiene un errore e non viene riconosciuto.\n";
23+
die();
24+
}
25+
return $json;
26+
}
427

5-
// carica il json del Qldb
6-
$data_qldb = json_decode(file_get_contents('qldb.json'));
28+
/**
29+
* Inizio della verifica
30+
*/
31+
echo "Merkle Root Calculator\n\n";
732

8-
// carica il json della Blockchain
9-
$data_blockchain = json_decode(file_get_contents('blockchain.json'));
33+
// carico il contenuto dei file json
34+
$qldb_data = loadFile('qldb.json');
35+
$blockchain_data = loadFile('blockchain.json');
1036

1137
// genero l'array di hash di qldb
12-
foreach ($data_qldb as $data){
13-
$qldb[] = $data->document_hash;
14-
}
38+
foreach ($qldb_data as $data) $qldb_hashes[] = $data->document_hash;
1539

16-
// inizializzo la classe
17-
$merkle = new MerkleRoot();
40+
// prendo solo l'elemento 0 del json della blockchain
41+
$blockchain_data = $blockchain_data[0];
1842

19-
// genero il Merkle root con i dati da qldb
20-
$root_qldb = $merkle->root($qldb);
43+
// inizializzo la classe e calcolo il Merkle root con gli hash ricavati dal qldb
44+
$merkle = new MerkleRootCalculator();
45+
$qldb_root = $merkle->root($qldb_hashes);
2146

22-
echo "Merkle Root Calculator\n\n";
23-
echo "Hash Transazione: ". $data_blockchain->txHash ."\n";
24-
echo "Merkle root da Blockchain: $data_blockchain->merkleRoot\n";
25-
echo "Merkle root da QLDB: $root_qldb\n";
26-
echo "Verifica Merkle root: " . ($merkle->verify($qldb, $data_blockchain->merkleRoot) ? 'SUCCESSO' : 'FALLITO') . "\n";
47+
// stampo il risultato
48+
echo "Merkle root da Blockchain: $blockchain_data->merkleRoot\n";
49+
echo "Merkle root da QLDB: $qldb_root\n";
50+
echo "Verifica Merkle root: " . ($merkle->verify($qldb_hashes, $blockchain_data->merkleRoot) ? 'SUCCESSO' : 'FALLITO') . "\n";
2751

src/MerkleRoot.php renamed to src/MerkleRootCalculator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Date: 03.05.2023
77
*/
88

9-
class MerkleRoot
9+
class MerkleRootCalculator
1010
{
1111
/**
1212
* Calcola il Merkle Root

0 commit comments

Comments
 (0)