{"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\/lv\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","title":{"rendered":"WavesKit \u2014 PHP ietvars darbam ar Waves blok\u0137\u0113di","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Man pat\u012bk <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/PHP\">PHP<\/a><\/noindex> par izstr\u0101des \u0101trumu un lielisko p\u0101rn\u0113s\u0101jam\u012bbu. Tas ir \u013coti labi, ja kabat\u0101 vienm\u0113r ir r\u012bks, lai risin\u0101tu uzdevumus.<\/p>\n<p><\/p>\n<p>Bija diezgan s\u0101p\u012bgi, kad iepaz\u012bstoties ar iek\u0161\u0113jo blok\u0137\u0113di <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesplatform.com\">Waves Platform<\/a><\/noindex> taj\u0101 nebija gatava SDK uz PHP. Nu, n\u0101c\u0101s to uzrakst\u012bt.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>S\u0101kum\u0101 n\u0101c\u0101s izmantot <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-full-node\/what-is-a-full-node.html\">mezglus<\/a><\/noindex> dar\u012bjumu parakst\u012b\u0161anai. T\u0101tad tr\u012bs adres\u0113m bija j\u0101uzs\u0101k tr\u012bs mezgli\u2026 Tas bija no\u017e\u0113lojams skats, lai gan tas atrisin\u0101ja da\u017eas probl\u0113mas. L\u012bdz br\u012bdim, kad sapratu, ka pa\u013cauties uz mezgliem \u2014 tas ir aklu gals. Pirmk\u0101rt, ierobe\u017eot\u0101 funkcionalit\u0101te <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-api-and-sdk\/waves-node-rest-api.html\">API<\/a><\/noindex>, otrk\u0101rt, \u0101truma d\u0113\u013c (tobr\u012bd mezgli bija \u013coti l\u0113ni).<\/p>\n<p><\/p>\n<p>Es uzs\u0101ku divus paral\u0113lus darbus. Viens \u2014 izveidot blok\u0137\u0113des p\u0101rskatu, kas b\u016bs \u0101trs un piln\u012bgi neatkar\u012bgs no mezglu API. Otrais \u2014 apvienot visas funkcijas darbam ar Waves Platform vien\u0101 viet\u0101. T\u0101 rad\u0101s projekti <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/w8io\">w8io<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Pirmais solis aiz Waves blok\u0137\u0113des bi\u013cetes bija <noindex><a rel=\"nofollow\" href=\"https:\/\/w8io.ru\">p\u0101rskatu w8io<\/a><\/noindex>. Nebija viegli, bet tom\u0113r izdev\u0101s uzrakst\u012bt neatkar\u012bgu visu bilances apr\u0113\u0137inu un pat atrast k\u013c\u016bdu apr\u0113\u0137inos ori\u0123in\u0101lajos mezglos (<noindex><a rel=\"nofollow\" href=\"https:\/\/forum.wavesplatform.com\/t\/bug-bounty-program\/1127\">bug-bounty programma<\/a><\/noindex> , starp citu, pie vi\u0146iem darbojas, par atrastaj\u0101m k\u013c\u016bd\u0101m maks\u0101). J\u016bs varat detaliz\u0113t\u0101k iepaz\u012bties ar w8io p\u0101rskata funkcionalit\u0101ti \u0161aj\u0101 t\u0113m\u0101: <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>Str\u0101d\u0101jot pie w8io, man jau bija \u0161aubas, bet kad darbs tuvoj\u0101s lo\u0123iskajam beig\u0101m un es uzs\u0101ku SDK izveidi, \u0161aubas apstiprin\u0101j\u0101s. Es nekur nevar\u0113ju atrast da\u017eas funkcijas, tostarp vissvar\u012bg\u0101k\u0101s, kriptogr\u0101fisk\u0101s. Tad es s\u0101ku veidot savus pamatus. T\u0101 \u010detri tika rad\u012bt: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/ABCode\">ABCode<\/a><\/noindex> base58 kod\u0113\u0161anai (paties\u012bb\u0101 jebkura alfab\u0113ta kod\u0113\u0161anai), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\">Curve25519<\/a><\/noindex> lai izveidotu un p\u0101rbaud\u012btu sader\u012bgas parakstus (ar variantiem <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\/blob\/0ba56fa566f4a29b06126465b9ebbe59c915ffbd\/src\/Curve25519.php#L104\">uz stero\u012bdiem<\/a><\/noindex>), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Blake2b\">Blake2b<\/a><\/noindex> viena no ha\u0161\u0101m apr\u0113\u0137in\u0101\u0161anai (kas bija pieejama tikai s\u0101kot no PHP 7.2) utt.<\/p>\n<p><\/p>\n<p>\u0160eit es gribu pateikt paldies <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\">In\u0101lam Kardanovam<\/a><\/noindex> par da\u017eiem v\u0113rt\u012bgiem padomiem, kas novirz\u012bja mani uz <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Composer_(software)\">composer<\/a><\/noindex> viet\u0101 no man ierastiem, bet novecoju\u0161iem, include failiem.<\/p>\n<p><\/p>\n<p>P\u0113c p\u0101ris m\u0113ne\u0161iem <noindex>WavesKit ieraudz\u012bja gaismu<\/noindex>, veiksm\u012bgi izn\u0101ca no <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\/status\/1091241637706190848\">beta versija<\/a><\/noindex> un tagad ir gatavs darbam ar visu standarta funkcionalit\u0101ti Waves platform\u0101. Visi pieejamie <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-environment\/waves-mainnet.html\">galvenaj\u0101 t\u012bkl\u0101<\/a><\/noindex> Transakcijas var viegli izveidot, parakst\u012bt un nos\u016bt\u012bt, izmantojot tikai vienu paketi, kas darbojas vis\u0101s 64-bit PHP versij\u0101s no 5.6 un jaun\u0101k\u0101m.<\/p>\n<p><\/p>\n<p>Pievienojam WavesKit savai projektam:<\/p>\n<p><\/p>\n<pre><code class=\"php\">composer require deemru\/waveskit<\/code><\/pre>\n<p><\/p>\n<p>Izmantojam:<\/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>Iepriek\u0161 min\u0113taj\u0101 piem\u0113r\u0101 m\u0113s izveidojam objektu WavesKit, kas darbojas test\u0113\u0161anas t\u012bkl\u0101 &#171;T&#187;. Iestata s\u0113klas fr\u0101zi, no kuras autom\u0101tiski tiek apr\u0113\u0137in\u0101ti atsl\u0113gas un konta adrese, pamatojoties uz publisko atsl\u0113gu. P\u0113c tam m\u0113s veidojam p\u0101rskait\u012bjuma dar\u012bjumu 0.00000001 Waves no autom\u0101tiski apr\u0113\u0137in\u0101t\u0101s s\u0113klas fr\u0101zes adreses uz aliasa &#171;test&#187; adresi, nos\u016bt\u0101m to parakst\u012b\u0161anai ar priv\u0101to atsl\u0113gu un nos\u016bt\u0101m t\u012bkl\u0101. P\u0113c tam p\u0101rliecin\u0101mies, ka dar\u012bjums ir veiksm\u012bgi apstiprin\u0101ts t\u012bkl\u0101.<\/p>\n<p><\/p>\n<p>Darbs ar transakcij\u0101m tiek koncentr\u0113ts <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxaddressscript\">funkcij\u0101s, kas s\u0101kas ar tx<\/a><\/noindex>. Lai lab\u0101k izprastu darbu ar transakcij\u0101m, varat iepaz\u012bties ar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md\">WavesKit dokument\u0101ciju<\/a><\/noindex> vai uzreiz apskat\u012bt vizu\u0101los piem\u0113rus <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/2c4937199c88bc4ae105f60657b1389482471c1f\/test\/selftest.php#L237\">nep\u0101rtrauktas integr\u0101cijas testos.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>T\u0101 k\u0101 WavesKit ir att\u012bst\u012bts re\u0101l\u0101s izmanto\u0161anas apst\u0101k\u013cos, tam jau ir radu\u0161\u0101s uzlabotas funkcijas. Pirmais killer features - tas ir <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitensure\">funkcija ensure<\/a><\/noindex>, kas kontrol\u0113, lai sasniegtu nepiecie\u0161amo p\u0101rliec\u012bbas l\u012bmeni, ka transakcija nepazuda, bet gan tika apstiprin\u0101ta un sasniedza nepiecie\u0161amo apstiprin\u0101jumu skaitu t\u012bkl\u0101.<\/p>\n<p><\/p>\n<p>V\u0113l viens nep\u0101rsp\u0113jams meh\u0101nisms - k\u0101 WavesKit sazin\u0101s ar mezgliem. Siltumn\u012bcas apst\u0101k\u013cos ietvars str\u0101d\u0101 tikai ar galveno mezglu, uzturot past\u0101v\u012bgu savienojumu, ta\u010du k\u013c\u016bdu gad\u012bjum\u0101 tas var autom\u0101tiski p\u0101rsl\u0113gties uz rezerves mezgliem. Ja j\u016bs iestat\u0101t rezerves mezglu mas\u012bvu, varat izsaukt funkciju <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitsetbestnode\">setBestNode<\/a><\/noindex> lai noteiktu lab\u0101ko mezglu k\u0101 galveno, pamatojoties uz maksim\u0101lajiem aktu\u0101lajiem augstumiem un atbildes \u0101trumu. Tagad pievienojiet tam iek\u0161\u0113jo piepras\u012bjumu ke\u0161u un izj\u016btiet r\u016bpes gan par lietot\u0101jiem, gan mezglu \u012bpa\u0161niekiem.<\/p>\n<p><\/p>\n<p>Viens no p\u0113d\u0113jiem uzlabotajiem meh\u0101nismiem - funkcija <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxmonitor\">txMonitor<\/a><\/noindex>. T\u0101 rad\u0101s, rea\u0123\u0113jot uz nepiecie\u0161am\u012bbu apstr\u0101d\u0101t ien\u0101ko\u0161\u0101s transakcijas re\u0101l\u0101 laik\u0101. \u0160\u012b funkcija piln\u012bb\u0101 atrisina visas jaut\u0101jumu saist\u012bb\u0101 ar transakciju apstr\u0101di blok\u0137\u0113d\u0113. Vairs nek\u0101das s\u0101p\u012bgas probl\u0113mas, vienk\u0101r\u0161i izveidojiet savu callback funkciju ar v\u0113lamaj\u0101m opcij\u0101m un gaidiet jaunas transakcijas, kas aktiviz\u0113s j\u016bsu procesus. Piem\u0113ram, v\u0113l viens mans projekts <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO<\/a><\/noindex> piln\u012bb\u0101 ir balst\u012bts uz \u0161o funkciju, j\u016bs varat mier\u012bgi izp\u0113t\u012bt, k\u0101 t\u0101 darbojas tie\u0161i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/85d8373de56baff7c05697475211633b521bca7d\/src\/VECRO.php#L80\">projekta kod\u0101<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Man pat\u012bk open source, tas ir viens no liel\u0101kajiem cilv\u0113ces sasniegumiem. T\u0101 k\u0101 esmu vien\u012bgais izstr\u0101d\u0101t\u0101js un esmu sasniedzis st\u0101vokli, kad visas manas vajadz\u012bbas ir apmierin\u0101tas, aicinu j\u016bs izmantot un ieguld\u012bt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">WavesKit<\/a><\/noindex>.<\/p>\n<p>Avots: <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\/lv\/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=\"lv_LV\" \/>\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\/lv\/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 ietvars darbam ar blok\u0137\u0113di Waves | ProHoster","description":"Man pat\u012bk PHP par \u0101tru izstr\u0101di un izcilu p\u0101rnesam\u012bbu.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/30639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=30639"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/30639\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=30639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=30639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=30639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}