{"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\/sk\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","title":{"rendered":"WavesKit \u2014 PHP framework pre pr\u00e1cu s blockchainom Waves","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00e1\u010di sa mi <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/PHP\">PHP<\/a><\/noindex> za r\u00fdchlos\u0165 v\u00fdvoja a vynikaj\u00facu prenosnos\u0165. Je to ve\u013emi dobr\u00e9, ke\u010f m\u00e1te vrecku v\u017edy n\u00e1stroj pripraven\u00fd na rie\u0161enie \u00faloh.<\/p>\n<p><\/p>\n<p>Bolo dos\u0165 mrzut\u00e9, ke\u010f pri zoznamovan\u00ed sa s dom\u00e1cim blockchainom <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesplatform.com\">Waves Platform<\/a><\/noindex> v jeho arzen\u00e1le neexistoval \u017eiadny hotov\u00fd SDK pre PHP. Nu\u017e, musel som ho nap\u00edsa\u0165.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Na za\u010diatku som musel pou\u017ei\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-full-node\/what-is-a-full-node.html\">uzly<\/a><\/noindex> na podpisovanie transakci\u00ed. Tak\u017ee na spr\u00e1vu troch adries som musel spusti\u0165 tri uzly\u2026 Bolo to smutn\u00e9 divadlo, hoci to rie\u0161ilo niektor\u00e9 \u00falohy. A\u017e k\u00fdm nepri\u0161lo pochopenie, \u017ee spolieha\u0165 sa na uzly je slep\u00e1 uli\u010dka. Po prv\u00e9, z d\u00f4vodu obmedzenej funk\u010dnosti <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-api-and-sdk\/waves-node-rest-api.html\">API<\/a><\/noindex>, po druh\u00e9, kv\u00f4li r\u00fdchlosti (vtedy boli uzly ve\u013emi pomal\u00e9).<\/p>\n<p><\/p>\n<p>Za\u010dal som dve paraleln\u00e9 pr\u00e1ce. Jedna bola vytvori\u0165 blockchainov\u00fd prehliada\u010d, ktor\u00fd bude r\u00fdchly a \u00faplne nez\u00e1visl\u00fd od API uzlov. Druh\u00e1 bola zhroma\u017edi\u0165 v\u0161etky funkcie pre pr\u00e1cu s Waves Platform na jednom mieste. Tak sa objavili projekty <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/w8io\">w8io<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Prv\u00fdm krokom za kulisy blockchainu Waves sa stal <noindex><a rel=\"nofollow\" href=\"https:\/\/w8io.ru\">prehliada\u010d w8io<\/a><\/noindex>. Nebolo to jednoduch\u00e9, ale aj tak sa mi podarilo nap\u00edsa\u0165 nez\u00e1visl\u00fd v\u00fdpo\u010det v\u0161etk\u00fdch zostatkov a dokonca n\u00e1js\u0165 chybu vo v\u00fdpo\u010dtoch na origin\u00e1lnych uzloch (<noindex><a rel=\"nofollow\" href=\"https:\/\/forum.wavesplatform.com\/t\/bug-bounty-program\/1127\">program bug-bounty<\/a><\/noindex> , mimochodom, u nich funguje, za n\u00e1jden\u00e9 chyby platia). M\u00f4\u017eete podrobne presk\u00fama\u0165 funk\u010dnos\u0165 prehliada\u010da w8io v tejto t\u00e9me: <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>Po\u010das pr\u00e1ce na w8io som mal u\u017e pochybnosti, ale ke\u010f sa pr\u00e1ca pribl\u00ed\u017eila k logick\u00e9mu z\u00e1veru a za\u010dal som s vytv\u00e1ran\u00edm SDK, pochybnosti sa potvrdili. Nena\u0161iel som niektor\u00e9 funkcie nikde, vr\u00e1tane t\u00fdch najd\u00f4le\u017eitej\u0161\u00edch, kryptografick\u00fdch. Tak som za\u010dal s vytvoren\u00edm svojich prvkov na z\u00e1klady. Tak vznikli: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/ABCode\">ABCode<\/a><\/noindex> na k\u00f3dovanie do base58 (v skuto\u010dnosti na k\u00f3dovanie ak\u00e9hoko\u013evek abecedy do ak\u00e9hoko\u013evek), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\">Curve25519<\/a><\/noindex> na vytvorenie a kontrolu kompatibiln\u00fdch podpisov (s variantmi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\/blob\/0ba56fa566f4a29b06126465b9ebbe59c915ffbd\/src\/Curve25519.php#L104\">na steroidy<\/a><\/noindex>), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Blake2b\">Blake2b<\/a><\/noindex> na v\u00fdpo\u010det jedn\u00e9ho z hashov (ktor\u00fd bol k dispoz\u00edcii len od PHP 7.2) a tak \u010falej.<\/p>\n<p><\/p>\n<p>Tu by som mal po\u010fakova\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\">Inalovi Kardanovovi<\/a><\/noindex> za nieko\u013eko cenn\u00fdch r\u00e1d, ktor\u00e9 ma nasmerovali k <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Composer_(software)\">composer<\/a><\/noindex> namiesto pre m\u0148a zvy\u010dajn\u00fdch, ale zastaran\u00fdch include s\u00faborov.<\/p>\n<p><\/p>\n<p>Po p\u00e1r mesiacoch <noindex>WavesKit uzrel svetlo sveta<\/noindex>, vy\u0161iel z <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\/status\/1091241637706190848\">beta verzie<\/a><\/noindex> a teraz je pripraven\u00fd na pr\u00e1cu so v\u0161etk\u00fdm \u0161tandardn\u00fdm funk\u010dn\u00fdm vybaven\u00edm platformy Waves. V\u0161etky dostupn\u00e9 v <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-environment\/waves-mainnet.html\">hlavnej sieti<\/a><\/noindex> Transakcie m\u00f4\u017eu by\u0165 jednoducho vytvoren\u00e9, podp\u00edsan\u00e9 a odoslan\u00e9 jedin\u00fdm bal\u00edkom, ktor\u00fd pracuje vo v\u0161etk\u00fdch 64-bitov\u00fdch verzi\u00e1ch PHP od verzie 5.6 a vy\u0161\u0161ie.<\/p>\n<p><\/p>\n<p>Pripojte WavesKit do svojho projektu:<\/p>\n<p><\/p>\n<pre><code class=\"php\">composer require deemru\/waveskit<\/code><\/pre>\n<p><\/p>\n<p>Pou\u017e\u00edvame:<\/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>V pr\u00edklade vy\u0161\u0161ie vytv\u00e1rame objekt WavesKit, ktor\u00fd funguje v testovacej sieti &#171;T&#187;. Nastav\u00edme seed fr\u00e1zu, z ktorej sa automaticky vypo\u010d\u00edtaj\u00fa k\u013e\u00fa\u010de a adresa \u00fa\u010dtu na z\u00e1klade verejn\u00e9ho k\u013e\u00fa\u010da. N\u00e1sledne vytv\u00e1rame transakciu prevodu 0.00000001 Waves z automaticky vypo\u010d\u00edtanej adresy na adresu aliasu &#171;test&#187;, odovzd\u00e1vame ju na podp\u00edsanie s\u00fakromn\u00fdm k\u013e\u00fa\u010dom a posielame do siete. Potom sa uist\u00edme, \u017ee transakcia bola \u00faspe\u0161ne potvrden\u00e1 sie\u0165ou.<\/p>\n<p><\/p>\n<p>Pr\u00e1ca s transakciami je s\u00fastreden\u00e1 v <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxaddressscript\">funkci\u00e1ch za\u010d\u00ednaj\u00facich na tx<\/a><\/noindex>. Pre lep\u0161ie pochopenie pr\u00e1ce s transakciami si m\u00f4\u017eete \u0161tudova\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md\">dokument\u00e1ciu WavesKit<\/a><\/noindex> alebo sa priamo obr\u00e1ti\u0165 na n\u00e1zorn\u00e9 pr\u00edklady v <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/2c4937199c88bc4ae105f60657b1389482471c1f\/test\/selftest.php#L237\">testoch kontinu\u00e1lnej integr\u00e1cie<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ke\u010f\u017ee WavesKit sa vyv\u00edjal v podmienkach re\u00e1lneho pou\u017eitia, u\u017e m\u00e1 pokro\u010dil\u00e9 funkcie. Prv\u00e1 killer funkcia \u2014 to je <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitensure\">funkcia ensure<\/a><\/noindex>, ktor\u00e1 kontroluje dosiahnutie po\u017eadovanej \u00farovne d\u00f4very, \u017ee transakcia sa nestratila, ale naopak, bola potvrden\u00e1 a dosiahla potrebn\u00fd po\u010det potvrden\u00ed v sieti.<\/p>\n<p><\/p>\n<p>\u010eal\u0161\u00ed nepriestreln\u00fd mechanizmus \u2014 ako WavesKit komunikuje s uzlami. V optim\u00e1lnych podmienkach r\u00e1mec pracuje iba s hlavnou uzlom, udr\u017euj\u00fac s \u0148ou trval\u00e9 spojenie, ale pri chyb\u00e1ch sa m\u00f4\u017ee automaticky prep\u00edna\u0165 na z\u00e1lo\u017en\u00e9. Ak nastav\u00edte pole z\u00e1lo\u017en\u00fdch uzlov, m\u00f4\u017eete vola\u0165 funkciu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitsetbestnode\">setBestNode<\/a><\/noindex> pre ur\u010denie najlep\u0161ej uzlu ako hlavnej na z\u00e1klade maxim\u00e1lnej hodnoty aktu\u00e1lnej v\u00fd\u0161ky a r\u00fdchlosti odpovede. Teraz pridajte k tomu vn\u00fatorn\u00fa cache po\u017eiadaviek a postar\u00e1te sa o pou\u017e\u00edvate\u013eov aj vlastn\u00edkov uzlov.<\/p>\n<p><\/p>\n<p>Jedn\u00fdm z posledn\u00fdch pokro\u010dil\u00fdch mechanizmov \u2014 funkcia <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxmonitor\">txMonitor<\/a><\/noindex>. Pri\u0161la ako reakcia na potrebu reagova\u0165 na prich\u00e1dzaj\u00face transakcie v re\u00e1lnom \u010dase. T\u00e1to funkcia \u00faplne rie\u0161i v\u0161etky aspekty s\u00favisiace s spracovan\u00edm transakci\u00ed v blockchaine. \u017diadna boles\u0165, jednoducho nastav\u00edte svoju callback funkciu s po\u017eadovan\u00fdmi mo\u017enos\u0165ami a \u010dak\u00e1te na nov\u00e9 transakcie, ktor\u00e9 spustia va\u0161e procesy. Napr\u00edklad, e\u0161te jeden m\u00f4j projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO<\/a><\/noindex> \u00faplne postaven\u00fd okolo tejto funkcie, m\u00f4\u017eete si v pokoji presk\u00fama\u0165, ako funguje priamo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/85d8373de56baff7c05697475211633b521bca7d\/src\/VECRO.php#L80\">v k\u00f3de projektu<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>P\u00e1\u010di sa mi open source, to je jedno z najv\u00e4\u010d\u0161\u00edch dosiahnut\u00ed \u013eudstva. Ke\u010f\u017ee som jedin\u00fd v\u00fdvoj\u00e1r a dosiahol som stav, v ktorom s\u00fa v\u0161etky moje potreby splnen\u00e9, poz\u00fdvam v\u00e1s, aby ste pou\u017e\u00edvali a prispievali k <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p>Zdroj: <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\/sk\/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=\"sk_SK\" \/>\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\/sk\/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 framework pre pr\u00e1cu s blockchainom Waves | ProHoster","description":"P\u00e1\u010di sa mi PHP za r\u00fdchlos\u0165 v\u00fdvoja a vynikaj\u00facu prenosite\u013enos\u0165.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/30639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=30639"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/30639\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=30639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=30639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=30639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}