{"id":54229,"date":"2019-12-21T00:00:00","date_gmt":"2019-12-20T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kratkij-obzor-instrumentov-dlya-testirovaniya-i-benchmarkinga-blokchejnov"},"modified":"2020-02-18T14:02:13","modified_gmt":"2020-02-18T11:02:13","slug":"kratkij-obzor-instrumentov-dlya-testirovaniya-i-benchmarkinga-blokchejnov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-instrumentov-dlya-testirovaniya-i-benchmarkinga-blokchejnov","title":{"rendered":"A brief overview of blockchain testing and benchmarking tools","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A brief overview of blockchain testing and benchmarking tools\" src=\"\/wp-content\/uploads\/2019\/12\/6b84e9bd29a8047a3a04d73e5ee683b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Today, solutions for testing and benchmarking blockchains are tailored to specific blockchains or their forks. However, there are several more general solutions that vary in functionality: some are open-source projects, others are offered as SaaS, but the majority are internal solutions developed by the blockchain team. Nevertheless, they all tackle similar tasks. In this article, I will briefly review several products specifically designed for blockchain testing.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>The operation of a blockchain network resembles that of a distributed database, so similar tools and methods can be used for testing. To better understand how distributed databases are tested, take a look at this good collection of resources and articles. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/asatarin\/testing-distributed-systems\">from here<\/a><\/noindex>. For example, latency is broken down in detail in this <noindex><a rel=\"nofollow\" href=\"http:\/\/highscalability.com\/blog\/2015\/10\/5\/your-load-generator-is-probably-lying-to-you-take-the-red-pi.html\">article<\/a><\/noindex>, and to understand how bugs are found in replication algorithms, I recommend checking out this <noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/system\/files\/conference\/osdi14\/osdi14-paper-zheng_mai.pdf\">the article<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>I will describe several popular solutions for testing and benchmarking blockchains. I would appreciate it if you could share other helpful software products for addressing the same tasks in the comments.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A brief overview of blockchain testing and benchmarking tools\" src=\"\/wp-content\/uploads\/2019\/12\/0e5a8fca6b3e50856c0782323426a768.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>I will start with a tool that, although not specifically designed for blockchains, allows for effective testing of their operation provided that there is an already deployed network to experiment on. The critical factor for the reliability of a distributed system is the ability to continue operating in the event of server and network problems. These can include network lags, disk overflows, unavailability of external services (DNS), hardware failures, and hundreds of other reasons. To test the resilience of any systems working consistently across a large number of machines, you can use <noindex><a rel=\"nofollow\" href=\"http:\/\/www.cs.unc.edu\/~victor\/papers\/gremlin-icdcs.pdf\">Gremlin<\/a><\/noindex>. It employs a highly effective approach known as Chaos Engineering. <\/p>\n<p><\/p>\n<p>With its own network agent, Gremlin creates a variety of problems on the necessary number of machines: network lags, resource overloads (CPU, disk, memory, network), disconnects certain protocols, etc. For blockchains, Gremlin can be used on test network servers, emulating real issues and observing network behavior. Developers and administrators can see what happens in the system during failures or code updates in a controlled environment. The network must be pre-configured and deployed, and necessary metrics must be set up.<\/p>\n<p><\/p>\n<p>Gremlin is a convenient tool for architects, DevOps, and security professionals, providing a universal solution for testing any ready and deployed distributed systems, including blockchains.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A brief overview of blockchain testing and benchmarking tools\" src=\"\/wp-content\/uploads\/2019\/12\/e19a7d92dfc0530a3a07ff6340315fd1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hyperledger Caliper is a much more specialized solution <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hyperledger\/caliper\">Hyperledger Caliper<\/a><\/noindex>. Currently, Caliper supports several blockchains from the Hyperledger family (Fabric, Sawtooth, Iroha, Burrow, Besu), as well as Ethereum and the FISCO BCOS network. <\/p>\n<p><\/p>\n<p>With Caliper, you can define the topology of a blockchain network and the contracts for testing, as well as describe the configuration of the node. Blockchain nodes are deployed in Docker containers on a single machine. You can then select the required <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hyperledger\/caliper-benchmarks\">test configurations<\/a><\/noindex> and receive a report file with test results after the run. You can learn about the full list of Caliper metrics and the benchmarking approach here <noindex><a rel=\"nofollow\" href=\"https:\/\/www.hyperledger.org\/wp-content\/uploads\/2018\/10\/HL_Whitepaper_Metrics_PDF_V1.01.pdf\">Hyperledger Blockchain Performance Metrics<\/a><\/noindex>, this is a great article if you're interested in the topic of blockchain benchmarking. Additionally, metric collection can be configured to a separate Prometheus\/Grafana setup. <\/p>\n<p><\/p>\n<p>Hyperledger Caliper is a tool aimed at developers and system architects, as it provides repeatability of tests and automation of testing and benchmarking. It is used when developing the core of blockchains: consensus algorithms, virtual machines for processing smart contracts, peer-to-peer layers, and other system mechanisms.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A brief overview of blockchain testing and benchmarking tools\" src=\"\/wp-content\/uploads\/2019\/12\/c8198d9ad6622537d12d3f227bcb1cee.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mixbytes\/tank\">MixBytes Tank<\/a><\/noindex> \u2014 a tool that emerged during the development of consensus algorithms and finality for EOS-based networks and testing parachains based on Parity Substrate (Polkadot). Functionally, it is similar to Hyperledger Caliper, as it allows collecting important metrics from nodes of any distributed system and client machines running test scripts. <\/p>\n<p><\/p>\n<p>MixBytes Tank utilizes several cloud services (Digital Ocean, Google Cloud Engine, etc.) that can launch multiple nodes, carry out preliminary configuration procedures, simultaneously execute several benchmarks on different machines, collect necessary metrics, and automatically shut down the network. <\/p>\n<p><\/p>\n<p>MixBytes Tank allows for economical resource usage on cloud servers by automatically shutting down unnecessary resources after tests are conducted. Another distinguishing feature is the use of the Molecule package, which enables developers to locally test the deployment of the required blockchain.<\/p>\n<p><\/p>\n<p>MixBytes Tank helps identify bottlenecks and errors in algorithms at early stages that arise in real networks with a large number of geographically distributed servers and clients. The tank will help you understand what will happen on the nodes if clients send transactions with a specified tps under highly repeatable conditions and with a real number of nodes spread across different continents, if required.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"A brief overview of blockchain testing and benchmarking tools\" src=\"\/wp-content\/uploads\/2019\/12\/0c97707e99fbd248d6d9f54a992afb38.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Whiteblock Genesis is a platform for testing Ethereum-based blockchains. This tool has a sufficiently broad functionality: it allows you to launch a network, create the required number of accounts, deploy the required number of clients, configure network topology, specify bandwidth and packet loss parameters, and run the test. <\/p>\n<p><\/p>\n<p>Whiteblock Genesis provides its own resources for conducting tests. Developers just need to specify the test parameters, execute them using the ready-made API, and receive results using a convenient dashboard.<\/p>\n<p><\/p>\n<p>Whiteblock Genesis allows for configuring a detailed test that the platform will automatically conduct upon every significant code change. This will enable early detection of errors and immediate assessment of the impact of changes on key network parameters, such as transaction speed and resources consumed by nodes. <\/p>\n<p><\/p>\n<h1 id=\"madt\">Madt<\/h1>\n<p><\/p>\n<p>Another interesting young product for testing distributed systems \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dltcspbu\/madt\">madt<\/a><\/noindex>. It is written in Python and allows you to create the necessary network topology and the required number of servers and clients using a simple configuration script (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dltcspbu\/madt\/blob\/master\/tutorials\/basic\/lab.py\">an example<\/a><\/noindex>). After that, the service deploys the network in several docker containers and raises a web interface where you can observe messages from the servers and clients of the network. Madt can be used for blockchain testing \u2014 in the project repository, there is a test for a p2p network based on the Kademlia protocol, where delays in data delivery to nodes are gradually increased and the status of this data is checked.<\/p>\n<p><\/p>\n<p>Madt has appeared quite recently, but considering its very flexible architecture, it can evolve into a functional product. <\/p>\n<p><\/p>\n<h1 id=\"drugie-resheniya\">Other solutions<\/h1>\n<p><\/p>\n<p>Almost any testing of the systemic part of blockchains requires running preliminary scenarios, preparing accounts and conditions for the test (this may involve testing consensus errors that can generate numerous chain forks, handling hard fork scenarios, changing system parameters, etc.). All these manipulations are performed differently in various blockchains, so teams find it easier to gradually adapt testing and benchmarking of the product to internal CI\/CD and use their own developments, which gradually become more complex as the functionality of the blockchain develops.<\/p>\n<p><\/p>\n<p>However, using ready-made solutions can significantly reduce the time these teams spend on testing, so I believe this software will actively develop in the coming years.<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Conclusion<\/h1>\n<p><\/p>\n<p>In concluding this brief overview, I will list several important characteristics of tools for testing blockchains:<\/p>\n<p><\/p>\n<ul>\n<li>The ability to automatically deploy a blockchain network under repeatable conditions. This factor is important when developing system components of blockchains: consensus algorithms, finality, systemic smart contracts.<\/li>\n<li>The cost of owning the system, the resources consumed, and the usability for ongoing use. This factor allows the project to have high-quality tests for a small amount of money.<\/li>\n<li>Flexibility and simplicity of test configuration. This factor increases the chances of identifying system problems \u2014 reducing the likelihood of missing something important.<\/li>\n<li>Customization for specific types of blockchains. Developing a solution based on an existing one can significantly enhance quality and reduce time costs.<\/li>\n<li>The convenience and accessibility of the results obtained and their type (reports, metrics, graphs, logs, etc.). This is essential if you want to track the product's development history or require in-depth analytics of blockchain network behavior. <\/li>\n<\/ul>\n<p><\/p>\n<p>Good luck with your testing, and may your blockchains be fast and resilient!<\/p>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/481150\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438\u043d\u0433\u0430 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u0432 \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u044b \u043f\u043e\u0434 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0438\u043b\u0438 \u0435\u0433\u043e \u0444\u043e\u0440\u043a\u0438. \u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u2014 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a SaaS, \u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u2014 \u044d\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0432\u0441\u0435 \u043e\u043d\u0438 \u0440\u0435\u0448\u0430\u044e\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 [&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-54229","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f.\" \/>\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\/en\/blog\/administrirovanie\/kratkij-obzor-instrumentov-dlya-testirovaniya-i-benchmarkinga-blokchejnov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\udd47\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438\u043d\u0433\u0430 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-instrumentov-dlya-testirovaniya-i-benchmarkinga-blokchejnov\" \/>\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-12-20T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:13+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\udd47A Brief Overview of Tools for Testing and Benchmarking Blockchains | ProHoster","description":"Today.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-instrumentov-dlya-testirovaniya-i-benchmarkinga-blokchejnov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\udd47\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438\u043d\u0433\u0430 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u043e\u0432 | ProHoster","og:description":"\u0421\u0435\u0433\u043e\u0434\u043d\u044f.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-instrumentov-dlya-testirovaniya-i-benchmarkinga-blokchejnov","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-12-20T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54229","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-24 10:32:29","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:09:25","updated":"2026-01-24 10:32:29","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/54229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=54229"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/54229\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=54229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=54229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=54229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}