{"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\/hr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","title":{"rendered":"WavesKit \u2014 PHP okvir za rad s blockchainom Waves","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Svi\u0111a mi se <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/PHP\">PHP<\/a><\/noindex> zbog brzine razvoja i odli\u010dne prenosivosti. Odli\u010dno je kada imate alat spreman za rje\u0161avanje problema uvijek pri ruci.<\/p>\n<p><\/p>\n<p>Bilo je prili\u010dno obeshrabruju\u0107e kada sam se upoznao s doma\u0107im blockchainom <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesplatform.com\">Waves Platform<\/a><\/noindex> i kada nije bilo spremnog SDK-a na PHP-u. Pa, morao sam ga napisati.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Isprva sam morao koristiti <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-full-node\/what-is-a-full-node.html\">nodi<\/a><\/noindex> za potpisivanje transakcija. Tako sam, za upravljanje tri adrese, morao pokrenuti tri \u010dvora... To je bio \u017ealosan prizor, iako je rje\u0161avao neka pitanja. Do trenutka kada je do\u0161lo do spoznaje da se oslanjanje na \u010dvorove - to je slijepa ulica. Prvo, zbog ograni\u010dene funkcionalnosti <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-api-and-sdk\/waves-node-rest-api.html\">API<\/a><\/noindex>, drugo, zbog brzine (u to su doba \u010dvorovi bili vrlo spori).<\/p>\n<p><\/p>\n<p>Zapo\u010deo sam dva paralelna projekta. Jedan - napraviti blockchain preglednik koji \u0107e biti brz i potpuno neovisan o API-ju \u010dvorova. Drugi - skupiti sve funkcije za rad s Waves Platform na jednom mjestu. Tako su nastali projekti <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/w8io\">w8io<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Prvi korak iza kulisa blockchaina Waves bio je <noindex><a rel=\"nofollow\" href=\"https:\/\/w8io.ru\">preglednik w8io<\/a><\/noindex>. Nije bilo lako, ali ipak je uspjelo stvoriti neovisnu kalkulaciju svih balansa i \u010dak prona\u0107i gre\u0161ku u prora\u010dunima na izvornim \u010dvorovima (<noindex><a rel=\"nofollow\" href=\"https:\/\/forum.wavesplatform.com\/t\/bug-bounty-program\/1127\">bug-bounty program<\/a><\/noindex> ina\u010de kod njih radi, pla\u0107aju za prona\u0111ene gre\u0161ke). Mo\u017eete detaljnije prou\u010diti funkcionalnost preglednika w8io u ovoj temi: <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>U procesu rada na w8io ve\u0107 sam imao sumnje, ali kada je rad do\u0161ao do logi\u010dnog kraja i zapo\u010deo sam s izradom SDK-a, sumnje su se potvrdile. Nigdje nisam mogao prona\u0107i neke funkcije, uklju\u010duju\u0107i i najva\u017enije, kriptografske. Tada sam po\u010deo s izradom svojih temelja. Tako su nastali: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/ABCode\">ABCode<\/a><\/noindex> za kodiranje u base58 (zapravo za kodiranje bilo kojeg alfabeta u bilo koji), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\">Curve25519<\/a><\/noindex> za stvaranje i provjeru kompatibilnih potpisa (s varijantama <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\/blob\/0ba56fa566f4a29b06126465b9ebbe59c915ffbd\/src\/Curve25519.php#L104\">na steroidima<\/a><\/noindex>), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Blake2b\">Blake2b<\/a><\/noindex> za izra\u010dun jednog od hashova (koji je bio dostupan tek od PHP 7.2) i sl.<\/p>\n<p><\/p>\n<p>Ovdje bih trebao zahvaliti <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\">Inalu Kardanovu<\/a><\/noindex> za nekoliko dragocjenih savjeta koji su me usmjerili prema <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Composer_(software)\">composer<\/a><\/noindex> umjesto uobi\u010dajenih, ali zastarjelih, include datoteka.<\/p>\n<p><\/p>\n<p>Nakon nekoliko mjeseci <noindex>WavesKit je ugledao svjetlost dana<\/noindex>, iza\u0161ao iz <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\/status\/1091241637706190848\">beta verzije<\/a><\/noindex> i sada je spreman za rad sa svim standardnim funkcionalnostima Waves platforme. Sve dostupne u <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-environment\/waves-mainnet.html\">glavnoj mre\u017ei<\/a><\/noindex> Transakcije se mogu lako kreirati, potpisivati i slati putem jednog paketa koji radi na svim 64-bitnim verzijama PHP od 5.6 pa na dalje.<\/p>\n<p><\/p>\n<p>Dodajte WavesKit u svoj projekt:<\/p>\n<p><\/p>\n<pre><code class=\"php\">composer require deemru\/waveskit<\/code><\/pre>\n<p><\/p>\n<p>Koristimo:<\/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>U gornjem primjeru stvaramo objekt WavesKit koji radi u testnoj mre\u017ei &#171;T&#187;. Postavljamo sjeme frazu iz koje se automatski izra\u010dunavaju klju\u010devi i adresa ra\u010duna na temelju javnog klju\u010da. Zatim kreiramo transakciju prijenosa 0.00000001 Waves s automatski izra\u010dunatog adresa temeljenog na sjeme frazi na adresu aliasa &#171;test&#187;, predajemo je na potpisivanje privatnim klju\u010dem i \u0161aljemo u mre\u017eu. Nakon toga se uvjeravamo da je transakcija uspje\u0161no potvr\u0111ena mre\u017eom.<\/p>\n<p><\/p>\n<p>Rad s transakcijama je usredoto\u010den na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxaddressscript\">funkcije koje po\u010dinju s tx<\/a><\/noindex>. Za bolje razumijevanje rada s transakcijama mo\u017eete prou\u010diti <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md\">dokumentaciju WavesKit<\/a><\/noindex> ili odmah pogledati jasne primjere u <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/2c4937199c88bc4ae105f60657b1389482471c1f\/test\/selftest.php#L237\">testovima kontinuirane integracije<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Budu\u0107i da je WavesKit razvijan u uvjetima stvarne upotrebe, ve\u0107 je dobio napredne funkcije. Prva killer zna\u010dajka je <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitensure\">funkcija ensure<\/a><\/noindex>, koja nadzire postizanje potrebnog nivoa sigurnosti, da transakcija nije izgubljena, ve\u0107 je potvr\u0111ena i dostigla potreban broj potvrda u mre\u017ei.<\/p>\n<p><\/p>\n<p>Drugi neprobojni mehanizam je na\u010din na koji WavesKit komunicira s \u010dvorovima. U idealnim uvjetima framework radi samo s glavnim \u010dvorom, odr\u017eavaju\u0107i stalnu vezu s njim, ali u slu\u010daju gre\u0161aka mo\u017ee se automatski prebaciti na rezervne. Ako postavite niz rezervnih \u010dvorova, mo\u017eete pozvati funkciju <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitsetbestnode\">setBestNode<\/a><\/noindex> za odre\u0111ivanje najboljeg \u010dvora kao glavnog prema maksimalnom aktu posnovoj i brzini odgovora. Sada dodajte unutarnji cache zahtjeva i osjetite brigu i za korisnike i za vlasnike \u010dvorova.<\/p>\n<p><\/p>\n<p>Jedan od najnovijih naprednih mehanizama je funkcija <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxmonitor\">txMonitor<\/a><\/noindex>. Pojavila se kao odgovor na potrebu za reagiranjem na dolazne transakcije u stvarnom vremenu. Ova funkcija u potpunosti rje\u0161ava sve aspekte vezane uz obradu transakcija u blockchainu. Vi\u0161e nema boli, jednostavno postavite svoju callback funkciju s \u017eeljenim opcijama i \u010dekajte nove transakcije koje \u0107e pokrenuti va\u0161e procese. Na primjer, jo\u0161 jedan moj projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO<\/a><\/noindex> potpuno je izgra\u0111en oko ove funkcije, mo\u017eete bezbri\u017eno istra\u017eivati kako ona funkcionira direktno <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/85d8373de56baff7c05697475211633b521bca7d\/src\/VECRO.php#L80\">u kodu projekta<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Svi\u0111a mi se open source, to je jedno od najve\u0107ih dostignu\u0107a \u010dovje\u010danstva. Budu\u0107i da sam jedini programer i dostigao sam stanje u kojem su sve moje potrebe zadovoljene, pozivam vas da koristite i doprinosite <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p>Izvor: <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.4 - 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\/hr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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 PHP okvir za rad s blockchainom Waves | ProHoster","description":"Svi\u0111a mi se PHP zbog brzine razvoja i odli\u010dne prenosivosti.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/30639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=30639"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/30639\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=30639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=30639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=30639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}