{"id":3323,"date":"2021-03-09T00:49:47","date_gmt":"2021-03-08T22:49:47","guid":{"rendered":"https:\/\/blog.nebule.org\/?p=3323"},"modified":"2021-10-30T15:11:22","modified_gmt":"2021-10-30T13:11:22","slug":"structure-de-donnes-des-liens-v20","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=3323","title":{"rendered":"Structure de donn\u00e9s des liens v2:0"},"content":{"rendered":"\n<ul><li>L : BH_BL_BS<ul><li>BH : RF\/RV<ul><li>RF : APP:TYP<ul><li>APP : nebule<\/li><li>TYP : link<\/li><\/ul><\/li><li>RV : VER:SUB<ul><li>VER : 2<\/li><li>SUB : 0<\/li><\/ul><\/li><\/ul><\/li><li>BL : RC\/RL\/RL&#8230;<ul><li>RC : MOD>CHR<\/li><li>RL : REQ>NID>NID>NID&#8230;<ul><li>REQ<\/li><li>NID : hash.algo.size<\/li><\/ul><\/li><\/ul><\/li><li>BS : RS\/RS&#8230;<ul><li>RS : NID>SIG<ul><li>EID : hash.algo.size<\/li><li>SIG : sign.algo.size<\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><\/ul>\n\n\n\n<p style=\"text-align:center\"><code>BH_BL_BS<\/code><\/p>\n\n\n\n<p style=\"text-align:center\"><code>RF\/RV_RC\/RL\/RL_RS\/RS<\/code><\/p>\n\n\n\n<p style=\"text-align:center\"><code>APP:TYP\/VER:SUB_MOD>CHR\/REQ>NID>NID>NID\/REQ>NID>NID>NID_EID>SIG\/EID>SIG<\/code><\/p>\n\n\n\n<p style=\"text-align:center\"><code>nebule:link\/2:0_0&gt;020210308124933\/l&gt;hash.sha2.256&gt;hash.sha2.256&gt;hash.sha2.256_hash.sha2.256&gt;sign.algo.size\/hash.sha2.256&gt;sign.algo.size<\/code><\/p>\n\n\n\n<h2>Structure<\/h2>\n\n\n\n<h3>Fichiers<\/h3>\n\n\n\n<p>Pour chaque n\u00c5\u201cud va \u00eatre associ\u00e9 un certain nombre de liens. Ces liens sont stock\u00e9s, par n\u00c5\u201cuds, sous forme de fichiers dans le dossier des liens <code>\/l<\/code> . Dans chaque fichiers, les liens sont s\u00e9par\u00e9s par un espace ou un retour chariot. Le retour chariot est \u00e0 privil\u00e9gier.<\/p>\n\n\n\n<h3>Liens<\/h3>\n\n\n\n<p>Chaque liens d&rsquo;un fichier est compos\u00e9 de :<\/p>\n\n\n\n<ul><li>BH (blockhead) : Bloc d&rsquo;ent\u00eate.<\/li><li>BL (blocklinks) : Bloc de liens.<\/li><li>BS (blocksigns) : Bloc de signatures.<\/li><\/ul>\n\n\n\n<p>Chaque type de bloc est obligatoire et ne doit \u00eatre pr\u00e9sent qu&rsquo;une seule fois. Lles blocs doivent \u00eatre ordonn\u00e9s BH, BL puis BS. Le s\u00e9parateur inter-blocs est <code>_<\/code> . Un lien a donc la forme :<\/p>\n\n\n\n<p style=\"text-align:center\"><code>BH_BL_BS<\/code><\/p>\n\n\n\n<h3>Blocs<\/h3>\n\n\n\n<p>Dans chaque bloc on va trouver des registres :<\/p>\n\n\n\n<ul><li>RF (regform) : Registre de forme. Bloc BH. Unique. D\u00e9but.<\/li><li>RV (regversion) : Registre de version. Bloc BH. Unique.<\/li><li>RC (regchrono) : Registre de chronologie. Bloc BL. Unique. D\u00e9but.<\/li><li>RL (reglink) : Registre du lien. Bloc BL. Multiple.<\/li><li>RS (regsign) : Registre de signature. Bloc BS. Multiple.<\/li><\/ul>\n\n\n\n<p>Les registres sont d\u00e9di\u00e9s \u00e0 des blocs particuliers. Tous les registres d\u00e9di\u00e9s \u00e0 un bloc doivent \u00eatre pr\u00e9sents dans le bloc. Certains registres doivent \u00eatre unique dans leur bloc, d&rsquo;autres peuvent \u00eatre multiples. Certains registres sont forc\u00e9ment pr\u00e9sent en d\u00e9but de bloc.<\/p>\n\n\n\n<p>La structure des blocs est fixe m\u00eame si certains registres peuvent \u00eatre multiples :<\/p>\n\n\n\n<ul><li>BH : RF\/RV<\/li><li>BL : RC\/RL\/RL\/RL&#8230;<\/li><li>BS : RS\/RS\/RS&#8230;<\/li><\/ul>\n\n\n\n<p>Le s\u00e9parateur inter-registres est <code>\/<\/code> .<\/p>\n\n\n\n<h3>Registres<\/h3>\n\n\n\n<p>Certains registres vont contenir des \u00e9l\u00e9ments dans un ordre d\u00e9finit :<\/p>\n\n\n\n<ul><li>APP : application. Registre RF. Unique. D\u00e9but.<\/li><li>TYP : type de contenu. Registre RF. Unique.<\/li><li>VER : version majeur. Registre RV. Unique. D\u00e9but.<\/li><li>SUB : sous-version. Registre RV. Unique.<\/li><li>MOD : mode d&rsquo;utilisation de la marque chronologique. Registre RC. Unique. D\u00e9but.<\/li><li>CHR : valeur de la marque chronologique. Unique. Registre RC.<\/li><li>REQ : requ\u00eate d&rsquo;action sur le lien. Registre RL. Unique. D\u00e9but.<\/li><li>NID (Node ID) : identifiant de n\u00c5\u201cud (ou de l&rsquo;objet). Registre RL. Multiple dans RL.<\/li><li>EID (Entity ID) : identifiant de l&rsquo;entit\u00e9 signataire. Registre RS. Unique dans RS. D\u00e9but dans RS.<\/li><li>SIG (sign) : valeur de la signature. Unique. Registre RS.<\/li><\/ul>\n\n\n\n<p>La structure des registre est fixe m\u00eame si certains \u00e9l\u00e9ments peuvent \u00eatre multiples :<\/p>\n\n\n\n<ul><li>RF : APP:TYP<\/li><li>RV : VER:SUB<\/li><li>RC : MOD>CHR<\/li><li>RL : REQ>NID>NID>NID&#8230;<\/li><li>RS : EID>SIG<\/li><\/ul>\n\n\n\n<p>Le s\u00e9parateur inter-\u00e9l\u00e9ments est <code>&gt;<\/code> ou <code>:<\/code> en fonction du registre concern\u00e9.<\/p>\n\n\n\n<h3>\u00c9l\u00e9ments<\/h3>\n\n\n\n<p>Les blocs et registres sont structurants de l&rsquo;information. Les \u00e9l\u00e9ments sont contenants de l&rsquo;information.<\/p>\n\n\n\n<ul><li>APP = \u00ab\u00a0nebule\u00a0\u00bb.<\/li><li>TYP = \u00ab\u00a0link\u00a0\u00bb.<\/li><li>VER = \u00ab\u00a02\u00a0\u00bb.<\/li><li>SUB = \u00ab\u00a00\u00a0\u00bb.<\/li><li>NID : l&rsquo;identifiant de n\u00c5\u201cud ou d&rsquo;objet = hash.algo.size<ul><li>hash = valeur de l&#8217;empreinte.<\/li><li>algo = famille d&rsquo;algorithme utilis\u00e9 pour le calcul de l&#8217;empreinte.<\/li><li>size = taille de l&#8217;empreinte<\/li><\/ul><\/li><li>EID : l&rsquo;identifiant de l&rsquo;entit\u00e9 signataire = hash.algo.size<ul><li>hash = valeur de l&#8217;empreinte.<\/li><li>algo = famille d&rsquo;algorithme utilis\u00e9 pour le calcul de l&#8217;empreinte.<\/li><li>size = taille de l&#8217;empreinte<\/li><\/ul><\/li><li>SIG : signature<ul><li>sign = valeur de la signature<\/li><li>algo = famille d&rsquo;algorithme utilis\u00e9 pour le calcul de l&#8217;empreinte avant signature.<\/li><li>size = taille de l&#8217;empreinte<\/li><\/ul><\/li><\/ul>\n\n\n\n<h2>V\u00e9rifications<\/h2>\n\n\n\n<p>La v\u00e9rification d&rsquo;un lien se fait en trois \u00e9tapes. La premi\u00e8re \u00e9tape va v\u00e9rifier que le type et la version sont support\u00e9s. La seconde \u00e9tape va permettre de v\u00e9rifier la structure compl\u00e8te. La derni\u00e8re va prendre les blocs BH et BL avec leur s\u00e9parateur et v\u00e9rifier la\/les signature\/s.<\/p>\n\n\n\n<p>L&rsquo;application qui exploite les liens va garder chaque registre de lien d\u00e9compos\u00e9 avec les entit\u00e9s signataires. Les signatures non reconnues seront ignor\u00e9es.<\/p>\n\n\n\n<h2>Limites<\/h2>\n\n\n\n<p>Il y a un certains nombre de limites dans les quantit\u00e9s acceptables des registres et \u00e9l\u00e9ments que peuvent contenir un lien ainsi que de la taille des contenus. Ces limites ne sont pas d\u00e9finies dans le lien et ne sont pas d\u00e9pendantes de la version du lien mais d\u00e9pendent du param\u00e9trage de l&rsquo;application qui lit le lien.<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L : BH_BL_BS BH : RF\/RV RF : APP:TYP APP : nebule TYP : link RV : VER:SUB VER : 2 SUB : 0 BL : RC\/RL\/RL&#8230; RC : MOD>CHR RL : REQ>NID>NID>NID&#8230; REQ NID : hash.algo.size BS : RS\/RS&#8230; RS : NID>SIG EID : hash.algo.size SIG : sign.algo.size BH_BL_BS RF\/RV_RC\/RL\/RL_RS\/RS APP:TYP\/VER:SUB_MOD>CHR\/REQ>NID>NID>NID\/REQ>NID>NID>NID_EID>SIG\/EID>SIG nebule:link\/2:0_0&gt;020210308124933\/l&gt;hash.sha2.256&gt;hash.sha2.256&gt;hash.sha2.256_hash.sha2.256&gt;sign.algo.size\/hash.sha2.256&gt;sign.algo.size Structure Fichiers &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=3323\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Structure de donn\u00e9s des liens v2:0<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[434,81,91,93,99,432,107,360,110,24,35,431],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/3323"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3323"}],"version-history":[{"count":7,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/3323\/revisions"}],"predecessor-version":[{"id":3358,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/3323\/revisions\/3358"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3323"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}