{"id":30639,"date":"2019-10-31T21:36:39","date_gmt":"2019-10-31T18:36:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves\/"},"modified":"2019-10-31T21:36:39","modified_gmt":"2019-10-31T18:36:39","slug":"waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","title":{"rendered":"WavesKit \u2014 Framework PHP pour travailler avec la blockchain Waves","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>J'aime <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/PHP\">PHP<\/a><\/noindex> pour la rapidit\u00e9 de d\u00e9veloppement et une excellente portabilit\u00e9. C'est tr\u00e8s bien d'avoir toujours dans sa poche un outil pr\u00eat \u00e0 r\u00e9soudre des probl\u00e8mes.<\/p>\n<p><\/p>\n<p>C'\u00e9tait assez d\u00e9cevant, lors de ma d\u00e9couverte de la blockchain nationale <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesplatform.com\">Waves Platform<\/a><\/noindex> qu'il n'y avait pas de SDK PHP pr\u00eat \u00e0 l'emploi dans son arsenal. Eh bien, j'ai d\u00fb l'\u00e9crire.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Au d\u00e9but, j'avais besoin d'utiliser <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-full-node\/what-is-a-full-node.html\">les n\u0153uds<\/a><\/noindex> pour signer des transactions. Ainsi, pour g\u00e9rer trois adresses, je devais ex\u00e9cuter trois n\u0153uds\u2026 C'\u00e9tait un spectacle pitoyable, bien que cela r\u00e9solvait certains probl\u00e8mes. Jusqu'\u00e0 ce que je comprenne qu'il ne fallait pas compter sur les n\u0153uds \u2014 c'est une impasse. Premi\u00e8rement, \u00e0 cause de la fonctionnalit\u00e9 limit\u00e9e, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-api-and-sdk\/waves-node-rest-api.html\">API<\/a><\/noindex>, deuxi\u00e8mement, \u00e0 cause de la vitesse (\u00e0 l'\u00e9poque, les n\u0153uds \u00e9taient tr\u00e8s lents).<\/p>\n<p><\/p>\n<p>J'ai commenc\u00e9 deux travaux parall\u00e8les. L'un \u00e9tait de cr\u00e9er un explorateur de blockchain, qui serait rapide et totalement ind\u00e9pendant des API des n\u0153uds. Le second \u00e9tait de rassembler toutes les fonctions pour travailler avec Waves Platform au m\u00eame endroit. C'est ainsi que des projets comme <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/w8io\">w8io<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Le premier pas derri\u00e8re les coulisses de la blockchain Waves a \u00e9t\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/w8io.ru\">l'explorateur w8io<\/a><\/noindex>. Ce n'\u00e9tait pas simple, mais j'ai n\u00e9anmoins r\u00e9ussi \u00e0 \u00e9crire un calcul ind\u00e9pendant de tous les soldes et m\u00eame \u00e0 trouver une erreur dans les calculs sur les n\u0153uds d'origine (<noindex><a rel=\"nofollow\" href=\"https:\/\/forum.wavesplatform.com\/t\/bug-bounty-program\/1127\">le programme bug-bounty<\/a><\/noindex> au fait, chez eux, \u00e7a fonctionne, ils paient pour les erreurs trouv\u00e9es). Vous pouvez explorer les fonctionnalit\u00e9s de l'explorateur w8io en d\u00e9tail dans ce sujet : <noindex><a rel=\"nofollow\" href=\"https:\/\/forum.wavesplatform.com\/t\/w8io-waves-explorer-based-on-php-sqlite\">https:\/\/forum.wavesplatform.com\/t\/w8io-waves-explorer-based-on-php-sqlite<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Dans le processus de travail sur w8io, j'avais d\u00e9j\u00e0 des doutes, mais lorsque le travail est arriv\u00e9 \u00e0 une fin logique et que j'ai commenc\u00e9 \u00e0 cr\u00e9er le SDK, les doutes se sont confirm\u00e9s. Je n'ai pu trouver nulle part certaines fonctions, y compris les plus importantes, celles de cryptographie. Alors j'ai commenc\u00e9 \u00e0 cr\u00e9er mes propres briques pour le fondement. Ainsi sont n\u00e9s : <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/ABCode\">ABCode<\/a><\/noindex> pour le codage en base58 (en r\u00e9alit\u00e9 pour coder n'importe quel alphabet dans n'importe quel), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\">Curve25519<\/a><\/noindex> pour la cr\u00e9ation et la v\u00e9rification de signatures compatibles (avec des variantes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\/blob\/0ba56fa566f4a29b06126465b9ebbe59c915ffbd\/src\/Curve25519.php#L104\">sur des st\u00e9ro\u00efdes<\/a><\/noindex>), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Blake2b\">Blake2b<\/a><\/noindex> pour le calcul d'un des hachages (qui n'\u00e9tait disponible qu'\u00e0 partir de PHP 7.2) etc.<\/p>\n<p><\/p>\n<p>Ici, je dois remercier <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\">Inal Kardanov<\/a><\/noindex> pour quelques conseils pr\u00e9cieux qui m'ont orient\u00e9 vers <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Composer_(software)\">composer<\/a><\/noindex> au lieu des fichiers include que je connaissais, mais qui sont obsol\u00e8tes.<\/p>\n<p><\/p>\n<p>Apr\u00e8s quelques mois <noindex>WavesKit a vu le jour<\/noindex>, est sorti de <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\/status\/1091241637706190848\">version b\u00eata<\/a><\/noindex> et est maintenant pr\u00eat \u00e0 fonctionner avec toutes les fonctionnalit\u00e9s standard de la plateforme Waves. Tout ce qui est disponible sur <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-environment\/waves-mainnet.html\">le r\u00e9seau principal<\/a><\/noindex> Les transactions peuvent \u00eatre facilement cr\u00e9\u00e9es, sign\u00e9es et envoy\u00e9es par un seul package, fonctionnant sur toutes les versions 64 bits de PHP \u00e0 partir de 5.6 inclusivement.<\/p>\n<p><\/p>\n<p>Connectez WavesKit \u00e0 votre projet :<\/p>\n<p><\/p>\n<pre><code class=\"php\">composer require deemru\/waveskit<\/code><\/pre>\n<p><\/p>\n<p>Utilisation :<\/p>\n<p><\/p>\n<pre><code class=\"php\">use deemruWavesKit;\n$wk = new WavesKit( 'T' );\n$wk-&gt;setSeed( 'manage manual recall harvest series desert melt police rose hollow moral pledge kitten position add' );\n$tx = $wk-&gt;txBroadcast( $wk-&gt;txSign( $wk-&gt;txTransfer( 'test', 1 ) ) );\n$tx = $wk-&gt;ensure( $tx );<\/code><\/pre>\n<p><\/p>\n<p>Dans l'exemple ci-dessus, nous cr\u00e9ons un objet WavesKit, qui fonctionne dans le r\u00e9seau de test \u00ab T \u00bb. Nous d\u00e9finissons une phrase de r\u00e9cup\u00e9ration \u00e0 partir de laquelle les cl\u00e9s et l'adresse du compte sont automatiquement calcul\u00e9es sur la base de la cl\u00e9 publique. Ensuite, nous cr\u00e9ons une transaction de transfert de 0.00000001 Waves \u00e0 partir de l'adresse automatiquement calcul\u00e9e selon la phrase de r\u00e9cup\u00e9ration vers l'adresse de l'alias \u00ab test \u00bb, nous la transmettons pour signature avec la cl\u00e9 priv\u00e9e et l'envoyons sur le r\u00e9seau. Apr\u00e8s cela, nous nous assurons que la transaction a \u00e9t\u00e9 confirm\u00e9e avec succ\u00e8s par le r\u00e9seau.<\/p>\n<p><\/p>\n<p>Le travail avec les transactions est concentr\u00e9 dans <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxaddressscript\">les fonctions commen\u00e7ant par tx<\/a><\/noindex>. Pour mieux comprendre le travail avec les transactions, vous pouvez consulter <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md\">la documentation WavesKit<\/a><\/noindex> ou vous pouvez directement vous r\u00e9f\u00e9rer aux exemples clairs dans <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/2c4937199c88bc4ae105f60657b1389482471c1f\/test\/selftest.php#L237\">les tests d'int\u00e9gration continue<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Comme WavesKit a \u00e9volu\u00e9 dans des conditions d'utilisation r\u00e9elles, il a d\u00e9j\u00e0 incorpor\u00e9 des fonctionnalit\u00e9s avanc\u00e9es. La premi\u00e8re fonctionnalit\u00e9 phare est la <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitensure\">fonction ensure<\/a><\/noindex>, qui contr\u00f4le l'atteinte du niveau de confiance requis, assurant que la transaction n'est pas perdue, mais a \u00e9t\u00e9 confirm\u00e9e et a atteint le nombre n\u00e9cessaire de confirmations dans le r\u00e9seau.<\/p>\n<p><\/p>\n<p>Un autre m\u00e9canisme infaillible est la mani\u00e8re dont WavesKit communique avec les n\u0153uds. Dans des conditions id\u00e9ales, le framework fonctionne uniquement avec le n\u0153ud principal, maintenant une connexion constante avec celui-ci, mais en cas d'erreurs, il peut automatiquement basculer vers des n\u0153uds de secours. Si vous configurez un tableau de n\u0153uds de secours, vous pouvez appeler la fonction <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitsetbestnode\">setBestNode<\/a><\/noindex> pour d\u00e9terminer le meilleur n\u0153ud principal bas\u00e9 sur la valeur maximale de la hauteur actuelle et de la vitesse de r\u00e9ponse. Maintenant, ajoutez \u00e0 cela le cache interne des requ\u00eates et prenez soin des utilisateurs ainsi que des propri\u00e9taires de n\u0153uds.<\/p>\n<p><\/p>\n<p>Un des derniers m\u00e9canismes avanc\u00e9s est la fonction <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxmonitor\">txMonitor<\/a><\/noindex>. Cela est n\u00e9 de la n\u00e9cessit\u00e9 de r\u00e9agir aux transactions entrantes en temps r\u00e9el. Cette fonctionnalit\u00e9 r\u00e9sout enti\u00e8rement tous les enjeux li\u00e9s au traitement des transactions sur la blockchain. Plus de douleur, il vous suffit de d\u00e9finir votre fonction de rappel avec les options souhait\u00e9es et d'attendre les nouvelles transactions qui d\u00e9clencheront vos processus. Par exemple, un autre de mes projets <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO<\/a><\/noindex> est enti\u00e8rement construit autour de cette fonction, vous pouvez tranquillement explorer comment elle fonctionne directement <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/85d8373de56baff7c05697475211633b521bca7d\/src\/VECRO.php#L80\">dans le code du projet<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>J'aime l'open source, c'est l'une des plus grandes r\u00e9alisations de l'humanit\u00e9. Comme je suis le seul d\u00e9veloppeur et que j'ai atteint un \u00e9tat o\u00f9 tous mes besoins sont satisfaits, je vous invite \u00e0 utiliser et \u00e0 contribuer \u00e0 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446110\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f PHP \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u044c. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043a\u0430\u0440\u043c\u0430\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u0437\u0430\u0434\u0430\u0447 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442. \u0411\u044b\u043b\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0438\u0434\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0435 \u0441 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u043c Waves Platform \u0432 \u0435\u0433\u043e \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0435 \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e SDK \u043d\u0430 PHP. \u0427\u0442\u043e \u0436, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. \u041f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439. \u0422\u0430\u043a, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30639","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f PHP \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47WavesKit \u2014 PHP \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u043c Waves | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f PHP \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:36:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:36:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47WavesKit \u2014 framework PHP pour travailler avec la blockchain Waves | ProHoster","description":"J'aime PHP pour la rapidit\u00e9 de d\u00e9veloppement et sa grande portabilit\u00e9.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47WavesKit \u2014 PHP \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u043c Waves | ProHoster","og:description":"\u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f PHP \u0437\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0441\u0442\u044c.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:36:39+00:00","article:modified_time":"2019-10-31T18:36:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30639","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 02:15:25","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:31:24","updated":"2026-01-21 02:15:25","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/30639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=30639"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/30639\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=30639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=30639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=30639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}