{"id":356690,"date":"2024-05-20T23:34:59","date_gmt":"2024-05-20T23:34:59","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=356690"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-20T23:34:59","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=356690","title":{"rendered":"<span>\u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0432 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/50d\/9b1\/537\/50d9b1537541e8a382a4c28a5f82dc41.png\" width=\"1560\" height=\"877\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/50d\/9b1\/537\/50d9b1537541e8a382a4c28a5f82dc41.png\"\/><\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0425\u043e\u0442\u044c \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c, \u043f\u0440\u0438\u0434\u0430\u0442\u043a\u043e\u043c \u043a\u0443\u0434\u0430 \u0431<em>\u043e<\/em>\u043b\u044c\u0448\u0435\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043d\u0435\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043e\u0441\u0442\u0440\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u0438, \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430 \u0438 \u0437\u0430\u0432\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u0441\u0432\u043e\u0435\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0443\u0445\u0438\u0449\u0440\u0451\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0438\u0437\u0432\u0440\u0430\u0449\u0451\u043d\u043d\u043e\u0441\u0442\u044c\u044e. \u0422\u0430\u043a\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043a\u043e\u0432 \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u0435\u043d \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443. \u041e\u0434\u043d\u0438 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0431\u0440\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u043d \u0438 \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432, \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044f \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438. \u0414\u0440\u0443\u0433\u0438\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0431\u0435\u0440\u0443\u0442 \u0441\u0432\u043e\u0438\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c, \u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0438\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u0435\u0437\u0440\u0430\u0437\u043b\u0438\u0447\u0435\u043d \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442. <\/p>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c Hidden Lake \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445. \u041d\u0430 \u0435\u0451 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0441\u0435\u0442\u0438 Hidden Lake.<\/p>\n<h2>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e?<\/h2>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79b\/b26\/29b\/79bb2629b134e7fca67c25d687b7976b.png\" width=\"832\" height=\"624\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/79b\/b26\/29b\/79bb2629b134e7fca67c25d687b7976b.png\"\/><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c &#8212; \u0430 \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0432\u0441\u0451 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e? \u0421 \u043a\u0430\u043a\u043e\u0439 \u0446\u0435\u043b\u044c\u044e? \u0418 \u0442\u0430\u043a\u043e\u0432\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e. <\/p>\n<ol>\n<li>\n<p>\u0421\u0430\u043c\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0432\u0441\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 &#8212; \u044d\u0442\u043e <strong>\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u043e\u0431\u0435\u0437\u043b\u0438\u0447\u0438\u0432\u0430\u043d\u0438\u0435<\/strong> \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0412 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake, \u043f\u043e\u043c\u0438\u043c\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u0438, \u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0438\u0441\u0442\u0438\u043d\u043d\u0443\u044e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044e \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043e\u0442 \u0432\u0441\u0435\u0445 \u0432\u0438\u0434\u043e\u0432 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0430\u0442\u0430\u043a, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f, \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0438 \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0437\u0430\u0449\u0438\u0449\u0430\u044e\u0449\u0435\u0435 \u0441\u0430\u043c\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0442 \u0442\u0440\u0435\u0442\u044c\u0438\u0445 \u043b\u0438\u0446.<\/p>\n<\/li>\n<li>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <strong>\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c<\/strong>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b &#8212; \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438, \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u044b, \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430, \u0444\u043e\u0440\u0443\u043c\u044b, \u0431\u043e\u0442\u044b \u0438 \u0442.\u0434. \u0422\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u0435\u0442\u0438 Tor \u043c\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043c\u043e\u0436\u0435\u043c \u043d\u0430 \u0441\u0432\u043e\u0451\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0430\u0439\u0442 \u0432 \u043f\u0441\u0435\u0432\u0434\u043e\u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0439 \u0437\u043e\u043d\u0435 <code>.onion<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438: 1) \u0430\u0440\u0435\u043d\u0434\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0431\u0435\u043b\u044b\u043c IP, \u0438\u043b\u0438 2) \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438, \u0438\u043b\u0438 3) \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u043e\u0440\u0442\u043e\u0432 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0435 \u043d\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c Hidden Lake \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u0441\u0445\u043e\u0436\u0435\u043c\u0443 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440<\/strong> \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0448\u043a\u043e\u043b\u044b, \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430, \u0440\u0430\u0431\u043e\u0442\u044b, \u0434\u043e\u043c\u0430, \u0443\u043b\u0438\u0446\u044b, \u0440\u0435\u0433\u0438\u043e\u043d\u0430 \u0438 \u0442.\u043f. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u0443\u0436\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0443\u0437\u043b\u0430\u043c \/ \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u0430\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0435\u0442\u044c\u044e. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u043d\u043a\u0442 \u0445\u043e\u0442\u044c \u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c, \u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u0435\u0440\u0432\u044b\u043c \u0438\u043b\u0438 \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u044c, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c. \u0421\u0432\u044f\u0437\u0430\u043d\u043e \u044d\u0442\u043e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0436\u043d\u0443\u044e (\u043f\u0443\u0441\u0442\u0443\u044e) \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u042d\u0442\u043e \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u0441\u044f \u043a \u0441\u0435\u0442\u0438. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0446\u0435\u043b\u044c\u044e \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e <strong>\u0432\u043e\u043b\u043e\u043d\u0442\u0451\u0440\u0441\u0442\u0432\u043e<\/strong> \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430.<\/p>\n<\/li>\n<\/ol>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 Hidden Lake?<\/h2>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cda\/822\/7eb\/cda8227ebc3e3f3b088a75cbb6acec81.png\" width=\"3884\" height=\"1260\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cda\/822\/7eb\/cda8227ebc3e3f3b088a75cbb6acec81.png\"\/><\/figure>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u044f\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0442\u044c \u0441\u0430\u043c\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u0422\u0430\u043a\u043e\u0432\u044b\u0435 \u0441\u0435\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0440\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043d\u0430\u0434\u0432\u0438\u0433\u0430\u044e\u0449\u0435\u0439\u0441\u044f \u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u0435\u0439, \u0438 \u0447\u0435\u043c \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0442\u0430\u043a\u043e\u0432\u0430\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f, \u0442\u0435\u043c \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0438 \u0432\u044b\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0443\u0433\u0440\u043e\u0437 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043b\u0430 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0435\u0451 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0441\u0442\u044c, \u0432\u044b\u0440\u0430\u0436\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438. \u0418 \u043a \u0442\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043c\u0435\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. <\/p>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0442\u0430\u043a\u043e\u0439 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u0435\u0442\u0438 \u0441 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u044c\u044e, \u0441\u0443\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043b\u044e\u0431\u044b\u0445 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u043d\u0430\u043f\u0430\u0434\u0435\u043d\u0438\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f, \u0441 \u0446\u0435\u043b\u044c\u044e \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0434\u0435\u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u0435\u0439 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0431\u0430\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445, \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0437\u0430 \u0441\u0447\u0451\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c\u0438. \u041d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u0442\u0440\u0438 \u0437\u0430\u0434\u0430\u0447\u0438: <\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0431\u0435\u0434\u0430\u044e\u0449\u0438\u0445 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432 (<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1%D0%B5%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D1%85_%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%BE%D0%B2\" rel=\"noopener noreferrer nofollow\">DC-\u0441\u0435\u0442\u0438<\/a>), <\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439 (<a href=\"https:\/\/habr.com\/ru\/articles\/745256\/\" rel=\"noopener noreferrer nofollow\">QB-\u0441\u0435\u0442\u0438<\/a>), <\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438 (<a href=\"https:\/\/habr.com\/ru\/articles\/743630\/\" rel=\"noopener noreferrer nofollow\">EI-\u0441\u0435\u0442\u0438<\/a>).<\/p>\n<\/li>\n<\/ol>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c <strong>Hidden Lake<\/strong> (<a href=\"https:\/\/github.com\/number571\/go-peer\/tree\/master\/cmd\/hidden_lake\" rel=\"noopener noreferrer nofollow\">HL<\/a>) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 QB-\u0441\u0435\u0442\u0435\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439. \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0451 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0432 \u0440\u043e\u043b\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u043c\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0443 \u0435\u0433\u043e \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0441\u0442\u0438. \u0421\u0435\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0440\u0430\u043d\u0433\u043e\u0432\u043e\u0439 (P2P) \u0441\u043e \u0441\u0432\u044f\u0437\u044c\u044e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439 &#8212; friend-to-friend (F2F). \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0439 \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0432\u043d\u0435\u0441\u0442\u0438 \u0432 \u0431\u0435\u043b\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0432\u043e\u0438\u0445 \u0434\u0440\u0443\u0437\u0435\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/05f\/9a3\/c9e\/05f9a3c9e20a0338dcb6dd044087e566.png\" width=\"980\" height=\"413\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/05f\/9a3\/c9e\/05f9a3c9e20a0338dcb6dd044087e566.png\"\/><\/figure>\n<p>\u0425\u043e\u0442\u044c \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 <strong>Go<\/strong>, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0443 <strong>HLS<\/strong>, \u0442\u0430\u043a\u0430\u044f \u0441\u0435\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0438\u0448\u044c HTTP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 HLS \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a <em>\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u0430<\/em> \u0438 <em>\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443<\/em>.<\/p>\n<h2>\u041f\u0438\u0448\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441<\/h2>\n<p>\u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u043d\u0435\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043b\u0438\u0448\u044c \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 HTTP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0421\u0430\u043c \u0441\u0435\u0440\u0432\u0438\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u0443\u0434\u044c \u0442\u043e Python, PHP, Java, Rust \u0438 \u0442.\u0434. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go (\u0440\u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0434\u043b\u044f Hidden Lake), \u0430 \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u044f\u0437\u044b\u043a <strong>Python<\/strong>.<\/p>\n<pre><code class=\"python\">from http.server import BaseHTTPRequestHandler, HTTPServer  class SimpleService(BaseHTTPRequestHandler):     def _set_success_response(self):         self.send_response(200)         self.send_header('Content-type', 'text\/html')         self.end_headers()      def _set_failed_response(self):         self.send_response(400)         self.send_header('Content-type', 'text\/html')         self.end_headers()      def do_GET(self):         self._set_success_response()         response = \"[GET] Path = \" + str(self.path)         self.wfile.write(response.encode('utf-8'))      def do_POST(self):         try:             content_length = int(self.headers['Content-Length'])          except:             self._set_failed_response()             return           post_data = self.rfile.read(content_length)          self._set_success_response()         response = \"[POST] Upper = \" + str(post_data.decode('utf-8')).upper()         self.wfile.write(response.encode('utf-8'))  def main():     listener = HTTPServer(('127.0.0.1', 8080), SimpleService)     print(\"Service is running...\")     try:         listener.serve_forever()     except KeyboardInterrupt:         print(\"Service is stopped...\")     listener.server_close()  if __name__ == '__main__':     main() <\/code><\/pre>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c GET, \u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0443\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c POST, \u0442\u043e \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0435\u0451 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0442\u0432\u0435\u0442\u0430.<\/p>\n<pre><code>$ curl -X GET 127.0.0.1:8080                                                                              \ue0b2 7 \u2718  [GET] Path = \/                                                                                                                                                  $ curl -X POST 127.0.0.1:8080 --data \"hello\"                                                                \ue0b2 \u2714  [POST] Upper = HELLO<\/code><\/pre>\n<h2>\u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u0443\u0437\u0435\u043b<\/h2>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u0435\u043c \u0443\u0437\u043b\u0430, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b \u043a\u0430\u043a-\u0442\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u044d\u0442\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/github.com\/number571\/go-peer\" rel=\"noopener noreferrer nofollow\">go-peer<\/a>. \u0414\u0430\u043b\u0435\u0435, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0437\u0435\u043b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432: <\/p>\n<ol>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 <strong>\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/strong>, \u0430 \u0434\u0430\u043b\u0435\u0435 \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u044f\u0437\u044b\u043a\u0430 Go \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 <code>>= 1.16<\/code> \u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>cmd\/hidden_lake\/service<\/code>. \u041f\u043e\u0441\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>make<\/code>. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>make<\/code> \u043d\u0435\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e: <code>go build .\/cmd\/hls<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 <strong>\u0434\u043e\u043a\u0435\u0440\u0435<\/strong>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043c\u0435\u0442\u044c \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 docker. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>cmd\/hidden_lake\/service<\/code> \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <code>make docker-default<\/code>. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <code>Dockerfile<\/code> \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>docker build<\/code> \u0438 <code>docker run<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0437 \u0443\u0436\u0435 <strong>\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439<\/strong> \u0432\u0435\u0440\u0441\u0438\u0438 \u0441 <a href=\"https:\/\/github.com\/number571\/go-peer\/releases\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043b\u0438\u0437\u0430<\/a>. \u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 Linux \u0431\u044b\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b sh \u0441\u043a\u0440\u0438\u043f\u0442\u044b &#8212; <code>install_hls.sh<\/code>, <code>restart_hls.sh<\/code>, <code>status_hls.sh<\/code>, <code>stop_hls.sh<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>cmd\/hidden_lake\/service\/_daemon<\/code>. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0434\u0435\u0441\u044c \u0441\u043a\u0440\u0438\u043f\u0442 &#8212; \u044d\u0442\u043e <code>install_hls.sh<\/code>, \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0435\u043b\u0438\u0437 \u0438 \u0437\u0430\u043d\u043e\u0441\u0438\u0442 \u0435\u0433\u043e \u0432 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a.<\/p>\n<\/li>\n<\/ol>\n<details class=\"spoiler\">\n<summary>Dockerfile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"dart\">FROM ubuntu:20.04  RUN apt-get update &amp;&amp; apt-get install -y wget gcc RUN wget https:\/\/dl.google.com\/go\/go1.16.linux-amd64.tar.gz &amp;&amp; \\      tar -C \/opt -xzf go1.16.linux-amd64.tar.gz  WORKDIR \/go-peer ENV PATH=\"${PATH}:\/opt\/go\/bin\" COPY .\/ .\/ RUN go build -o hls .\/cmd\/hidden_lake\/service\/cmd\/hls  ENV SERVICE_PATH=\"\/mounted\" ENV SERVICE_KEY=\"\" CMD .\/hls -path=\"${SERVICE_PATH}\" -key=\"${SERVICE_KEY}\" <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0443\u0437\u0435\u043b, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a46\/af2\/270\/a46af2270fd70d06d655d5c89dcef1e7.png\" width=\"1153\" height=\"202\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a46\/af2\/270\/a46af2270fd70d06d655d5c89dcef1e7.png\"\/><\/figure>\n<p>\u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0443\u0437\u0435\u043b \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u041e\u043d \u0443\u0436\u0435 \u043d\u0430\u0447\u0430\u043b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a <strong>type=BRDCS<\/strong> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 <strong>8KiB<\/strong> \u043a\u0430\u0436\u0434\u044b\u0435 <strong>5 \u0441\u0435\u043a\u0443\u043d\u0434<\/strong>, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043e\u043d \u043d\u0438 \u043a \u043a\u043e\u043c\u0443 \u0435\u0449\u0451 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0435\u0442\u044c\u044e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0435\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0443\u0437\u0435\u043b<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0443\u0437\u043b\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b HLS) \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b &#8212; <code>hls.cfg<\/code> \u0438 \u043e\u0434\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f &#8212; <code>hls.db<\/code>. \u0424\u0430\u0439\u043b <code>hls.cfg<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0437\u043b\u0430 \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c. \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f <code>hls.db<\/code> \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0443 \u0443\u0437\u043a\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0440\u043e\u043b\u044c &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0445\u0435\u0448\u0438 \u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445 \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0421\u043e\u0437\u0434\u0430\u043d\u043e \u044d\u0442\u043e \u0441 \u0446\u0435\u043b\u044c\u044e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u0430\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b <code>hls.cfg<\/code> \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<pre><code class=\"json\">{ \"settings\": { \"message_size_bytes\": 8192, \"work_size_bits\": 20, \"queue_period_ms\": 5000, \"key_size_bits\": 4096, \"limit_void_size_bytes\": 4096 }, \"logging\": [ \"info\", \"warn\", \"erro\" ], \"address\": { \"tcp\": \"127.0.0.1:9571\", \"http\": \"127.0.0.1:9572\" }, \"services\": { \"go-peer\/hidden-lake-messenger\": \"127.0.0.1:9592\" } }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u043b\u043e\u043a &#8212; \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. \u0417\u0434\u0435\u0441\u044c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f (<strong>message_size_bytes<\/strong>), \u043a\u0430\u043a\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 (<strong>work_size_bits<\/strong>) [\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Proof-of-Work], \u0441 \u043a\u0430\u043a\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f (<strong>queue_period_ms<\/strong>), \u043a\u0430\u043a\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c (<strong>key_size_bits<\/strong>) \u0438 \u043a\u0430\u043a\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u043b\u043e\u0436\u043d\u043e\u0439\/\u0434\u043e\u0431\u0430\u0432\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 [\u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 message_size_bytes] \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c (<strong>limit_void_size_bytes<\/strong>). \u0412\u0441\u0435 \u044d\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u044f\u043c\u043e \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u043a\u043e\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0435\u0442\u044f\u043c\u0438. \u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u044d\u0442\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0430\u0447\u043d\u0451\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438, \u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043b\u0438\u0431\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u044b \u0441\u0432\u044f\u0437\u0435\u0439, \u043b\u0438\u0431\u043e \u0441\u0432\u044f\u0437\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e-\u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u0435\u043d \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a. \u041c\u044b \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u043b\u043e\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/431\/fd8\/909\/431fd8909d9c5be705f439394f841f22.png\" width=\"1008\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/431\/fd8\/909\/431fd8909d9c5be705f439394f841f22.png\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0451\u0442 \u0431\u043b\u043e\u043a \u0441 \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0422\u0430\u043a\u043e\u0439 \u0431\u043b\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e info \u0438 warn \u0432 <strong>stdout<\/strong>, \u0430 erro \u0432 <strong>stderr<\/strong>. \u0421\u0430\u043c \u0431\u043b\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c, \u043b\u0438\u0431\u043e \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u043b\u043e\u0433\u0438.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a &#8212; \u044d\u0442\u043e \u0431\u043b\u043e\u043a \u0441 \u043f\u0440\u043e\u0441\u043b\u0443\u0448\u0438\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043f\u043e\u043b\u044f: <strong>tcp, http, pprof<\/strong>. \u041f\u0435\u0440\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 &#8212; \u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0441\u0435\u0442\u0438 \u0438\u0437\u0432\u043d\u0435. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0443\u0437\u043b\u044b \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443 \u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0441\u0432\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a. \u0412\u0442\u043e\u0440\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 &#8212; \u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0443\u0437\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 REST API. \u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c. \u0422\u0440\u0435\u0442\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 &#8212; \u044d\u0442\u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/pkg.go.dev\/runtime\/pprof\" rel=\"noopener noreferrer nofollow\">pprof<\/a> \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u0430. \u041e\u043d \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0443\u0437\u0435\u043b. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043b\u044f \u0434\u0435\u0431\u0430\u0433\u0430 \u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a &#8212; \u044d\u0442\u043e \u0431\u043b\u043e\u043a \u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0443\u0437\u0435\u043b. \u0414\u0430\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043c\u044b \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u043d\u0435\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u043d\u0451\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0438\u0441 &#8212; <strong>go-peer\/hidden-lake-messenger<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u0441\u0435\u0442\u0438 Hidden Lake, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e <a href=\"https:\/\/github.com\/number571\/go-peer\/tree\/master\/cmd\/hidden_lake\/messenger\" rel=\"noopener noreferrer nofollow\">\u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440<\/a>. \u0415\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 HLS. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/articles\/753902\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0432\u0441\u0435\u0445 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0442\u0430\u043a\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0435\u0449\u0451 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e &#8212; <strong>friends<\/strong>, <strong>network_key<\/strong> \u0438 <strong>connections<\/strong>. \u041e friends \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u043e\u0437\u0436\u0435, \u0430 \u043f\u043e\u043a\u0430 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f. \u041e\u043d\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u0435\u0442\u044f\u043c Hidden Lake. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438 \u0441\u0432\u043e\u0438 \u0441\u0435\u0442\u0438, \u043d\u043e \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u043a\u0430\u043a-\u0442\u043e \u0443\u043c\u0435\u0442\u044c \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u044c NAT \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442 Hidden Lake \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0422.\u043a. Hidden Lake \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u0441\u0435\u0442\u044c\u044e, \u0442\u043e \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u043d\u0430\u0442\u044c \u043e \u0432\u0430\u0448\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0432 \u0441\u0435\u0442\u0438 (\u043e\u0431\u0449\u0430\u0435\u0442\u0435\u0441\u044c \u043b\u0438 \u0432\u044b \u0441 \u043a\u0435\u043c-\u0442\u043e \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442\u0435). \u0421 \u0442\u0430\u043a\u0438\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"https:\/\/github.com\/number571\/go-peer\/tree\/master\/cmd\/hidden_lake\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>. \u041d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u0438\u0434\u043e\u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/621\/e89\/a33\/621e89a334f6f4e31ac14713ac6964ca.png\" width=\"1188\" height=\"528\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/621\/e89\/a33\/621e89a334f6f4e31ac14713ac6964ca.png\"\/><\/figure>\n<p>\u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0442\u0438 \u0441 network_key =<strong> 8Jkl93Mdk93md1bz<\/strong> \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0434\u0432\u0443\u043c \u0443\u0437\u043b\u0430\u043c \u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432: <strong>vdsina<\/strong> \u0438 <strong>ruvds<\/strong>. \u0418\u0442\u043e\u0433\u043e, \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<pre><code class=\"json\">{ \"settings\": { \"message_size_bytes\": 8192, \"work_size_bits\": 20, \"queue_period_ms\": 5000, \"key_size_bits\": 4096, \"limit_void_size_bytes\": 4096 }, \"logging\": [ \"info\", \"warn\", \"erro\" ], \"services\": { \"my-custom-service\": \"127.0.0.1:8080\" }, \"network_key\": \"8Jkl93Mdk93md1bz\", \"connections\": [ \"94.103.91.81:9581\", \"195.133.1.126:9581\" ] }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u044f \u0442\u0430\u043a\u0436\u0435 \u0443\u0431\u0440\u0430\u043b \u0431\u043b\u043e\u043a <strong>address<\/strong> \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043b \u0441\u0435\u0440\u0432\u0438\u0441 <strong>go-peer\/hidden-lake-messenger<\/strong> \u043d\u0430 <strong>my-custom-service<\/strong>. \u0411\u043b\u043e\u043a address \u0431\u044b\u043b \u0438\u0437\u043b\u0438\u0448\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043a \u043d\u0430\u043c \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043f\u043e <strong>tcp<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c API \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c HLS, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d <strong>http<\/strong>. \u0417\u0430\u043c\u0435\u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0431\u044b\u043b\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0430 \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e go-peer\/hidden-lake-messenger \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438\u0441\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u0437\u0435\u043b. \u0415\u0441\u043b\u0438 \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043d\u043e\u0432\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0443\u0437\u0435\u043b, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u0443\u0436\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043b\u043e\u0433\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/600\/553\/a98\/600553a9853f3c8d19082d48553bd866.png\" width=\"1218\" height=\"251\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/600\/553\/a98\/600553a9853f3c8d19082d48553bd866.png\"\/><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043a\u0442\u043e-\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u0440\u0430\u0444\u0438\u043a, \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0430 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u0430. \u0422\u0430\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c <strong>type=UNDEC<\/strong>, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430. \u041e\u043d\u0438 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u0441\u0430\u043c\u043e \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u0440\u0430\u0437\u0433\u043b\u0430\u0448\u0430\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f. \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u043c\u043e\u0436\u0435\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. <\/p>\n<h2>\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440<\/h2>\n<p>\u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u043e\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0435 HLS, \u0443\u0437\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0439 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u0432\u044f\u0436\u0435\u043c\u0441\u044f \u0435\u0434\u0438\u043d\u043e\u0436\u0434\u044b \u0441 \u0442\u0430\u043a\u0438\u043c \u0443\u0437\u043b\u043e\u043c \u043f\u043e \u0435\u0433\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0443, \u0431\u0443\u0434\u0435\u043c \u0441 \u043d\u0438\u043c \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0430 \u0434\u0430\u043b\u0435\u0435 \u043e\u043d \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f, \u0442\u043e \u0441 \u043d\u0438\u043c \u043f\u043e \u0441\u0442\u0430\u0440\u043e\u043c\u0443 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f. \u0427\u0442\u043e\u0431\u044b \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0443\u0437\u043b\u0443 \u0433\u0434\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0418\u0437 \u043d\u0435\u0433\u043e \u043e\u043d \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442 \u0435\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430. <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f46\/2f1\/fa8\/f462f1fa8fab209280d71c708e42079b.png\" width=\"450\" height=\"320\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f46\/2f1\/fa8\/f462f1fa8fab209280d71c708e42079b.png\"\/><\/figure>\n<p>\u041f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0432 HLS \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0443\u0437\u043b\u0430 \u043c\u043e\u0436\u043d\u043e \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0443\u0442\u044c, \u0433\u0434\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u0441 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443: <code>$ hls -key=priv.key<\/code> . \u0415\u0441\u043b\u0438 <code>priv.key<\/code> \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0440\u044f\u0434\u043e\u043c \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 <code>hls<\/code>, \u0442\u043e \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u0442\u0430\u043a \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u0438\u043d\u0430 \u043a\u043b\u044e\u0447\u0430 <code>priv.key<\/code> \u0431\u044b\u043b\u0430 \u0440\u0430\u0432\u043d\u0430 \u0431\u043b\u043e\u043a\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a <strong>key_size_bits<\/strong>. \u0418\u043d\u0430\u0447\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0443\u0436\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <strong>API<\/strong>, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e POST \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043d\u0430 <code>http:\/\/localhost:9572\/api\/node\/key<\/code>. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/github.com\/number571\/go-peer\/tree\/master\/cmd\/hidden_lake\/service\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<\/li>\n<\/ol>\n<p>\u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c \u043b\u0438\u0448\u044c \u0432\u043e\u043f\u0440\u043e\u0441 \u0442\u043e\u0433\u043e &#8212; \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 <code>cmd\/tools\/keygen<\/code>. \u0414\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u043b\u0438\u0431\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0441 \u0440\u0435\u043b\u0438\u0437\u0430. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u0438\u043d\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0430 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0432 <strong>key_size_bits<\/strong>.<\/p>\n<pre><code class=\"bash\">$ keygen 4096<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430: <code>priv.key<\/code> \u0438 <code>pub.key<\/code>. \u041f\u0435\u0440\u0432\u044b\u0439 \u043a\u0430\u043a \u0440\u0430\u0437 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0432 HLS. \u0412\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0432 \u0441\u0435\u0442\u0438 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u0440\u0443\u0437\u044c\u044f \u0441\u043c\u043e\u0433\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. <\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u041d\u0438 \u0432 \u043a\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0435\u0433\u043e. \u041e\u043d \u0443\u0436\u0435 \u043a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043b\u0430\u0448\u0451\u043d.<\/p>\n<pre><code>PrivKey(go-peer\/rsa){308209290201000282020100E23F5A321F1E6CB77DD89BA52E06E6E810DC3672CAB16571DEA47CDFF96AC41B11384A0909699C220FE50D49EC482C46C7E30F47DA705F13E4A4AF37D1954CAA91CF8368B5B5E88382FF554ADEFEB9C9FE4C899C1E9A714A849B55DF56F851F131AEBC9CF02AF357D9E3B99FD2E6AFF7D9000E03199E53F76E87F0DBE1C596B8E31B343E04823AB9EAAF022DE06D7CB293802DB30E1F655258011263AF0BA57C27BFF5AD0913FA05AEFF08725C32B876709F259823A734938B6B9419E79FA0259B27604D0E03EF20595DDB70DC97E8377C2F7E55D76363130309DE1FB5CBAC4DCC136729327D026C77DA7A0AD3A00CE7D2BA3F66ECF27A1CD76ADE8938BB1D73000BBCAD045EA3593D47383A13F83A800546666BF98A1855548F99C35E0A0FA4E2BEBBCFB4218F6BD19D7C9E822E7ADC326C797F2C6302FAA5739DB981E4AE15D104111FAFA8FF51853BE3EBE2C2A60C146F273D96D3A5928E56B5559D8AE56D52645BEE95DE4F987182A8741C66D6AF2598ED94A3417293CD09845CECCD438EA7B7E3E66FC71BB2AEFFE53457F6F5A5B443F49EABFA569759075A8AAB5BD58240528D2A20AD99FEA614424DDC58336BD693D7EEA35ACB7663E96FB4C2E316374844AB095CB6F7442081085CED353F95C08BE44D98BCAE19C486594857412765D58DBB05F4AD904BDB9459BA8BC3A0045B98342EC1C840242C726C6E551A450502030100010282020100A801575F04D0B8F681130A715C7E6F95407FE646D3D16B7D65514C119DCAF4990CEE79BBC02B966F8CD2104E2691699F9DEB347BACEFE90A82ACF018491FCEF0929A4000CF7EA78C91083E33FCE7B6DB12658F82490F72B55D47643B17000B094A55716630CA142DD6754E702A5277B55A84B9E2FF711CF50E35105C9788FC658AEFB6999F0B7DC4754B441901210C8A2711F5DD92CD29963E177DAA5C600FA0E47B9D59C2F5FCA19FD36E584DB2B45BEF419ECF1D1A9AE63D8FC34881417DD0AF284C50ABE9ABF69FA61CBFF06F35578E764E203C73672CC502DCD93B4C6544D8184870C53723479CB0B613B8168FBECE32D3C6008A06B7C81769ED081D9ABD57166999ADAAE029C24D82E5E47888F7009B546768A894B5F0EA8BD9B3688C69F2E36B58359C02904F7A3F8C476D8B84D5A92CB5AF4D6D890419058A40D2944D72EF400F88B95E8A69CAABDC524F2555231ADD7239BEAA025A85AA2C8D7A8E2B6F3786FCEEBAB7C87E60337842F253A54D7229967B8D3DEFFCCF808662104C5E6D9C089B1B302BE32827D83ED9485B80C2D5320C9CBFD8064B8049952EA1E29EF240A838B0B877273D9D35BF5BA479B8A3A01B4CDBC20C21EA6B8291F590721F90E605D944CDDB90C258890678DB38039D8E436BF364082B84D124A451E38324FD3F3080FDB446B24F3C04B31BB1705CC69B33ABC2ED148C13386FF2F0C96BB90282010100FD2DFA835984D3BCA5880E4E98F6AF6AB6738C6D32A0F280E250831A7174D0BB3228AF055056DD50C0D964B5D6FBDCB569EC569FA0C797FECD6DAA805C5FD4178FC9204E0945A4BB95730846C79900D9BE21962460D33FD9A2B35006257708A9AB83C26A0006B91DC5EA48862323428E0DC6BA7EE8588EEDD863948DCBC7428A854AC93D151B3EC3ACE91978121BE49DAB05151C3418FBF5C243B3E2CD17B635963128BC1E6F741C7DF474315CBA39694963B5D1B0ECC7A4F1D66EC579EC29F4800B3FCBF797E1F7AF92AF85895A384DCFAF37809BF2EDA3B53B6BFE50441F4DD8C397070FC33927F93391F8BFDB2BED4447AB65624AF91A59E93166315FC7CF0282010100E4C4917BA8B3A1DD48342061767D8B0B285E67389A88D58B3152186A5F3C766ADB22983BD9B7917555333D3663F68A26506822F6A0AF497E7B303EC3FF2AA988E3D599A3EEF4804DB3289E8104ECBB7D0D82A40A5ED945AE75C90E6076385997A2F2B468089D3CC34B3624D26843C3CF9D752E40A35594CA09A671FB73177F630AB06764BA923D4E83C86A219F05D439F72E8A531994B79CC32DF7A84703D84266FD4DC837FF5711B77CC24063467553E141443F658D8BC6F97FE5EB9CD2A6316836F14F08E6D10C3115AD3BA9D4906CA3A96C6F1B6745190FE8F0A5E988068B65BB8A08F0BBE66307A3FF52466DDB06057B6CFC627BBBD540716A86855106EB0282010100C9229AEF78D1C6690B5490912E82640FB20D1015BC7012D8037395040FF88ECEF8E54B4E3C6A15FECE86A6B4B3AB79C701F48948DDB1537650FB7BC5E81D1560F69101421DA99F5A8B3B4CEAF62CFE78FDCCAEFC0D9426189F623703FB059AF338583FBE7870DEE5E152E3F4F4BB51678B5842D7097D3967894E6B394F17E92C2502A9E705FA941D5E23FD60DF7A1B608AFA49B0134F79F3DF366C15957BEDFC9A6A498351E69766FF45927D98BE355808BED7365489777DF9C6B24FDE31998F2D9E423BA76299596DB96A09FB799A5B6ED03396CFCDE9AEF20ED817BCEAB1B7E5AA55347DF84953116E3FDC4F872E599BB2185F3DFC73F3D454273399AC0F0F028201002259213EDFE598B810CF42CD5F6D1A2362BC49E345D0A5BF70785312259A7E6D2CD9D4E1A79ED84835B2ABCE2ED42589FB28A7974029116FDC2F323D5B629C71E14380FE0C32C9D0E0C58886F6A654C041F70B8A43137C52E57C7A9C2123F4CFBFB7913ECD8C4E434457ACCFAAB801FE7A35CDEC069A22ECF2E5FAD73640A0EFCDFB0E8B213833DC460D21624AEE251F4EEDBDF71C302821716CC5728EB71511634545187ACFEBD2CD29FE408CA75796708BCC2378ABF800B8156C00245BBC784E9D713DDCA84B5AF943B7EEED60ED0E62C45D739139C036331D568492BBC9BFC4569433237212F56B804425A64D78453F2D78FFAC09C7FA0CE2FA8B9818C2610282010070EC7D2949ED771AFBD24174E531F913C37D108759A61BD1F3C11105C52683532D5384B972B031222805951F0F50572B2150EEFE1B2F4559805C83B3B83B89CADA3BD64FCA2782B8A6A4BE5E066355062AEC1EB553DEE683195882D472111A73E04BF9C93E057F3AA5192B0CB6AD4B0254D5FE194A206E9A49FF2F787BDDEA06D3FA797C7CD90C82AABB8A1122D6C0235275F0FD73E78904C48CB976DB6D71ED9CFECA976C5B291A65AC2B1715B81358544569DC6030CA9B1BC96E1D565D668E1251685250E464DD2F9BA186968F80792874617DBA9E92853F4190BFF3D0D7667E7D51AE7C2222CFA66C578825A12F913A61FA73AA850DCA9AFE87CF2494515D}<\/code><\/pre>\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447.<\/p>\n<pre><code>PubKey(go-peer\/rsa){3082020A0282020100E23F5A321F1E6CB77DD89BA52E06E6E810DC3672CAB16571DEA47CDFF96AC41B11384A0909699C220FE50D49EC482C46C7E30F47DA705F13E4A4AF37D1954CAA91CF8368B5B5E88382FF554ADEFEB9C9FE4C899C1E9A714A849B55DF56F851F131AEBC9CF02AF357D9E3B99FD2E6AFF7D9000E03199E53F76E87F0DBE1C596B8E31B343E04823AB9EAAF022DE06D7CB293802DB30E1F655258011263AF0BA57C27BFF5AD0913FA05AEFF08725C32B876709F259823A734938B6B9419E79FA0259B27604D0E03EF20595DDB70DC97E8377C2F7E55D76363130309DE1FB5CBAC4DCC136729327D026C77DA7A0AD3A00CE7D2BA3F66ECF27A1CD76ADE8938BB1D73000BBCAD045EA3593D47383A13F83A800546666BF98A1855548F99C35E0A0FA4E2BEBBCFB4218F6BD19D7C9E822E7ADC326C797F2C6302FAA5739DB981E4AE15D104111FAFA8FF51853BE3EBE2C2A60C146F273D96D3A5928E56B5559D8AE56D52645BEE95DE4F987182A8741C66D6AF2598ED94A3417293CD09845CECCD438EA7B7E3E66FC71BB2AEFFE53457F6F5A5B443F49EABFA569759075A8AAB5BD58240528D2A20AD99FEA614424DDC58336BD693D7EEA35ACB7663E96FB4C2E316374844AB095CB6F7442081085CED353F95C08BE44D98BCAE19C486594857412765D58DBB05F4AD904BDB9459BA8BC3A0045B98342EC1C840242C726C6E551A45050203010001}<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h2>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u0434\u0440\u0443\u0437\u0435\u0439<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0431\u044b\u043b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>hls.cfg<\/code> \u0438 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0431\u044b\u043b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 <code>priv.key<\/code> , \u0432\u0441\u0451 \u0447\u0442\u043e \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f &#8212; \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0434\u0440\u0443\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c Hidden Lake \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f F2F \u0441\u0435\u0442\u044c\u044e, \u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0441 \u043a\u0435\u043c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f. \u041e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c. \u0414\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440.<\/p>\n<pre><code>PubKey(go-peer\/rsa){3082020A0282020100EE8889DD0AD78CFC7F10BCE9F032B00EEA10217468BC87D821EB8CC999F763D53D2E9AF6373966C77F0DE56E9722DE6AE6D86722F6CD4E9164258BA6570B6135E181FE5C111DB63A33BD0ED406F4D3DCEB65E7ED1DF5FD1B8B3C524CF0010F43755C2AB0DF9EC4176CCFE4503BC25B08BD7791C1FED19FD50C74921CC1823114DC96DFA7FE3A2F53F70D69E7A4A629D78F83D38F6F10082550EBBE3E5EB16CA5924B7D7738876F2E00AA363B67EF655E6C468EAD5F17CFE438C1C02F873A4D9CEDC13E2886FCEDE4F828F56CE3B201A7ACB9A1D16BA93002BCAFF70E36C57826F705437C0EEE0479D470F1F4BC8E427204B5EA2CBB0BCEC78D57C448AD9D47E1B457886A50A122D9C1EF235639337CA64F4B76D3BF5E92D8F3E741B31ED5FEFD3B8E4876413CAEC96D2B78B7BC2C389B5E2C13292AC597F73C312A47FA7D6F633E309886879E1CEF11EF32FE2790D790EC370D63CAA41FBA9B915A839B0A0B2890D3C3C18701C96BA087763E2473E83EE919C17FB14AFAC3C06301CACE66CEF783D6DD3142D9F1ABDE4179F6D454D3211E68F04FBC01F4916A0ABF13804194B7EAB7C9C40A8C26A33EAC1F7B2D1499996AFB03FCC3FD5A5DA6B69167E75FD1A29CA5BC5186450A97AE8836EBF1A10E1363995F1262653D2D76164F761FE8178B9CE4B1F4154CC5852657C508622F4CA8DF2D09AB066166574FC50367645A817D0203010001}<\/code><\/pre>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>hls.cfg<\/code> \u0432 \u0431\u043b\u043e\u043a <strong>friends<\/strong>. \u0414\u0430\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043d\u0435\u0439\u043c (alias) \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u0441\u0435\u0442\u0438, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0418\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0443\u0436\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<pre><code class=\"json\">{ \"settings\": { \"message_size_bytes\": 8192, \"work_size_bits\": 20, \"queue_period_ms\": 5000, \"key_size_bits\": 4096, \"limit_void_size_bytes\": 4096 }, \"logging\": [ \"info\", \"warn\", \"erro\" ], \"services\": { \"my-custom-service\": \"127.0.0.1:8080\" }, \"network_key\": \"8Jkl93Mdk93md1bz\", \"connections\": [ \"94.103.91.81:9581\", \"195.133.1.126:9581\" ], \"friends\": { \"number571\": \"PubKey(go-peer\/rsa){3082020A0282020100EE8889DD0AD78CFC7F10BCE9F032B00EEA10217468BC87D821EB8CC999F763D53D2E9AF6373966C77F0DE56E9722DE6AE6D86722F6CD4E9164258BA6570B6135E181FE5C111DB63A33BD0ED406F4D3DCEB65E7ED1DF5FD1B8B3C524CF0010F43755C2AB0DF9EC4176CCFE4503BC25B08BD7791C1FED19FD50C74921CC1823114DC96DFA7FE3A2F53F70D69E7A4A629D78F83D38F6F10082550EBBE3E5EB16CA5924B7D7738876F2E00AA363B67EF655E6C468EAD5F17CFE438C1C02F873A4D9CEDC13E2886FCEDE4F828F56CE3B201A7ACB9A1D16BA93002BCAFF70E36C57826F705437C0EEE0479D470F1F4BC8E427204B5EA2CBB0BCEC78D57C448AD9D47E1B457886A50A122D9C1EF235639337CA64F4B76D3BF5E92D8F3E741B31ED5FEFD3B8E4876413CAEC96D2B78B7BC2C389B5E2C13292AC597F73C312A47FA7D6F633E309886879E1CEF11EF32FE2790D790EC370D63CAA41FBA9B915A839B0A0B2890D3C3C18701C96BA087763E2473E83EE919C17FB14AFAC3C06301CACE66CEF783D6DD3142D9F1ABDE4179F6D454D3211E68F04FBC01F4916A0ABF13804194B7EAB7C9C40A8C26A33EAC1F7B2D1499996AFB03FCC3FD5A5DA6B69167E75FD1A29CA5BC5186450A97AE8836EBF1A10E1363995F1262653D2D76164F761FE8178B9CE4B1F4154CC5852657C508622F4CA8DF2D09AB066166574FC50367645A817D0203010001}\" } }<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043d\u0430\u0448 \u0443\u0437\u0435\u043b \u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u0441 \u043d\u0438\u043c \u043c\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0438 \u043d\u0430\u0448 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441\u0435 <strong>127.0.0.1:8080<\/strong>. \u0412\u0441\u0451, \u0447\u0442\u043e \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u0442\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u0441\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0443\u0437\u043b\u0443 \u0432 \u0441\u0435\u0442\u0438. \u0414\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0434\u043e \u0443\u0437\u043b\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f. \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0443\u0437\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 <strong>number571<\/strong>. \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c (\u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c) \u043d\u0430\u0448\u0435\u0433\u043e \u0443\u0437\u043b\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<pre><code class=\"json\">{ \"settings\": { \"message_size_bytes\": 8192, \"work_size_bits\": 20, \"queue_period_ms\": 5000, \"key_size_bits\": 4096, \"limit_void_size_bytes\": 4096 }, \"logging\": [ \"info\", \"warn\", \"erro\" ],     \"address\": {         \"http\": \"127.0.0.1:9572\"     }, \"network_key\": \"8Jkl93Mdk93md1bz\", \"connections\": [ \"94.103.91.81:9581\", \"195.133.1.126:9581\" ], \"friends\": { \"some-node-with-service\": \"PubKey(go-peer\/rsa){3082020A0282020100E23F5A321F1E6CB77DD89BA52E06E6E810DC3672CAB16571DEA47CDFF96AC41B11384A0909699C220FE50D49EC482C46C7E30F47DA705F13E4A4AF37D1954CAA91CF8368B5B5E88382FF554ADEFEB9C9FE4C899C1E9A714A849B55DF56F851F131AEBC9CF02AF357D9E3B99FD2E6AFF7D9000E03199E53F76E87F0DBE1C596B8E31B343E04823AB9EAAF022DE06D7CB293802DB30E1F655258011263AF0BA57C27BFF5AD0913FA05AEFF08725C32B876709F259823A734938B6B9419E79FA0259B27604D0E03EF20595DDB70DC97E8377C2F7E55D76363130309DE1FB5CBAC4DCC136729327D026C77DA7A0AD3A00CE7D2BA3F66ECF27A1CD76ADE8938BB1D73000BBCAD045EA3593D47383A13F83A800546666BF98A1855548F99C35E0A0FA4E2BEBBCFB4218F6BD19D7C9E822E7ADC326C797F2C6302FAA5739DB981E4AE15D104111FAFA8FF51853BE3EBE2C2A60C146F273D96D3A5928E56B5559D8AE56D52645BEE95DE4F987182A8741C66D6AF2598ED94A3417293CD09845CECCD438EA7B7E3E66FC71BB2AEFFE53457F6F5A5B443F49EABFA569759075A8AAB5BD58240528D2A20AD99FEA614424DDC58336BD693D7EEA35ACB7663E96FB4C2E316374844AB095CB6F7442081085CED353F95C08BE44D98BCAE19C486594857412765D58DBB05F4AD904BDB9459BA8BC3A0045B98342EC1C840242C726C6E551A45050203010001}\" } }<\/code><\/pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a <strong>addresses<\/strong> \u0441 \u043f\u043e\u043b\u0435\u043c <strong>http<\/strong>, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u0431\u043b\u043e\u043a <strong>services<\/strong>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u0445 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0439 \u0434\u0440\u0443\u0433 \u0441 \u0440\u0430\u043d\u0435\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b32\/436\/2d7\/b324362d7c40227284d435e79b02489a.png\" width=\"1200\" height=\"836\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b32\/436\/2d7\/b324362d7c40227284d435e79b02489a.png\"\/><\/figure>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 bash \u0441\u043a\u0440\u0438\u043f\u0442. API HLS \u0442\u0440\u0435\u0431\u0443\u0435\u0442 JSON-\u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0441\u0435\u0442\u0438. \u041f\u043e\u043b\u044f \u0432 \u044d\u0442\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441\u0445\u043e\u0436\u0438 \u0441 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0437\u0434\u0435\u0441\u044c &#8212; \u044d\u0442\u043e body, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 <strong>base64<\/strong>. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e host \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0451\u043d. \u0422\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u043d\u0435 127.0.0.1:8080, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e <strong>my-custom-service<\/strong>.<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash  JSON_DATA='{         \"method\":\"POST\",         \"host\":\"my-custom-service\",         \"path\":\"\/\",         \"head\":{                 \"Accept\": \"text\/html\"         },         \"body\":\"aGVsbG8sIHdvcmxkIQ==\" }'; # base64(hello, world!) = aGVsbG8sIHdvcmxkIQ==  JSON_DATA=${JSON_DATA\/\/\\\"\/\\\\\\\"} # \"method\" -> \\\"method\\\", ... JSON_DATA=${JSON_DATA\/\/[$'\\t\\r\\n ']} # delete \\t \\r \\n ' ' from string  PUSH_FORMAT='{         \"receiver\":\"some-node-with-service\",         \"req_data\":\"'$JSON_DATA'\" }';  d=\"$(date +%s)\"; curl -i -X POST -H 'Accept: application\/json' http:\/\/localhost:9572\/api\/network\/request --data \"${PUSH_FORMAT}\"; echo &amp;&amp; echo \"Request took $(($(date +%s)-d)) seconds\"; <\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435, \u0432 JSON_DATA \u0432\u0441\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 <code>\"<\/code> \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 <code>\\\"<\/code> , \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0441\u0442\u0440\u043e\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u0441\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432, \u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u0439, \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u0430\u0440\u0435\u0442\u043a\u0438, \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 JSON_DATA \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0432 \u043f\u043e\u043b\u0435 req_data. \u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u0443\u0437\u0435\u043b \u0441 \u043d\u0438\u043a\u043d\u0435\u0439\u043c\u043e\u043c = <strong>some-node-with-service<\/strong>. \u0414\u0430\u043b\u0435\u0435, \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u044d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"bash\">HTTP\/1.1 200 OK Content-Type: application\/json Date: Thu, 05 Oct 2023 05:16:47 GMT Content-Length: 136  {\"code\":200,\"head\":{\"Content-Type\":\"text\/html\",\"Server\":\"BaseHTTP\/0.6 Python\/3.11.5\"},\"body\":\"W1BPU1RdIFVwcGVyID0gSEVMTE8sIFdPUkxEIQ==\"} Request took 7 seconds<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0441 \u043a\u043e\u0434\u043e\u043c 200 \u0438 \u0442\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0432 base64. \u0412\u0441\u0451 \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f &#8212; \u044d\u0442\u043e \u0435\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<pre><code class=\"bash\">$ echo \"W1BPU1RdIFVwcGVyID0gSEVMTE8sIFdPUkxEIQ==\" | base64 -d                                                        \ue0b2 1 \u2718  [POST] Upper = HELLO, WORLD!<\/code><\/pre>\n<p>\u041c\u043e\u0436\u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442. \u0423\u0431\u0435\u0440\u0451\u043c <strong>body<\/strong>, \u0438\u0437\u043c\u0435\u043d\u0438\u043c <strong>path<\/strong> \u043d\u0430 <em>\/example<\/em>, \u0438 <strong>method<\/strong> \u043d\u0430 <em>GET<\/em>. \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<pre><code class=\"bash\">... JSON_DATA='{         \"method\":\"GET\",         \"host\":\"my-custom-service\",         \"path\":\"\/example\",         \"head\":{                 \"Accept\": \"application\/json\"         } }'; ...<\/code><\/pre>\n<pre><code class=\"bash\">HTTP\/1.1 200 OK Content-Type: application\/json Date: Thu, 05 Oct 2023 05:27:17 GMT Content-Length: 124  {\"code\":200,\"head\":{\"Content-Type\":\"text\/html\",\"Server\":\"BaseHTTP\/0.6 Python\/3.11.5\"},\"body\":\"W0dFVF0gUGF0aCA9IC9leGFtcGxl\"} Request took 6 seconds<\/code><\/pre>\n<pre><code class=\"bash\">$ echo \"W0dFVF0gUGF0aCA9IC9leGFtcGxl\" | base64 -d                                                                      \ue0b2 \u2714  [GET] Path = \/example<\/code><\/pre>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f4f\/9d7\/340\/f4f9d7340837265bc3c108f6c08153e3.png\" width=\"1386\" height=\"924\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f4f\/9d7\/340\/f4f9d7340837265bc3c108f6c08153e3.png\"\/><\/figure>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0443\u0437\u0435\u043b \u0432 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u043d\u0451\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441. \u0425\u043e\u0442\u044c \u044f\u0434\u0440\u043e \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0438 \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043e\u043d\u043e \u043a \u043d\u0435\u043c\u0443 \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0432\u0430\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0438 \u043b\u044e\u0431\u0438\u043c\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.<\/p>\n<h2>\u041b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0430<\/h2>\n<ol>\n<li>\n<p>\u041e\u0431\u0449\u0430\u044f \u0442\u0435\u043e\u0440\u0438\u044f \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439. \u0412\u0442\u043e\u0440\u043e\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u0435 (\u0413. \u041a\u043e\u0432\u0430\u043b\u0435\u043d\u043a\u043e). [\u042d\u0442\u043e \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0441\u0431\u043e\u0440\u043d\u0438\u043a \u0441\u0442\u0430\u0442\u0435\u0439, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e <a href=\"https:\/\/github.com\/number571\/go-peer\/tree\/master\/docs\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435]<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439 (\u0414. \u0414\u044d\u0439\u043d\u0435\u0437\u0438\u0441, \u041a. \u0414\u0438\u0430\u0441, \u041f. \u0421\u0430\u0439\u0432\u0435\u0440\u0441\u043e\u043d) [\u0425\u043e\u0440\u043e\u0448\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 <a href=\"https:\/\/www.pgpru.com\/biblioteka\/statji\/sac\" rel=\"noopener noreferrer nofollow\">\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b<\/a> \u043f\u043e \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u0438 \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439, \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438]<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u0430\u044f \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C (\u0411. \u0428\u043d\u0430\u0439\u0435\u0440). [\u041f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u043e\u0431\u0437\u043e\u0440\u043e\u043c \/ \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u0431\u0435\u0434\u0430\u044e\u0449\u0438\u0445 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432 &#8212; \u0428\u0438\u0440\u043e\u043a\u043e\u0432\u0435\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0433\u043b\u0430\u0432\u0430 6.3]<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/765464\/\"> https:\/\/habr.com\/ru\/articles\/765464\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0425\u043e\u0442\u044c \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c, \u043f\u0440\u0438\u0434\u0430\u0442\u043a\u043e\u043c \u043a\u0443\u0434\u0430 \u0431<em>\u043e<\/em>\u043b\u044c\u0448\u0435\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043d\u0435\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043e\u0441\u0442\u0440\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u0438, \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u0440\u0430 \u0438 \u0437\u0430\u0432\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u0441\u0432\u043e\u0435\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0443\u0445\u0438\u0449\u0440\u0451\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0438\u0437\u0432\u0440\u0430\u0449\u0451\u043d\u043d\u043e\u0441\u0442\u044c\u044e. \u0422\u0430\u043a\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043a\u043e\u0432 \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u0435\u043d \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443. \u041e\u0434\u043d\u0438 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0431\u0440\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u043d \u0438 \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432, \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u044f \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u044f\u0437\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438. \u0414\u0440\u0443\u0433\u0438\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0431\u0435\u0440\u0443\u0442 \u0441\u0432\u043e\u0438\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c, \u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0438\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u0435\u0437\u0440\u0430\u0437\u043b\u0438\u0447\u0435\u043d \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442. <\/p>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c Hidden Lake \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445. \u041d\u0430 \u0435\u0451 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0443\u0437\u043b\u044b. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0441\u0435\u0442\u0438 Hidden Lake.<\/p>\n<h2>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e?<\/h2>\n<figure class=\"full-width\"><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c &#8212; \u0430 \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0432\u0441\u0451 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e? \u0421 \u043a\u0430\u043a\u043e\u0439 \u0446\u0435\u043b\u044c\u044e? \u0418 \u0442\u0430\u043a\u043e\u0432\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e. <\/p>\n<ol>\n<li>\n<p>\u0421\u0430\u043c\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0432\u0441\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 &#8212; \u044d\u0442\u043e <strong>\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u043e\u0431\u0435\u0437\u043b\u0438\u0447\u0438\u0432\u0430\u043d\u0438\u0435<\/strong> \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0412 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake, \u043f\u043e\u043c\u0438\u043c\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u0438, \u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0438\u0441\u0442\u0438\u043d\u043d\u0443\u044e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044e \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043e\u0442 \u0432\u0441\u0435\u0445 \u0432\u0438\u0434\u043e\u0432 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0430\u0442\u0430\u043a, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f, \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0438 \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0437\u0430\u0449\u0438\u0449\u0430\u044e\u0449\u0435\u0435 \u0441\u0430\u043c\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0442 \u0442\u0440\u0435\u0442\u044c\u0438\u0445 \u043b\u0438\u0446.<\/p>\n<\/li>\n<li>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <strong>\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c<\/strong>, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b &#8212; \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438, \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u044b, \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430, \u0444\u043e\u0440\u0443\u043c\u044b, \u0431\u043e\u0442\u044b \u0438 \u0442.\u0434. \u0422\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u0435\u0442\u0438 Tor \u043c\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043c\u043e\u0436\u0435\u043c \u043d\u0430 \u0441\u0432\u043e\u0451\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0430\u0439\u0442 \u0432 \u043f\u0441\u0435\u0432\u0434\u043e\u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0439 \u0437\u043e\u043d\u0435 <code>.onion<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438: 1) \u0430\u0440\u0435\u043d\u0434\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0431\u0435\u043b\u044b\u043c IP, \u0438\u043b\u0438 2) \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438, \u0438\u043b\u0438 3) \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u043e\u0440\u0442\u043e\u0432 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0435 \u043d\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c Hidden Lake \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u0441\u0445\u043e\u0436\u0435\u043c\u0443 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440<\/strong> \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0448\u043a\u043e\u043b\u044b, \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430, \u0440\u0430\u0431\u043e\u0442\u044b, \u0434\u043e\u043c\u0430, \u0443\u043b\u0438\u0446\u044b, \u0440\u0435\u0433\u0438\u043e\u043d\u0430 \u0438 \u0442.\u043f. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u0443\u0436\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0443\u0437\u043b\u0430\u043c \/ \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u0430\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0435\u0442\u044c\u044e. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u043d\u043a\u0442 \u0445\u043e\u0442\u044c \u0438 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c, \u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043f\u0435\u0440\u0432\u044b\u043c \u0438\u043b\u0438 \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u044c, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c. \u0421\u0432\u044f\u0437\u0430\u043d\u043e \u044d\u0442\u043e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0436\u043d\u0443\u044e (\u043f\u0443\u0441\u0442\u0443\u044e) \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u042d\u0442\u043e \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u0441\u044f \u043a \u0441\u0435\u0442\u0438. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0446\u0435\u043b\u044c\u044e \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e <strong>\u0432\u043e\u043b\u043e\u043d\u0442\u0451\u0440\u0441\u0442\u0432\u043e<\/strong> \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430.<\/p>\n<\/li>\n<\/ol>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 Hidden Lake?<\/h2>\n<figure class=\"full-width\"><\/figure>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u044f\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0442\u044c \u0441\u0430\u043c\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u0422\u0430\u043a\u043e\u0432\u044b\u0435 \u0441\u0435\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0440\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043d\u0430\u0434\u0432\u0438\u0433\u0430\u044e\u0449\u0435\u0439\u0441\u044f \u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u0435\u0439, \u0438 \u0447\u0435\u043c \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0442\u0430\u043a\u043e\u0432\u0430\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f, \u0442\u0435\u043c \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0438 \u0432\u044b\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0443\u0433\u0440\u043e\u0437 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043b\u0430 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0435\u0451 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0441\u0442\u044c, \u0432\u044b\u0440\u0430\u0436\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438. \u0418 \u043a \u0442\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043c\u0435\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. <\/p>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0442\u0430\u043a\u043e\u0439 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u0435\u0442\u0438 \u0441 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0441\u0442\u044c\u044e, \u0441\u0443\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043b\u044e\u0431\u044b\u0445 \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u043d\u0430\u043f\u0430\u0434\u0435\u043d\u0438\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f, \u0441 \u0446\u0435\u043b\u044c\u044e \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0434\u0435\u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u0435\u0439 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0431\u0430\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445, \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0437\u0430 \u0441\u0447\u0451\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c\u0438. \u041d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u0442\u0440\u0438 \u0437\u0430\u0434\u0430\u0447\u0438: <\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0431\u0435\u0434\u0430\u044e\u0449\u0438\u0445 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u0432 (<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1%D0%B5%D0%B4%D0%B0%D1%8E%D1%89%D0%B8%D1%85_%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%BE%D0%B2\" rel=\"noopener noreferrer nofollow\">DC-\u0441\u0435\u0442\u0438<\/a>), <\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439 (<a href=\"https:\/\/habr.com\/ru\/articles\/745256\/\" rel=\"noopener noreferrer nofollow\">QB-\u0441\u0435\u0442\u0438<\/a>), <\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438 (<a href=\"https:\/\/habr.com\/ru\/articles\/743630\/\" rel=\"noopener noreferrer nofollow\">EI-\u0441\u0435\u0442\u0438<\/a>).<\/p>\n<\/li>\n<\/ol>\n<p>\u0410\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c <strong>Hidden Lake<\/strong> (<a href=\"https:\/\/github.com\/number571\/go-peer\/tree\/master\/cmd\/hidden_lake\" rel=\"noopener noreferrer nofollow\">HL<\/a>) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 QB-\u0441\u0435\u0442\u0435\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439. \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0451 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0432 \u0440\u043e\u043b\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u043c\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0443 \u0435\u0433\u043e \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0441\u0442\u0438. \u0421\u0435\u0442\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0440\u0430\u043d\u0433\u043e\u0432\u043e\u0439 (P2P) \u0441\u043e \u0441\u0432\u044f\u0437\u044c\u044e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0439 &#8212; friend-to-friend (F2F). \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0439 \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0432\u043d\u0435\u0441\u0442\u0438 \u0432 \u0431\u0435\u043b\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0432\u043e\u0438\u0445 \u0434\u0440\u0443\u0437\u0435\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0425\u043e\u0442\u044c \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 <strong>Go<\/strong>, \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0443 <strong>HLS<\/strong>, \u0442\u0430\u043a\u0430\u044f \u0441\u0435\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0438\u0448\u044c HTTP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 HLS \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a <em>\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u0430<\/em> \u0438 <em>\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443<\/em>.<\/p>\n<h2>\u041f\u0438\u0448\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441<\/h2>\n<p>\u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u043d\u0435\u0435, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 Hidden Lake, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043b\u0438\u0448\u044c \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 HTTP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0421\u0430\u043c \u0441\u0435\u0440\u0432\u0438\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u0443\u0434\u044c \u0442\u043e Python, PHP, Java, Rust \u0438 \u0442.\u0434. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go (\u0440\u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0434\u043b\u044f Hidden Lake), \u0430 \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u044f\u0437\u044b\u043a <strong>Python<\/strong>.<\/p>\n<pre><code class=\"python\">from http.server import BaseHTTPRequestHandler, HTTPServer  class SimpleService(BaseHTTPRequestHandler):     def _set_success_response(self):         self.send_response(200)         self.send_header('Content-type', 'text\/html')         self.end_headers()      def _set_failed_response(self):         self.send_response(400)         self.send_header('Content-type', 'text\/html')         self.end_headers()      def do_GET(self):         self._set_success_response()         response = \"[GET] Path = \" + str(self.path)         self.wfile.write(response.encode('utf-8'))      def do_POST(self):         try:             content_length = int(self.headers['Content-Length'])          except:             self._set_failed_response()             return           post_data = self.rfile.read(content_length)          self._set_success_response()         response = \"[POST] Upper = \" + str(post_data.decode('utf-8')).upper()         self.wfile.write(response.encode('utf-8'))  def main():     listener = HTTPServer(('127.0.0.1', 8080), SimpleService)     print(\"Service is running...\")     try:         listener.serve_forever()     except KeyboardInterrupt:         print(\"Service is stopped...\")     listener.server_close()  if __name__ == '__main__':     main() <\/code><\/pre>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c GET, \u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0443\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441 \u043c\u0435\u0442\u043e\u0434\u043e\u043c POST, \u0442\u043e \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u0437 \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0435\u0451 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0442\u0432\u0435\u0442\u0430.<\/p>\n<pre><code>$ curl -X GET 127.0.0.1:8080                                                                              \ue0b2 7 \u2718  [GET] Path = \/                                                                                                                                                  $ curl -X POST 127.0.0.1:8080 --data \"hello\"                                                                \ue0b2 \u2714  [POST] Upper = HELLO<\/code><\/pre>\n<h2>\u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u0443\u0437\u0435\u043b<\/h2>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u0435\u043c \u0443\u0437\u043b\u0430, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b \u043a\u0430\u043a-\u0442\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u044d\u0442\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/github.com\/number571\/go-peer\" rel=\"noopener noreferrer nofollow\">go-peer<\/a>. \u0414\u0430\u043b\u0435\u0435, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0437\u0435\u043b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432: <\/p>\n<ol>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 <strong>\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/strong>, \u0430 \u0434\u0430\u043b\u0435\u0435 \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u044f\u0437\u044b\u043a\u0430 Go \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 <code>>= 1.16<\/code> \u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>cmd\/hidden_lake\/service<\/code>. \u041f\u043e\u0441\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>make<\/code>. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>make<\/code> \u043d\u0435\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e: <code>go build .\/cmd\/hls<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 <strong>\u0434\u043e\u043a\u0435\u0440\u0435<\/strong>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043c\u0435\u0442\u044c \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 docker. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>cmd\/hidden_lake\/service<\/code> \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <code>make docker-default<\/code>. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <code>Dockerfile<\/code> \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>docker build<\/code> \u0438 <code>docker run<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0437 \u0443\u0436\u0435 <strong>\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439<\/strong> \u0432\u0435\u0440\u0441\u0438\u0438 \u0441 <a href=\"https:\/\/github.com\/number571\/go-peer\/releases\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043b\u0438\u0437\u0430<\/a>. \u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 Linux \u0431\u044b\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b sh \u0441\u043a\u0440\u0438\u043f\u0442\u044b &#8212; <code>install_hls.sh<\/code>, <code>restart_hls.sh<\/code>, <code>status_hls.sh<\/code>, <code>stop_hls.sh<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>cmd\/hidden_lake\/service\/_daemon<\/code>. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0434\u0435\u0441\u044c \u0441\u043a\u0440\u0438\u043f\u0442 &#8212; \u044d\u0442\u043e <code>install_hls.sh<\/code>, \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0435\u043b\u0438\u0437 \u0438 \u0437\u0430\u043d\u043e\u0441\u0438\u0442 \u0435\u0433\u043e \u0432 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a.<\/p>\n<\/li>\n<\/ol>\n<details class=\"spoiler\">\n<summary>Dockerfile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"dart\">FROM ubuntu:20.04  RUN apt-get update &amp;&amp; apt-get install -y wget gcc RUN wget https:\/\/dl.google.com\/go\/go1.16.linux-amd64.tar.gz &amp;&amp; \\      tar -C \/opt -xzf go1.16.linux-amd64.tar.gz  WORKDIR \/go-peer ENV PATH=\"${PATH}:\/opt\/go\/bin\" COPY .\/ .\/ RUN go build -o hls .\/cmd\/hidden_lake\/service\/cmd\/hls  ENV SERVICE_PATH=\"\/mounted\" ENV SERVICE_KEY=\"\" CMD .\/hls -path=\"${SERVICE_PATH}\" -key=\"${SERVICE_KEY}\" <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0443\u0437\u0435\u043b, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0443\u0437\u0435\u043b \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u041e\u043d \u0443\u0436\u0435 \u043d\u0430\u0447\u0430\u043b \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0443\u0441\u043e\u0440\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a <strong>type=BRDCS<\/strong> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 <strong>8KiB<\/strong> \u043a\u0430\u0436\u0434\u044b\u0435 <strong>5 \u0441\u0435\u043a\u0443\u043d\u0434<\/strong>, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043e\u043d \u043d\u0438 \u043a \u043a\u043e\u043c\u0443 \u0435\u0449\u0451 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0435\u0442\u044c\u044e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0435\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0443\u0437\u0435\u043b<\/h2>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0443\u0437\u043b\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b HLS) \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b &#8212; <code>hls.cfg<\/code> \u0438 \u043e\u0434\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f &#8212; <code>hls.db<\/code>. \u0424\u0430\u0439\u043b <code>hls.cfg<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0437\u043b\u0430 \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c. \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f <code>hls.db<\/code> \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0443 \u0443\u0437\u043a\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0440\u043e\u043b\u044c &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0445\u0435\u0448\u0438 \u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445 \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0421\u043e\u0437\u0434\u0430\u043d\u043e \u044d\u0442\u043e \u0441 \u0446\u0435\u043b\u044c\u044e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u0430\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b <code>hls.cfg<\/code> \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<pre><code class=\"json\">{ \"settings\": { \"message_size_bytes\": 8192, \"work_size_bits\": 20, \"queue_period_ms\": 5000, \"key_size_bits\": 4096, \"limit_void_size_bytes\": 4096 }, \"logging\": [ \"info\", \"warn\", \"erro\" ],<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-356690","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/356690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=356690"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/356690\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=356690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=356690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=356690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}