{"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\/de\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","title":{"rendered":"WavesKit \u2014 PHP-Framework f\u00fcr die Arbeit mit der Waves-Blockchain","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ich mag es <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/PHP\">PHP<\/a><\/noindex> wegen der Entwicklungspeed und hervorragenden Portabilit\u00e4t. Es ist sehr gut, wenn man immer ein Instrument zur Verf\u00fcgung hat, das bereit ist, Aufgaben zu l\u00f6sen.<\/p>\n<p><\/p>\n<p>Es war ziemlich entt\u00e4uschend, als ich mit der einheimischen Blockchain <noindex><a rel=\"nofollow\" href=\"https:\/\/wavesplatform.com\">Waves Platform<\/a><\/noindex> bekannt wurde, dass es kein fertiges SDK in PHP gab. Nun, ich musste es selbst schreiben.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Anfangs musste ich <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-full-node\/what-is-a-full-node.html\">Nodes<\/a><\/noindex> zum Signieren von Transaktionen verwenden. So musste man f\u00fcr die Verwaltung von drei Adressen drei Nodes starten\u2026 Es war ein j\u00e4mmerlicher Anblick, obwohl es einige Aufgaben l\u00f6ste. Bis ich die Einsicht bekam, dass es ein Irrweg ist, auf Nodes zu setzen. Erstens wegen der eingeschr\u00e4nkten Funktionalit\u00e4t <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-api-and-sdk\/waves-node-rest-api.html\">API<\/a><\/noindex>, und zweitens wegen der Geschwindigkeit (in diesen Tagen waren Nodes sehr langsam).<\/p>\n<p><\/p>\n<p>Ich begann mit zwei parallelen Arbeiten. Die eine war, einen Blockchain-Explorer zu erstellen, der schnell und v\u00f6llig unabh\u00e4ngig von der API der Nodes sein w\u00fcrde. Die andere bestand darin, alle Funktionen f\u00fcr die Arbeit mit der Waves Platform an einem Ort zu sammeln. So entstanden die Projekte <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/w8io\">w8io<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">, \u00fcber das<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Der erste Schritt hinter die Kulissen der Waves-Blockchain war <noindex><a rel=\"nofollow\" href=\"https:\/\/w8io.ru\">der Explorer w8io<\/a><\/noindex>. Es war nicht einfach, aber ich schaffte es trotzdem, eine unabh\u00e4ngige Berechnung aller Salden zu schreiben und sogar einen Fehler in den Berechnungen auf den Original-Nodes zu finden (<noindex><a rel=\"nofollow\" href=\"https:\/\/forum.wavesplatform.com\/t\/bug-bounty-program\/1127\">das Bug-Bounty-Programm<\/a><\/noindex> \u00fcbrigens l\u00e4uft bei ihnen, f\u00fcr gefundene Fehler wird bezahlt). Sie k\u00f6nnen die Funktionalit\u00e4t des Explorers w8io in diesem Thema n\u00e4her erkunden: <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>Im Laufe der Arbeit an w8io hatte ich bereits Zweifel, aber als die Arbeit zu einem logischen Ende kam und ich mit der Erstellung des SDK begann, best\u00e4tigten sich die Zweifel. Ich konnte einige Funktionen, einschlie\u00dflich der wichtigsten, kryptografischen, nirgendwo finden. Dann begann ich mit der Erstellung meiner eigenen Bausteine f\u00fcr das Fundament. So entstanden: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/ABCode\">ABCode<\/a><\/noindex> zum Codieren in base58 (eigentlich zum Codieren jedes Alphabets in jedes), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\">Curve25519<\/a><\/noindex> zum Erstellen und \u00dcberpr\u00fcfen kompatibler Signaturen (mit Varianten <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Curve25519\/blob\/0ba56fa566f4a29b06126465b9ebbe59c915ffbd\/src\/Curve25519.php#L104\">auf Steroiden<\/a><\/noindex>), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/Blake2b\">Blake2b<\/a><\/noindex> zur Berechnung eines der Hashes (der nur ab PHP 7.2 verf\u00fcgbar war) usw.<\/p>\n<p><\/p>\n<p>Hier m\u00f6chte ich mich bedanken bei <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\">Inal Kardanov<\/a><\/noindex> f\u00fcr einige wertvolle Ratschl\u00e4ge, die mich in Richtung <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Composer_(software)\">composer<\/a><\/noindex> statt der mir vertrauten, aber veralteten, Include-Dateien gelenkt haben.<\/p>\n<p><\/p>\n<p>Nach ein paar Monaten <noindex>sah WavesKit das Licht der Welt<\/noindex>, trat aus <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ikardanoff\/status\/1091241637706190848\">der Beta-Version<\/a><\/noindex> und ist nun bereit, mit allen Standardfunktionen der Waves-Plattform zu arbeiten. Alle in der <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.wavesplatform.com\/en\/waves-environment\/waves-mainnet.html\">Hauptnetze verf\u00fcgbar<\/a><\/noindex> Transaktionen k\u00f6nnen einfach erstellt, signiert und gesendet werden, unterst\u00fctzt von einem einzigen Paket, das in allen 64-Bit-Versionen von PHP ab 5.6 funktioniert.<\/p>\n<p><\/p>\n<p>Integrieren Sie WavesKit in Ihr Projekt:<\/p>\n<p><\/p>\n<pre><code class=\"php\">composer require deemru\/waveskit<\/code><\/pre>\n<p><\/p>\n<p>Verwendung:<\/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>Im obigen Beispiel erstellen wir ein WavesKit-Objekt, das im Testnetz &#171;T&#187; arbeitet. Wir setzen die Seed-Phrase, aus der automatisch die Schl\u00fcssel und die Adresse des Kontos basierend auf dem \u00f6ffentlichen Schl\u00fcssel berechnet werden. Dann erstellen wir eine Transfertransaktion von 0,00000001 Waves von der automatisch aus der Seed-Phrase berechneten Adresse an die Alias-Adresse &#171;test&#187;, unterschreiben sie mit dem privaten Schl\u00fcssel und senden sie ins Netzwerk. Danach stellen wir sicher, dass die Transaktion erfolgreich vom Netzwerk best\u00e4tigt wurde.<\/p>\n<p><\/p>\n<p>Die Arbeit mit Transaktionen konzentriert sich auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxaddressscript\">Funktionen, die mit tx beginnen<\/a><\/noindex>. F\u00fcr ein besseres Verst\u00e4ndnis der Arbeit mit Transaktionen k\u00f6nnen Sie die <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md\">Dokumentation von WavesKit<\/a><\/noindex> oder direkt die anschaulichen Beispiele in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/2c4937199c88bc4ae105f60657b1389482471c1f\/test\/selftest.php#L237\">den Continuous Integration-Tests<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Da WavesKit unter realen Bedingungen entwickelt wurde, hat es bereits fortschrittliche Funktionen. Die erste Killer-Feature ist die <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitensure\">Funktion ensure<\/a><\/noindex>, die sicherstellt, dass das erforderliche Ma\u00df an Zuverl\u00e4ssigkeit erreicht wird, sodass die Transaktion nicht verloren geht, sondern best\u00e4tigt wurde und die notwendige Anzahl an Best\u00e4tigungen im Netzwerk erreicht hat.<\/p>\n<p><\/p>\n<p>Ein weiterer robustes Mechanismus ist, wie WavesKit mit Knoten kommuniziert. In gesch\u00fctzten Bedingungen arbeitet das Framework nur mit dem Hauptknoten und h\u00e4lt eine dauerhafte Verbindung, kann jedoch bei Fehlern automatisch auf Reserveknoten umschalten. Wenn Sie ein Array von Reserveknoten festlegen, k\u00f6nnen Sie die Funktion <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskitsetbestnode\">setBestNode<\/a><\/noindex> aufrufen, um den besten Knoten basierend auf der maximalen H\u00f6he und der Antwortgeschwindigkeit der aktuellen Knoten auszuw\u00e4hlen. Jetzt f\u00fcgen Sie noch einen internen Cache f\u00fcr Anfragen hinzu und k\u00fcmmern Sie sich sowohl um die Benutzer als auch um die Knotenbetreiber.<\/p>\n<p><\/p>\n<p>Einer der letzten fortschrittlichen Mechanismen ist die Funktion <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\/blob\/master\/docs\/WavesKit.md#waveskittxmonitor\">txMonitor<\/a><\/noindex>. Sie entstand aus der Notwendigkeit, in Echtzeit auf eingehende Transaktionen zu reagieren. Diese Funktion l\u00f6st alle Aspekte der Verarbeitung von Transaktionen in der Blockchain vollst\u00e4ndig. Kein Schmerz mehr, Sie installieren einfach Ihre Callback-Funktion mit den gew\u00fcnschten Optionen und warten auf neue Transaktionen, die Ihre Prozesse ausl\u00f6sen. Zum Beispiel, ein weiteres von mir geplantes Projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\">VECRO<\/a><\/noindex> ist vollst\u00e4ndig um diese Funktion herum aufgebaut, Sie k\u00f6nnen in Ruhe erforschen, wie sie direkt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/VECRO\/blob\/85d8373de56baff7c05697475211633b521bca7d\/src\/VECRO.php#L80\">im Projektcode funktioniert<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ich liebe Open Source, es ist eine der gr\u00f6\u00dften Errungenschaften der Menschheit. Da ich der einzige Entwickler bin und in der Lage bin, alle meine Bed\u00fcrfnisse zu erf\u00fcllen, lade ich Sie ein, zu nutzen und beizutragen zu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deemru\/WavesKit\">, \u00fcber das<\/a><\/noindex>.<\/p>\n<p>Quelle: <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.1.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\/de\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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 \u2013 PHP-Framework f\u00fcr die Arbeit mit der Waves-Blockchain | ProHoster","description":"Ich mag PHP wegen der Entwicklungsgeschwindigkeit und der hervorragenden Portabilit\u00e4t.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/waveskit-php-frejmvork-dlya-raboty-s-blokchejnom-waves","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/30639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=30639"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/30639\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=30639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=30639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=30639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}