{"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\/ro\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","title":{"rendered":"WavesKit \u2014 un cadru PHP pentru lucrul cu blockchain-ul Waves","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00cemi place <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/PHP\">PHP<\/a><\/noindex> pentru rapiditatea dezvolt\u0103rii \u0219i portabilitatea excelent\u0103. Este foarte bine c\u00e2nd ai \u00eentotdeauna la \u00eendem\u00e2n\u0103 un instrument gata s\u0103 rezolve problemele.<\/p>\n<p><\/p>\n<p>A fost destul de dezam\u0103gitor c\u00e2nd, \u00een timpul \u00eent\u00e2lnirii cu blockchain-ul autohton <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesplatform.com\">Waves Platform<\/a><\/noindex> nu am g\u0103sit un SDK gata pe PHP. Ei bine, a trebuit s\u0103-l scriu eu.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>La \u00eenceput, a trebuit s\u0103 folosesc <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-full-node\/what-is-a-full-node.html\">(nodes). Configura\u021bia pentru noduri este scris\u0103<\/a><\/noindex> pentru semnarea tranzac\u021biilor. Astfel, pentru a gestiona trei adrese, a trebuit s\u0103 pornesc trei noduri... A fost o imagine jalnic\u0103, de\u0219i rezolva unele probleme. P\u00e2n\u0103 c\u00e2nd am realizat c\u0103 a te baza pe noduri este un impas. \u00cen primul r\u00e2nd, din cauza func\u021bionalit\u0103\u021bii limitate, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-api-and-sdk\/waves-node-rest-api.html\">API<\/a><\/noindex>, \u00een al doilea r\u00e2nd, din cauza vitezei (\u00een acele zile nodurile erau foarte lente).<\/p>\n<p><\/p>\n<p>Am \u00eenceput dou\u0103 lucr\u0103ri paralele. Una \u2013 s\u0103 fac un explorator de blockchain care s\u0103 fie rapid \u0219i complet independent de API-urile nodurilor. Cealalt\u0103 \u2013 s\u0103 adun toate func\u021biile pentru a lucra cu Waves Platform \u00eentr-un singur loc. A\u0219a au ap\u0103rut proiectele <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/w8io\">w8io<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Primul pas \u00een culisele blockchain-ului Waves a fost <noindex><a rel=\"nofollow\" href=\"https:\/\/w8io.ru\">exploratorul w8io<\/a><\/noindex>. Nu a fost simplu, dar totu\u0219i am reu\u0219it s\u0103 scriu un calcul independent al tuturor soldurilor \u0219i chiar am g\u0103sit o eroare \u00een calculele pe nodurile originale (<noindex><a rel=\"nofollow\" href=\"https:\/\/forum.wavesplatform.com\/t\/bug-bounty-program\/1127\">programa bug-bounty<\/a><\/noindex> de altfel, func\u021bioneaz\u0103 la ei, pl\u0103tesc pentru erorile g\u0103site). Pute\u021bi studia \u00een detaliu func\u021bionalitatea exploratorului w8io \u00een aceast\u0103 tem\u0103: <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>\u00cen procesul de lucru asupra lui w8io aveam deja \u00eendoieli, dar c\u00e2nd munca a ajuns la final logic \u0219i am \u00eenceput s\u0103 creez SDK-ul, \u00eendoielile s-au confirmat. Nu am reu\u0219it s\u0103 g\u0103sesc nicaieri unele func\u021bii, inclusiv cele mai importante, criptografice. Atunci am \u00eenceput s\u0103 creez c\u0103r\u0103mizile mele pentru funda\u021bie. A\u0219a au luat na\u0219tere: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/ABCode\">ABCode<\/a><\/noindex> pentru codificarea \u00een base58 (de fapt pentru codificarea oric\u0103rui alfabet \u00een oricare), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\">Curve25519<\/a><\/noindex> pentru crearea \u0219i verificarea semn\u0103turilor compatibile (cu variantele <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\/blob\/0ba56fa566f4a29b06126465b9ebbe59c915ffbd\/src\/Curve25519.php#L104\">pe steroizi<\/a><\/noindex>), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Blake2b\">Blake2b<\/a><\/noindex> pentru calcularea unuia dintre hash-uri (care a fost disponibil doar \u00eencep\u00e2nd cu PHP 7.2) etc.<\/p>\n<p><\/p>\n<p>Aici trebuie s\u0103 \u00eei mul\u021bumesc <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\">Inal Kardanov<\/a><\/noindex> pentru c\u00e2teva sfaturi valoroase care m-au \u00eendrumat \u00een direc\u021bia <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Composer_(software)\">composer<\/a><\/noindex> \u00een loc de fi\u0219ierele include pe care le cuno\u0219team, dar care erau \u00eenvechite.<\/p>\n<p><\/p>\n<p>Dup\u0103 c\u00e2teva luni <noindex>WavesKit a v\u0103zut lumina zilei<\/noindex>, a ie\u0219it din <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\/status\/1091241637706190848\">versiunea beta<\/a><\/noindex> \u0219i acum este preg\u0103tit s\u0103 lucreze cu toate func\u021bionalit\u0103\u021bile standard ale platformei Waves. Tot ce este disponibil \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-environment\/waves-mainnet.html\">re\u021beaua principal\u0103<\/a><\/noindex> Tranzac\u021biile pot fi u\u0219or create, semnate \u0219i trimise de un singur pachet care func\u021bioneaz\u0103 pe toate versiunile PHP pe 64 de bi\u021bi, \u00eencep\u00e2nd cu 5.6 inclusiv.<\/p>\n<p><\/p>\n<p>Conect\u0103m WavesKit \u00een proiectul nostru:<\/p>\n<p><\/p>\n<pre><code class=\"php\">composer require deemru\/waveskit<\/code><\/pre>\n<p><\/p>\n<p>Folosim:<\/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>\u00cen exemplul de mai sus, cre\u0103m un obiect WavesKit, care func\u021bioneaz\u0103 \u00een re\u021beaua de testare &#171;T&#187;. Stabilim fraza de recuperare, din care sunt calculate automat cheile \u0219i adresa contului pe baza cheii publice. Apoi, cre\u0103m o tranzac\u021bie de transfer de 0.00000001 Waves de la adresa calculat\u0103 automat pe baza frazei de recuperare c\u0103tre adresa aliasului &#171;test&#187;, o semn\u0103m cu cheia privat\u0103 \u0219i o trimitem \u00een re\u021bea. Dup\u0103 aceasta, ne asigur\u0103m c\u0103 tranzac\u021bia a fost confirmat\u0103 cu succes de re\u021bea.<\/p>\n<p><\/p>\n<p>Lucrul cu tranzac\u021biile se concentreaz\u0103 \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxaddressscript\">func\u021biile care \u00eencep cu tx<\/a><\/noindex>. Pentru o mai bun\u0103 \u00een\u021belegere a func\u021bion\u0103rii tranzac\u021biilor, pute\u021bi studia <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md\">documenta\u021bia WavesKit<\/a><\/noindex> sau pute\u021bi s\u0103 consulta\u021bi direct exemplele vizuale din <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/2c4937199c88bc4ae105f60657b1389482471c1f\/test\/selftest.php#L237\">teste de integrare continu\u0103.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Deoarece WavesKit a fost dezvoltat \u00een condi\u021bii de utilizare real\u0103, acesta are deja caracteristici avansate. Prima caracteristic\u0103 killer este <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitensure\">func\u021bia ensure<\/a><\/noindex>, care controleaz\u0103 atingerea nivelului necesar de \u00eencredere c\u0103 tranzac\u021bia nu s-a pierdut, ci, dimpotriv\u0103, a fost confirmat\u0103 \u0219i a atins num\u0103rul necesar de confirm\u0103ri \u00een re\u021bea.<\/p>\n<p><\/p>\n<p>Un alt mecanism infailibil este modul \u00een care WavesKit comunic\u0103 cu nodurile. \u00cen condi\u021bii ideale, cadrul lucreaz\u0103 numai cu nodul principal, men\u021bin\u00e2nd o conexiune constant\u0103 cu acesta, dar \u00een cazul erorilor se poate comuta automat pe noduri de rezerv\u0103. Dac\u0103 stabili\u021bi un set de noduri de rezerv\u0103, pute\u021bi apela func\u021bia <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitsetbestnode\">setBestNode<\/a><\/noindex> pentru a determina cel mai bun nod ca principal pe baza valorii maxime a \u00een\u0103l\u021bimii curente \u0219i a vitezei de r\u0103spuns. Acum ad\u0103uga\u021bi la aceasta un cache intern de cereri \u0219i ve\u021bi sim\u021bi grij\u0103 at\u00e2t pentru utilizatori, c\u00e2t \u0219i pentru proprietarii nodurilor.<\/p>\n<p><\/p>\n<p>Unul dintre cele mai recente mecanisme avansate este func\u021bia <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxmonitor\">txMonitor<\/a><\/noindex>. A ap\u0103rut din necesitatea de a reac\u021biona la tranzac\u021biile incoming \u00een timp real. Aceast\u0103 func\u021bie rezolv\u0103 complet toate aspectele legate de procesarea tranzac\u021biilor \u00een blockchain. Niciun disconfort, doar seta\u021bi func\u021bia dvs. callback cu op\u021biunile dorite \u0219i a\u0219tepta\u021bi tranzac\u021biile noi care vor ini\u021bia procesele dvs. De exemplu, un alt proiect al meu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO<\/a><\/noindex> este construit complet \u00een jurul acestei func\u021bii, pute\u021bi explora cu u\u0219urin\u021b\u0103 cum func\u021bioneaz\u0103 chiar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/85d8373de56baff7c05697475211633b521bca7d\/src\/VECRO.php#L80\">\u00een codul proiectului<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>\u00cemi place open source, este una dintre cele mai mari realiz\u0103ri ale umanit\u0103\u021bii. Fiind singurul dezvoltator \u0219i ating\u00e2nd starea \u00een care toate nevoile mele sunt \u00eemplinite, v\u0103 invit s\u0103 folosi\u021bi \u0219i s\u0103 contribui\u021bi la <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p>Sursa: <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.1 - 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\/ro\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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 pentru lucrul cu blockchain-ul Waves | ProHoster","description":"\u00cemi place PHP pentru viteza de dezvoltare \u0219i portabilitatea excelent\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/30639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=30639"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30639\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=30639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=30639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=30639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}