From d3d90439c7ad8c7e474a642ed6748747ac8b6777 Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 23 Oct 2024 08:17:27 +0200 Subject: [PATCH 1/7] Trying to fix anchor proof --- .../common/AnchoringProofService/AnchoringProofService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 6e0dd4cb..53b31992 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -70,7 +70,7 @@ export default class AnchoringProofService extends BaseService { const uint8Array = await page.pdf({ landscape: true, - printBackground: false, + printBackground: true, format: "A4", }); From 0ffbe8a37595a79c1ab60ef01e9669abd2878e89 Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 23 Oct 2024 09:08:21 +0200 Subject: [PATCH 2/7] Trying to fix anchor proof again --- .../AnchoringProofService.ts | 119 ++++++++++++++++-- 1 file changed, 111 insertions(+), 8 deletions(-) diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 53b31992..08ea367a 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -2,7 +2,7 @@ import BaseService from "@Services/BaseService"; import puppeteer from "puppeteer"; import { Service } from "typedi"; -import proofTemplate from "./proofTemplate"; +// import proofTemplate from "./proofTemplate"; export interface AnchoringProofData { rootHash: string; @@ -28,17 +28,120 @@ export default class AnchoringProofService extends BaseService { const page = await browser.newPage(); - const proofTemplateSvg = proofTemplate({ - rootHash: data.rootHash, - anchoringTime: data.anchoringTime, - officeName: data.office_name, - txLink: data.txLink, - }); + // const proofTemplateSvg = proofTemplate({ + // rootHash: data.rootHash, + // anchoringTime: data.anchoringTime, + // officeName: data.office_name, + // txLink: data.txLink, + // }); + + const rootHash = data.rootHash; + const anchoringTime = data.anchoringTime; + const officeName = data.office_name; + const txLink = data.txLink; var htmlContent = ` - ${proofTemplateSvg} + + + + + + + + + + + + + + + + + + +Certificat de dépôt international +${anchoringTime} +Nom de l'office +${officeName} + +Déposant(s) +LEcoffre.io + +Hash +${rootHash} + +Explorateur blockchain +${txLink} + + + + + +À quoi ça sert ? +Un certificat d'ancrage sur la blockchain permet d'établir de manière irréfutable l'enregistrement de données spécifiques à une date et une heure déterminées. Il constitue une preuve immuable et juridiquement opposable de l'existence et de l'intégrité des informations. En cas de litige, ce certificat peut démontrer de manière incontestable que les données n'ont pas été altérées depuis leur enregistrement. + + + + +Qu'est-ce qu'un explorateur blockchain ? +Un explorateur blockchain est un outil numérique permettant d'accéder et de consulter les transactions et les données enregistrées sur la blockchain. Il assure une transparence totale, permettant à toute partie prenante de vérifier les opérations et les enregistrements effectués sur la chaîne de blocs. + + + + +Qu'est-ce qu'un hash ? +Un hash est une empreinte cryptographique unique générée par un algorithme à partir de données spécifiques. Il agit comme une signature numérique permettant de vérifier l'intégrité des données : toute modification, même infime, des données d'origine entraîne la production d'un hash distinct, garantissant ainsi l'authenticité et l'intégrité des informations. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `; From ea9ed5f4e7cfc192bc039fc89137f6eaea1b6b63 Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 23 Oct 2024 09:48:36 +0200 Subject: [PATCH 3/7] Reverting to old anchor proof method --- .../AnchoringProofService.ts | 67 ++++++++++--------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 08ea367a..1a523d41 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -17,33 +17,7 @@ export default class AnchoringProofService extends BaseService { super(); } - /** - * @description : Generate a PDF file from a SVG template from anchoring proof data - */ - public async generate(data: AnchoringProofData): Promise { - const browser = await puppeteer.launch({ - executablePath: `/usr/bin/chromium`, - args: ["--no-sandbox", "--disable-setuid-sandbox"], - }); - - const page = await browser.newPage(); - - // const proofTemplateSvg = proofTemplate({ - // rootHash: data.rootHash, - // anchoringTime: data.anchoringTime, - // officeName: data.office_name, - // txLink: data.txLink, - // }); - - const rootHash = data.rootHash; - const anchoringTime = data.anchoringTime; - const officeName = data.office_name; - const txLink = data.txLink; - - var htmlContent = ` - - - + private static svgTemplate = ` @@ -62,18 +36,18 @@ export default class AnchoringProofService extends BaseService { Certificat de dépôt international -${anchoringTime} +[[ANCHORING_TIME]] Nom de l'office -${officeName} +[[OFFICE_NAME]] Déposant(s) LEcoffre.io Hash -${rootHash} +[[ROOT_HASH]] Explorateur blockchain -${txLink} +[[TX_LINK]] @@ -140,12 +114,41 @@ export default class AnchoringProofService extends BaseService { - +`; + /** + * @description : Generate a PDF file from a SVG template from anchoring proof data + */ + public async generate(data: AnchoringProofData): Promise { + const browser = await puppeteer.launch({ + executablePath: `/usr/bin/chromium`, + args: ["--no-sandbox", "--disable-setuid-sandbox"], + }); + + const page = await browser.newPage(); + + var htmlContent = ` + + + ${AnchoringProofService.svgTemplate} `; + htmlContent = htmlContent + .replace("[[ROOT_HASH]]", data.rootHash) + .replace("[[ANCHORING_TIME]]", data.anchoringTime) + .replace("[[OFFICE_NAME]]", data.office_name) + .replace(/\[\[TX_LINK\]\]/g, data.txLink); + + + // const proofTemplateSvg = proofTemplate({ + // rootHash: data.rootHash, + // anchoringTime: data.anchoringTime, + // officeName: data.office_name, + // txLink: data.txLink, + // }); + await page.setContent(htmlContent, { waitUntil: "networkidle0", timeout: 1200000 }); await page.addStyleTag({ content: ` From 720007be9184cadc3a52646e664261b9d973e0ae Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 23 Oct 2024 09:55:39 +0200 Subject: [PATCH 4/7] Some test --- .../common/AnchoringProofService/AnchoringProofService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 1a523d41..de4ba587 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -46,7 +46,7 @@ export default class AnchoringProofService extends BaseService { Hash [[ROOT_HASH]] -Explorateur blockchain +Explorateur TEST blockchain [[TX_LINK]] From a02f7e287997f22a1720ce8bc9d6422ec1376a2b Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 23 Oct 2024 10:54:08 +0200 Subject: [PATCH 5/7] Testing href --- .../AnchoringProofService.ts | 127 ++---------------- 1 file changed, 11 insertions(+), 116 deletions(-) diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index de4ba587..c37995ce 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -2,7 +2,7 @@ import BaseService from "@Services/BaseService"; import puppeteer from "puppeteer"; import { Service } from "typedi"; -// import proofTemplate from "./proofTemplate"; +import proofTemplate from "./proofTemplate"; export interface AnchoringProofData { rootHash: string; @@ -17,105 +17,6 @@ export default class AnchoringProofService extends BaseService { super(); } - private static svgTemplate = ` - - - - - - - - - - - - - - - - - -Certificat de dépôt international -[[ANCHORING_TIME]] -Nom de l'office -[[OFFICE_NAME]] - -Déposant(s) -LEcoffre.io - -Hash -[[ROOT_HASH]] - -Explorateur TEST blockchain -[[TX_LINK]] - - - - - -À quoi ça sert ? -Un certificat d'ancrage sur la blockchain permet d'établir de manière irréfutable l'enregistrement de données spécifiques à une date et une heure déterminées. Il constitue une preuve immuable et juridiquement opposable de l'existence et de l'intégrité des informations. En cas de litige, ce certificat peut démontrer de manière incontestable que les données n'ont pas été altérées depuis leur enregistrement. - - - - -Qu'est-ce qu'un explorateur blockchain ? -Un explorateur blockchain est un outil numérique permettant d'accéder et de consulter les transactions et les données enregistrées sur la blockchain. Il assure une transparence totale, permettant à toute partie prenante de vérifier les opérations et les enregistrements effectués sur la chaîne de blocs. - - - - -Qu'est-ce qu'un hash ? -Un hash est une empreinte cryptographique unique générée par un algorithme à partir de données spécifiques. Il agit comme une signature numérique permettant de vérifier l'intégrité des données : toute modification, même infime, des données d'origine entraîne la production d'un hash distinct, garantissant ainsi l'authenticité et l'intégrité des informations. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`; - /** * @description : Generate a PDF file from a SVG template from anchoring proof data */ @@ -127,28 +28,22 @@ export default class AnchoringProofService extends BaseService { const page = await browser.newPage(); + const proofTemplateSvg = proofTemplate({ + rootHash: data.rootHash, + anchoringTime: data.anchoringTime, + officeName: data.office_name, + txLink: data.txLink, + }); + var htmlContent = ` - ${AnchoringProofService.svgTemplate} + Google + ${proofTemplateSvg} `; - htmlContent = htmlContent - .replace("[[ROOT_HASH]]", data.rootHash) - .replace("[[ANCHORING_TIME]]", data.anchoringTime) - .replace("[[OFFICE_NAME]]", data.office_name) - .replace(/\[\[TX_LINK\]\]/g, data.txLink); - - - // const proofTemplateSvg = proofTemplate({ - // rootHash: data.rootHash, - // anchoringTime: data.anchoringTime, - // officeName: data.office_name, - // txLink: data.txLink, - // }); - await page.setContent(htmlContent, { waitUntil: "networkidle0", timeout: 1200000 }); await page.addStyleTag({ content: ` @@ -176,7 +71,7 @@ export default class AnchoringProofService extends BaseService { const uint8Array = await page.pdf({ landscape: true, - printBackground: true, + printBackground: false, format: "A4", }); From af3c460cc9059cd61eada9ff40e8b5eda9899426 Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 23 Oct 2024 11:33:27 +0200 Subject: [PATCH 6/7] Some more test --- .../AnchoringProofService.ts | 12 +- .../common/AnchoringProofService/html2.html | 627 ++++++++++++++++++ .../AnchoringProofService/proofTemplate.ts | 3 +- 3 files changed, 639 insertions(+), 3 deletions(-) create mode 100644 src/services/common/AnchoringProofService/html2.html diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index c37995ce..eeaca28f 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -38,12 +38,15 @@ export default class AnchoringProofService extends BaseService { var htmlContent = ` - Google ${proofTemplateSvg} + ${data.txLink} `; + //${txLink} + + await page.setContent(htmlContent, { waitUntil: "networkidle0", timeout: 1200000 }); await page.addStyleTag({ content: ` @@ -57,6 +60,11 @@ export default class AnchoringProofService extends BaseService { width: 100%; height: 100%; } + .txLink { + position: absolute; + left: 242px; + top: 309px; + } body { display: flex; justify-content: center; @@ -71,7 +79,7 @@ export default class AnchoringProofService extends BaseService { const uint8Array = await page.pdf({ landscape: true, - printBackground: false, + printBackground: true, format: "A4", }); diff --git a/src/services/common/AnchoringProofService/html2.html b/src/services/common/AnchoringProofService/html2.html new file mode 100644 index 00000000..5aabbcd8 --- /dev/null +++ b/src/services/common/AnchoringProofService/html2.html @@ -0,0 +1,627 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Certificat de dépôt international + + + + ${anchoringTime} + + + Nom de l'office + + + ${officeName} + + + + Déposant(s) + + + LEcoffre.io + + + + Hash{" "} + + + ${rootHash} + + + + Explorateur blockchain + + + + ${txLink} + + + + + + + + + À quoi ça sert ? + + + Un{" "} + certificat{" "} + d'ancrage{" "} + sur{" "} + la{" "} + blockchain{" "} + permet{" "} + d'établir{" "} + de{" "} + manière{" "} + irréfutable{" "} + l'enregistrement{" "} + de{" "} + données{" "} + spécifiques{" "} + à{" "} + une{" "} + date{" "} + et{" "} + une{" "} + heure{" "} + déterminées.{" "} + Il{" "} + constitue{" "} + une{" "} + preuve{" "} + immuable{" "} + et{" "} + juridiquement{" "} + opposable{" "} + de{" "} + l'existence{" "} + et{" "} + de{" "} + l'intégrité{" "} + des{" "} + informations.{" "} + + En{" "} + cas{" "} + de{" "} + litige,{" "} + ce{" "} + certificat{" "} + peut{" "} + démontrer{" "} + de{" "} + manière{" "} + incontestable{" "} + que{" "} + les{" "} + données{" "} + n'ont{" "} + pas{" "} + été{" "} + altérées{" "} + depuis{" "} + leur{" "} + enregistrement. + + + + + + + + Qu'est-ce qu'un explorateur blockchain ? + + + + Un{" "} + explorateur{" "} + blockchain{" "} + est{" "} + un{" "} + outil{" "} + numérique{" "} + permettant{" "} + d'accéder{" "} + et{" "} + de{" "} + consulter{" "} + les{" "} + transactions{" "} + et{" "} + les{" "} + données{" "} + enregistrées{" "} + sur{" "} + la{" "} + blockchain.{" "} + Il{" "} + assure{" "} + une{" "} + transparence{" "} + totale,{" "} + permettant{" "} + à{" "} + toute{" "} + partie{" "} + prenante{" "} + de{" "} + vérifier{" "} + les{" "} + opérations{" "} + et{" "} + les{" "} + enregistrements{" "} + effectués{" "} + sur{" "} + la{" "} + chaîne{" "} + de{" "} + blocs. + + + + + + + + Qu'est-ce qu'un hash ?{" "} + + + + Un{" "} + hash{" "} + est{" "} + une{" "} + empreinte{" "} + cryptographique{" "} + unique{" "} + générée{" "} + par{" "} + un{" "} + algorithme{" "} + à{" "} + partir{" "} + de{" "} + données{" "} + spécifiques.{" "} + Il{" "} + agit{" "} + comme{" "} + une{" "} + signature{" "} + numérique{" "} + permettant{" "} + de{" "} + vérifier{" "} + l'intégrité{" "} + des{" "} + données{" "} + :{" "} + toute{" "} + modification,{" "} + même{" "} + infime,{" "} + des{" "} + données{" "} + d'origine{" "} + entraîne{" "} + la{" "} + production{" "} + d'un{" "} + hash{" "} + distinct,{" "} + garantissant{" "} + ainsi{" "} + l'authenticité{" "} + et{" "} + l'intégrité{" "} + des{" "} + informations. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/services/common/AnchoringProofService/proofTemplate.ts b/src/services/common/AnchoringProofService/proofTemplate.ts index 3a344b22..cb576567 100644 --- a/src/services/common/AnchoringProofService/proofTemplate.ts +++ b/src/services/common/AnchoringProofService/proofTemplate.ts @@ -9,7 +9,8 @@ export default function proofTemplate({ officeName: string; txLink: string; }) { - return ` + return `${txLink} + From 4155ab15cd05eeb3793d82f5d2eef86d42b64fa1 Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 23 Oct 2024 12:02:31 +0200 Subject: [PATCH 7/7] Fixed anchoring clickable path --- .../AnchoringProofService.ts | 14 +- .../common/AnchoringProofService/html2.html | 627 ----------------- .../AnchoringProofService/proofTemplate.ts | 646 +++++++++++++++--- 3 files changed, 553 insertions(+), 734 deletions(-) delete mode 100644 src/services/common/AnchoringProofService/html2.html diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index eeaca28f..f6371c95 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -38,8 +38,7 @@ export default class AnchoringProofService extends BaseService { var htmlContent = ` - ${proofTemplateSvg} - ${data.txLink} + ${proofTemplateSvg} `; @@ -60,19 +59,16 @@ export default class AnchoringProofService extends BaseService { width: 100%; height: 100%; } - .txLink { - position: absolute; - left: 242px; - top: 309px; - } body { display: flex; justify-content: center; align-items: center; } svg { - width: 100%; - height: 100%; + width: 95%; + height: 95%; + border-radius: 10px; + box-shadow: 0px 0px 29px 0px rgba(0,0,0,0.31); } `, }); diff --git a/src/services/common/AnchoringProofService/html2.html b/src/services/common/AnchoringProofService/html2.html deleted file mode 100644 index 5aabbcd8..00000000 --- a/src/services/common/AnchoringProofService/html2.html +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - Certificat de dépôt international - - - - ${anchoringTime} - - - Nom de l'office - - - ${officeName} - - - - Déposant(s) - - - LEcoffre.io - - - - Hash{" "} - - - ${rootHash} - - - - Explorateur blockchain - - - - ${txLink} - - - - - - - - - À quoi ça sert ? - - - Un{" "} - certificat{" "} - d'ancrage{" "} - sur{" "} - la{" "} - blockchain{" "} - permet{" "} - d'établir{" "} - de{" "} - manière{" "} - irréfutable{" "} - l'enregistrement{" "} - de{" "} - données{" "} - spécifiques{" "} - à{" "} - une{" "} - date{" "} - et{" "} - une{" "} - heure{" "} - déterminées.{" "} - Il{" "} - constitue{" "} - une{" "} - preuve{" "} - immuable{" "} - et{" "} - juridiquement{" "} - opposable{" "} - de{" "} - l'existence{" "} - et{" "} - de{" "} - l'intégrité{" "} - des{" "} - informations.{" "} - - En{" "} - cas{" "} - de{" "} - litige,{" "} - ce{" "} - certificat{" "} - peut{" "} - démontrer{" "} - de{" "} - manière{" "} - incontestable{" "} - que{" "} - les{" "} - données{" "} - n'ont{" "} - pas{" "} - été{" "} - altérées{" "} - depuis{" "} - leur{" "} - enregistrement. - - - - - - - - Qu'est-ce qu'un explorateur blockchain ? - - - - Un{" "} - explorateur{" "} - blockchain{" "} - est{" "} - un{" "} - outil{" "} - numérique{" "} - permettant{" "} - d'accéder{" "} - et{" "} - de{" "} - consulter{" "} - les{" "} - transactions{" "} - et{" "} - les{" "} - données{" "} - enregistrées{" "} - sur{" "} - la{" "} - blockchain.{" "} - Il{" "} - assure{" "} - une{" "} - transparence{" "} - totale,{" "} - permettant{" "} - à{" "} - toute{" "} - partie{" "} - prenante{" "} - de{" "} - vérifier{" "} - les{" "} - opérations{" "} - et{" "} - les{" "} - enregistrements{" "} - effectués{" "} - sur{" "} - la{" "} - chaîne{" "} - de{" "} - blocs. - - - - - - - - Qu'est-ce qu'un hash ?{" "} - - - - Un{" "} - hash{" "} - est{" "} - une{" "} - empreinte{" "} - cryptographique{" "} - unique{" "} - générée{" "} - par{" "} - un{" "} - algorithme{" "} - à{" "} - partir{" "} - de{" "} - données{" "} - spécifiques.{" "} - Il{" "} - agit{" "} - comme{" "} - une{" "} - signature{" "} - numérique{" "} - permettant{" "} - de{" "} - vérifier{" "} - l'intégrité{" "} - des{" "} - données{" "} - :{" "} - toute{" "} - modification,{" "} - même{" "} - infime,{" "} - des{" "} - données{" "} - d'origine{" "} - entraîne{" "} - la{" "} - production{" "} - d'un{" "} - hash{" "} - distinct,{" "} - garantissant{" "} - ainsi{" "} - l'authenticité{" "} - et{" "} - l'intégrité{" "} - des{" "} - informations. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/services/common/AnchoringProofService/proofTemplate.ts b/src/services/common/AnchoringProofService/proofTemplate.ts index cb576567..9ede042b 100644 --- a/src/services/common/AnchoringProofService/proofTemplate.ts +++ b/src/services/common/AnchoringProofService/proofTemplate.ts @@ -9,104 +9,554 @@ export default function proofTemplate({ officeName: string; txLink: string; }) { - return `${txLink} - - - - - - - - - - - - - - - - - - -Certificat de dépôt international -${anchoringTime} -Nom de l'office -${officeName} - -Déposant(s) -LEcoffre.io - -Hash -${rootHash} - -Explorateur blockchain -${txLink} - - - - - -À quoi ça sert ? -Un certificat d'ancrage sur la blockchain permet d'établir de manière irréfutable l'enregistrement de données spécifiques à une date et une heure déterminées. Il constitue une preuve immuable et juridiquement opposable de l'existence et de l'intégrité des informations. En cas de litige, ce certificat peut démontrer de manière incontestable que les données n'ont pas été altérées depuis leur enregistrement. - - - - -Qu'est-ce qu'un explorateur blockchain ? -Un explorateur blockchain est un outil numérique permettant d'accéder et de consulter les transactions et les données enregistrées sur la blockchain. Il assure une transparence totale, permettant à toute partie prenante de vérifier les opérations et les enregistrements effectués sur la chaîne de blocs. - - - - -Qu'est-ce qu'un hash ? -Un hash est une empreinte cryptographique unique générée par un algorithme à partir de données spécifiques. Il agit comme une signature numérique permettant de vérifier l'intégrité des données : toute modification, même infime, des données d'origine entraîne la production d'un hash distinct, garantissant ainsi l'authenticité et l'intégrité des informations. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + return ` + + + + + + + + + + + + + + + + + + Certificat de dépôt international + + + + ${anchoringTime} + + + Nom de l'office + + + ${officeName} + + + + Déposant(s) + + + LEcoffre.io + + + + Hash + + + ${rootHash} + + + + Explorateur blockchain + + + ${txLink} + + + + + + + + À quoi ça sert ? + + + Un + certificat + d'ancrage + sur + la + blockchain + permet + d'établir + de + manière + irréfutable + l'enregistrement + de + données + spécifiques + à + une + date + et + une + heure + déterminées. + Il + constitue + une + preuve + immuable + et + juridiquement + opposable + de + l'existence + et + de + l'intégrité + des + informations. + + En + cas + de + litige, + ce + certificat + peut + démontrer + de + manière + incontestable + que + les + données + n'ont + pas + été + altérées + depuis + leur + enregistrement. + + + + + + + + Qu'est-ce qu'un explorateur blockchain ? + + + + Un + explorateur + blockchain + est + un + outil + numérique + permettant + d'accéder + et + de + consulter + les + transactions + et + les + données + enregistrées + sur + la + blockchain. + Il + assure + une + transparence + totale, + permettant + à + toute + partie + prenante + de + vérifier + les + opérations + et + les + enregistrements + effectués + sur + la + chaîne + de + blocs. + + + + + + + Qu'est-ce qu'un hash ? + + + Un + hash + est + une + empreinte + cryptographique + unique + générée + par + un + algorithme + à + partir + de + données + spécifiques. + Il + agit + comme + une + signature + numérique + permettant + de + vérifier + l'intégrité + des + données + : + toute + modification, + même + infime, + des + données + d'origine + entraîne + la + production + d'un + hash + distinct, + garantissant + ainsi + l'authenticité + et + l'intégrité + des + informations. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `; }