{"id":333399,"date":"2022-05-20T09:00:35","date_gmt":"2022-05-20T09:00:35","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=333399"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=333399","title":{"rendered":"<span>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430\u043c\u0438 Ethereum \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ESP8266<\/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\/w780q1\/getpro\/habr\/upload_files\/b1f\/5c3\/36c\/b1f5c336cb29e622bb4a37f513baf967.jpg\" width=\"1907\" height=\"937\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b1f\/5c3\/36c\/b1f5c336cb29e622bb4a37f513baf967.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u041e \u0447\u0435\u043c \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f?<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 ESP8266 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 Ethereum \u0441\u0435\u0442\u0438 \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442.<\/p>\n<h2>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e Ethereum \u0441\u0435\u0442\u0435\u0439. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u0438\u0445 \u0441\u0430\u0439\u0442\u0435 <a href=\"https:\/\/ethereum.org\/en\/developers\/docs\/\" rel=\"noopener noreferrer nofollow\">https:\/\/ethereum.org\/en\/developers\/docs\/<\/a><\/p>\n<h2>\u041d\u0430\u0447\u043d\u0435\u043c!<\/h2>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/223\/7ba\/852\/2237ba852d3aacd6a5e2451da2e65415.png\" width=\"500\" height=\"393\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/223\/7ba\/852\/2237ba852d3aacd6a5e2451da2e65415.png\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u044c Ethereum<\/h2>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e Ethereum \u0441\u0435\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0443\u0442\u0435\u0439, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c:<\/p>\n<p>1) \u0421\u043a\u0430\u0447\u0430\u0435\u043c Ganache. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0438\u0445 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/trufflesuite.com\/ganache\/\" rel=\"noopener noreferrer nofollow\">Ganache &#8212; Truffle Suite<\/a>  <\/p>\n<p>2) \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/a22\/824\/c79\/a22824c798d7e4cfe046953019a98f60.jpg\" alt=\"\" title=\"\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a22\/824\/c79\/a22824c798d7e4cfe046953019a98f60.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>3) \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 NEW WORKSPACE<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/106\/425\/bf7\/106425bf7404125ef97b1ad662e7d433.jpg\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/106\/425\/bf7\/106425bf7404125ef97b1ad662e7d433.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u0435 SERVER \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c AUTOMINE.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f1c\/e05\/558\/f1ce0555826deb150c4db94f64260fd4.jpg\" alt=\"\" title=\"\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1c\/e05\/558\/f1ce0555826deb150c4db94f64260fd4.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 Save Workspace. \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u043e\u043c 100ETH \u0432 \u043a\u0430\u0436\u0434\u043e\u043c! \u041d\u0415 \u0441\u043f\u0435\u0448\u0438\u043c \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f!) \u042d\u0442\u0438 \u0442\u043e\u043a\u0435\u043d\u044b \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0442\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0435\u0442\u0438 MAINNET. \u0418\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438(<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ed0\/262\/148\/ed0262148cc80bfca1aa294e9d617914.png\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ed0\/262\/148\/ed0262148cc80bfca1aa294e9d617914.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0430\u0442\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0430!<\/p>\n<h2>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u043a MetaMask<\/h2>\n<p>1) \u0421\u043a\u0430\u0447\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 MetaMask \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 <a href=\"https:\/\/metamask.io\/download\/\" rel=\"noopener noreferrer nofollow\">Download MetaMask | Blockchain wallet app and browser extension<\/a>.<\/p>\n<p>2) \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0435\u043a, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>3) \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c\u0441\u044f \u0438 \u0437\u0430\u0439\u0434\u0435\u043c \u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u0435\u0442\u044c Ganache, \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u0432\u0438\u0434\u0435\u043e \u041e\u0431\u044f\u0437f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u0435\u0442\u044c Ganache \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438: <a href=\"https:\/\/youtu.be\/nUEBAS5r4Og\" rel=\"noopener noreferrer nofollow\">https:\/\/youtu.be\/nUEBAS5r4Og<\/a>.<\/p>\n<p>4) \u041d\u0430\u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u0440\u0443\u0436\u043e\u043a \u0441\u0432\u0435\u0440\u0445\u0443, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430 &#171;\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0447\u0435\u0442&#187;<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/5f7\/2bd\/f20\/5f72bdf2054588208bf6832f9dabf3d0.jpg\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5f7\/2bd\/f20\/5f72bdf2054588208bf6832f9dabf3d0.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>5)\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 Ganache \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/178\/2fe\/dcf\/1782fedcf2239e0dd5219287520925f9.jpg\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/178\/2fe\/dcf\/1782fedcf2239e0dd5219287520925f9.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/6f9\/7de\/691\/6f97de6917bb94ece9e2a0c48fb07c10.jpg\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f9\/7de\/691\/6f97de6917bb94ece9e2a0c48fb07c10.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>6) \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438 \u0441\u043d\u043e\u0432\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 MetsMask, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043a\u043b\u044e\u0447 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/492\/e63\/bff\/492e63bff98b8983b7808ac89e44e9bb.jpg\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/492\/e63\/bff\/492e63bff98b8983b7808ac89e44e9bb.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043c\u0430\u0440\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043c \u0435\u0433\u043e \u0432 \u0441\u0435\u0442\u044c<\/h2>\n<p>\u041f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/remix.ethereum.org\/\" rel=\"noopener noreferrer nofollow\">https:\/\/remix.ethereum.org\/<\/a><\/p>\n<p>1) \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c &#171;.sol&#187;.<\/p>\n<p>\u042f\u0437\u044b\u043a Solidity \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f EVM \u0432 \u0441\u0435\u0442\u0438 Ethereum. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/www.dappuniversity.com\/articles\/solidity-tutorial\" rel=\"noopener noreferrer nofollow\">https:\/\/www.dappuniversity.com\/articles\/solidity-tutorial<\/a><\/p>\n<p>2) \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a \u043d\u0435\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u043b\u0438\u0441\u044c.<\/p>\n<pre><code>pragma solidity ^0.8.13;  contract MyContract{     uint256 public amoutOfCall = 0; \/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u043b-\u0432\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u0432     function call() public{         amoutOfCall = amoutOfCall + 1; \/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435     } }<\/code><\/pre>\n<p>3)\u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 Remix ide \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/4bc\/d16\/370\/4bcd16370a3fde44bc5fdc9ba939f818.jpg\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4bc\/d16\/370\/4bcd16370a3fde44bc5fdc9ba939f818.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>4) \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 DEPLOY &amp; RUN TRANSACTIONS. \u0412 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u043c \u043c\u0435\u043d\u044e ENVIRONMENT  \u0432\u044b\u0431\u0435\u0440\u0435\u043c Injected web3. \u0412 \u044f\u0447\u0435\u0439\u043a\u0435 ACCOUNT \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f \u0430\u0434\u0440\u0435\u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0438\u0437 Ganache. <\/p>\n<p>5) \u0414\u0430\u043b\u0435\u0435 \u0434\u0435\u043f\u043b\u043e\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/369\/d96\/006\/369d9600694e96e79c4b36d3bce5f763.jpg\" width=\"1907\" height=\"1036\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/369\/d96\/006\/369d9600694e96e79c4b36d3bce5f763.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>6) \u041d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d!!!!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/461\/69f\/117\/46169f117886b9ada52240cfdae12595.jpg\" width=\"1907\" height=\"937\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/461\/69f\/117\/46169f117886b9ada52240cfdae12595.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>7) \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c, \u043d\u0430\u0436\u0438\u043c\u0430\u044f \u043d\u0430 \u043a\u043e\u043d\u043a\u0443 call &#8212; \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u041a\u043d\u043e\u043f\u043a\u0430 amountOfCall &#8212; \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 Python<\/h2>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 WEB3 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0441\u0435\u0442\u0438.<\/p>\n<p>1) \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Flask &#8212;  <a href=\"https:\/\/pythonru.com\/uroki\/2-ustanovka-flask?ysclid=l33e0kxlmo\" rel=\"noopener noreferrer nofollow\">#2 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Flask ~ \u0423\u0440\u043e\u043a\u0438 \u043f\u043e Flask ~ PythonRu<\/a>  , Web3 &#8212; <a href=\"https:\/\/www.dappuniversity.com\/articles\/web3-py-intro\" rel=\"noopener noreferrer nofollow\">Intro to Web3.py \u00b7 Ethereum For Python Developers | Dapp University<\/a> . \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435 &#8212; \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043b\u0435\u0442\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u043f\u0438\u0448\u0435\u0442 \u0432\u0430\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0439\u0442\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>2)\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b main.p\u0443 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u0434.<\/p>\n<pre><code>import json from web3 import Web3 from flask import Flask app = Flask(__name__) @app.route(\"\/call\") def hello():     infura_url = \"http:\/\/127.0.0.1:7545\" #\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0430\u0448\u0443 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u044c     web3 = Web3(Web3.HTTPProvider(infura_url))     web3.eth.defaultAccount = web3.eth.accounts[0]       abi = json.loads('[{\"inputs\":[],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"amoutOfCall\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\": \"uint256\"}],\"stateMutability\": \"view\",\"type\": \"function\"}]')     address = '0xdD5E2f4244d3E6848E1C3605B693fb0F9E8E1546' #\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430      contract = web3.eth.contract(address=address, abi=abi) #\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430      return contract.functions.call().transact() #\u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0443 if __name__ == \"__main__\":     app.run(host = \"0.0.0.0\")      <\/code><\/pre>\n<p>\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415!!! \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e abi \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f! <\/p>\n<p>\u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e abi &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c abi \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Remix<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/751\/dfc\/4c8\/751dfc4c82a12afb6a023569d5cf14b7.jpg\" width=\"1907\" height=\"937\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/751\/dfc\/4c8\/751dfc4c82a12afb6a023569d5cf14b7.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430!!! \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 address, \u0430\u0434\u0440\u0435\u0441 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 Remix.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/4df\/27c\/691\/4df27c6915f96dec1a7c578cd1123e3b.jpg\" width=\"1907\" height=\"937\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4df\/27c\/691\/4df27c6915f96dec1a7c578cd1123e3b.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>3) \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430\/ + call<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/639\/251\/836\/639251836a4a41daa6a3cdcc1b4f652e.jpg\" alt=\"\" title=\"\" width=\"1907\" height=\"937\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/639\/251\/836\/639251836a4a41daa6a3cdcc1b4f652e.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 &#8212; <a href=\"http:\/\/192.168.3.3:5000\/call\" rel=\"noopener noreferrer nofollow\">192.168.3.3:5000\/call<\/a>  <\/p>\n<p>4) \u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435, \u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u0432 Remix \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0431\u044b\u043b \u0432\u044b\u0437\u0432\u0430\u043d.<\/p>\n<h2>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 &#8212; \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043b\u0430\u0442\u044b<\/h2>\n<p>\u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u0443 Wemos ESP8266<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/afe\/da3\/4d1\/afeda34d1da8b692d7a79b85f529caba.jpg\" width=\"400\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/afe\/da3\/4d1\/afeda34d1da8b692d7a79b85f529caba.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>1) \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0435\u0435 \u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044e.<\/p>\n<p>2) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Arduino IDE.<\/p>\n<p>3) \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0430\u0448\u0443 \u043f\u043b\u0430\u0442\u0443 \u043a \u0441\u0440\u0435\u0434\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043a\u0430\u043a \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <a href=\"https:\/\/kit.alexgyver.ru\/tutorials\/esp8266\/\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043b\u044f Wemos (esp8266) (alexgyver.ru)<\/a> .<\/p>\n<h2>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430<\/h2>\n<pre><code>#include &lt;ESP8266WiFi.h> #include &lt;ESP8266HTTPClient.h>  #define SERVER_IP \"http:\/\/192.168.3.3\/\"  #ifndef STASSID #define STASSID \"\u0418\u041c\u042f \u0412\u0410\u0428\u0415\u0419 WIFI \u0441\u0435\u0442\u0438\" #define STAPSK  \"\u041f\u0410\u0420\u041e\u041b\u042c \u0412\u0410\u0428\u0415\u0419 \u0421\u0415\u0422\u0418\" #endif  void setup() {    Serial.begin(115200);    Serial.println();   Serial.println();   Serial.println();    WiFi.begin(STASSID, STAPSK);    while (WiFi.status() != WL_CONNECTED) {     delay(500);     Serial.print(\".\");   }   Serial.println(\"\");   Serial.print(\"Connected! IP address: \");   Serial.println(WiFi.localIP());  }  void loop() {   \/\/ wait for WiFi connection   if ((WiFi.status() == WL_CONNECTED)) {      WiFiClient client;     HTTPClient http;      Serial.print(\"[HTTP] begin...\\n\");     \/\/ configure traged server and url     http.begin(client, \"http:\/\/192.168.3.3:5000\/call\"); \/\/HTTP     http.addHeader(\"Content-Type\", \"application\/json\");      Serial.print(\"[HTTP] POST...\\n\");     \/\/ start connection and send HTTP header and body     int httpCode = http.POST(\"{\\\"hello\\\":\\\"world\\\"}\");      \/\/ httpCode will be negative on error     if (httpCode > 0) {       \/\/ HTTP header has been send and Server response header has been handled       Serial.printf(\"[HTTP] POST... code: %d\\n\", httpCode);        \/\/ file found at server       if (httpCode == HTTP_CODE_OK) {         const String&amp; payload = http.getString();         Serial.println(\"received payload:\\n&lt;&lt;\");         Serial.println(payload);         Serial.println(\">>\");       }     } else {       Serial.printf(\"[HTTP] POST... failed, error: %s\\n\", http.errorToString(httpCode).c_str());     }      http.end();   }    delay(10000); }<\/code><\/pre>\n<p>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u043e\u0434, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: \u0418\u043c\u044f, \u043f\u0430\u0440\u043e\u043b\u044c \u0441\u0435\u0442\u0438, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<h2>\u0421\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/h2>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 Wemos esp256 \u043a wifi \u0441\u0435\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0434\u0430\u043b\u0435\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c http \u043a\u043b\u0438\u0435\u043d\u0442, \u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043b\u0430\u0442\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0441\u0435\u0442\u0438 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442.<\/p>\n<h2>\u0421\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e:<\/h2>\n<p>1) \u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u044c Ethereum.<\/p>\n<p>2) \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438.<\/p>\n<p>3) \u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440, \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043a \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 web3.<\/p>\n<p>4) \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 WEMOS \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443.<\/p>\n<h2>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438<\/h2>\n<p>\u0412\u043e\u0442 \u043c\u043e\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b, \u043f\u0438\u0448\u0438\u0442\u0435, \u0435\u0441\u043b\u0438 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u044b<\/p>\n<p>Telegram &#8212; <a href=\"https:\/\/t.me\/gerard_inc\" rel=\"noopener noreferrer nofollow\">https:\/\/t.me\/gerard_inc<\/a><\/p>\n<p>VK &#8212; <a href=\"https:\/\/vk.com\/gerard04ka\" rel=\"noopener noreferrer nofollow\">\u0413\u0435\u0440\u0430\u0440\u0434 \u0418\u0441\u043c\u0430\u0433\u0438\u043b\u043e\u0432 (vk.com)<\/a>  <\/p>\n<p>Mail &#8212; gerard.ismagilov@mail.ru<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/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\/post\/666798\/\"> https:\/\/habr.com\/ru\/post\/666798\/<\/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\"><figcaption><\/figcaption><\/figure>\n<h2>\u041e \u0447\u0435\u043c \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f?<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 ESP8266 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 Ethereum \u0441\u0435\u0442\u0438 \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442.<\/p>\n<h2>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e Ethereum \u0441\u0435\u0442\u0435\u0439. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u0438\u0445 \u0441\u0430\u0439\u0442\u0435 <a href=\"https:\/\/ethereum.org\/en\/developers\/docs\/\" rel=\"noopener noreferrer nofollow\">https:\/\/ethereum.org\/en\/developers\/docs\/<\/a><\/p>\n<h2>\u041d\u0430\u0447\u043d\u0435\u043c!<\/h2>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u044c Ethereum<\/h2>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e Ethereum \u0441\u0435\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0443\u0442\u0435\u0439, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c:<\/p>\n<p>1) \u0421\u043a\u0430\u0447\u0430\u0435\u043c Ganache. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0438\u0445 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/trufflesuite.com\/ganache\/\" rel=\"noopener noreferrer nofollow\">Ganache &#8212; Truffle Suite<\/a>  <\/p>\n<p>2) \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>3) \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 NEW WORKSPACE<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u0435 SERVER \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c AUTOMINE.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043d\u0430 Save Workspace. \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u043e\u043c 100ETH \u0432 \u043a\u0430\u0436\u0434\u043e\u043c! \u041d\u0415 \u0441\u043f\u0435\u0448\u0438\u043c \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f!) \u042d\u0442\u0438 \u0442\u043e\u043a\u0435\u043d\u044b \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0442\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0435\u0442\u0438 MAINNET. \u0418\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438(<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0430\u0442\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0430!<\/p>\n<h2>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u043a MetaMask<\/h2>\n<p>1) \u0421\u043a\u0430\u0447\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 MetaMask \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 <a href=\"https:\/\/metamask.io\/download\/\" rel=\"noopener noreferrer nofollow\">Download MetaMask | Blockchain wallet app and browser extension<\/a>.<\/p>\n<p>2) \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0448\u0435\u043b\u0435\u043a, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>3) \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c\u0441\u044f \u0438 \u0437\u0430\u0439\u0434\u0435\u043c \u0430 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u0435\u0442\u044c Ganache, \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u0432\u0438\u0434\u0435\u043e \u041e\u0431\u044f\u0437f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u0435\u0442\u044c Ganache \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438: <a href=\"https:\/\/youtu.be\/nUEBAS5r4Og\" rel=\"noopener noreferrer nofollow\">https:\/\/youtu.be\/nUEBAS5r4Og<\/a>.<\/p>\n<p>4) \u041d\u0430\u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u0440\u0443\u0436\u043e\u043a \u0441\u0432\u0435\u0440\u0445\u0443, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430 &#171;\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0447\u0435\u0442&#187;<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>5)\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 Ganache \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>6) \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438 \u0441\u043d\u043e\u0432\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 MetsMask, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u043a\u043b\u044e\u0447 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043c\u0430\u0440\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043c \u0435\u0433\u043e \u0432 \u0441\u0435\u0442\u044c<\/h2>\n<p>\u041f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/remix.ethereum.org\/\" rel=\"noopener noreferrer nofollow\">https:\/\/remix.ethereum.org\/<\/a><\/p>\n<p>1) \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c &#171;.sol&#187;.<\/p>\n<p>\u042f\u0437\u044b\u043a Solidity \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f EVM \u0432 \u0441\u0435\u0442\u0438 Ethereum. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 <a href=\"https:\/\/www.dappuniversity.com\/articles\/solidity-tutorial\" rel=\"noopener noreferrer nofollow\">https:\/\/www.dappuniversity.com\/articles\/solidity-tutorial<\/a><\/p>\n<p>2) \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a \u043d\u0435\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u043b\u0438\u0441\u044c.<\/p>\n<pre><code>pragma solidity ^0.8.13;  contract MyContract{     uint256 public amoutOfCall = 0; \/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u043b-\u0432\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u0432     function call() public{         amoutOfCall = amoutOfCall + 1; \/\/\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435     } }<\/code><\/pre>\n<p>3)\u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 Remix ide \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>4) \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 DEPLOY &amp; RUN TRANSACTIONS. \u0412 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u043c \u043c\u0435\u043d\u044e ENVIRONMENT  \u0432\u044b\u0431\u0435\u0440\u0435\u043c Injected web3. \u0412 \u044f\u0447\u0435\u0439\u043a\u0435 ACCOUNT \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f \u0430\u0434\u0440\u0435\u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0438\u0437 Ganache. <\/p>\n<p>5) \u0414\u0430\u043b\u0435\u0435 \u0434\u0435\u043f\u043b\u043e\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>6) \u041d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d!!!!<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>7) \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c, \u043d\u0430\u0436\u0438\u043c\u0430\u044f \u043d\u0430 \u043a\u043e\u043d\u043a\u0443 call &#8212; \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442. \u041a\u043d\u043e\u043f\u043a\u0430 amountOfCall &#8212; \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430.<\/p>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 Python<\/h2>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 WEB3 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0441\u0435\u0442\u0438.<\/p>\n<p>1) \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Flask &#8212;  <a href=\"https:\/\/pythonru.com\/uroki\/2-ustanovka-flask?ysclid=l33e0kxlmo\" rel=\"noopener noreferrer nofollow\">#2 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Flask ~ \u0423\u0440\u043e\u043a\u0438 \u043f\u043e Flask ~ PythonRu<\/a>  , Web3 &#8212; <a href=\"https:\/\/www.dappuniversity.com\/articles\/web3-py-intro\" rel=\"noopener noreferrer nofollow\">Intro to Web3.py \u00b7 Ethereum For Python Developers | Dapp University<\/a> . \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435 &#8212; \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043b\u0435\u0442\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u043f\u0438\u0448\u0435\u0442 \u0432\u0430\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0439\u0442\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>2)\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b main.p\u0443 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u0434.<\/p>\n<pre><code>import json from web3 import Web3 from flask import Flask app = Flask(__name__) @app.route(\"\/call\") def hello():     infura_url = \"http:\/\/127.0.0.1:7545\" #\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0430\u0448\u0443 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u044c     web3 = Web3(Web3.HTTPProvider(infura_url))     web3.eth.defaultAccount = web3.eth.accounts[0]       abi = json.loads('[{\"inputs\":[],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"amoutOfCall\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\": \"uint256\"}],\"stateMutability\": \"view\",\"type\": \"function\"}]')     address = '0xdD5E2f4244d3E6848E1C3605B693fb0F9E8E1546' #\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430      contract = web3.eth.contract(address=address, abi=abi) #\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430      return contract.functions.call().transact() #\u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0443 if __name__ == \"__main__\":     app.run(host = \"0.0.0.0\")      <\/code><\/pre>\n<p>\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415!!! \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e abi \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f! <\/p>\n<p>\u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e abi &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c abi \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Remix<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430!!! \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 address, \u0430\u0434\u0440\u0435\u0441 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 Remix.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>3) \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430\/ + call<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 &#8212; <a href=\"http:\/\/192.168.3.3:5000\/call\" rel=\"noopener noreferrer nofollow\">192.168.3.3:5000\/call<\/a>  <\/p>\n<p>4) \u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435, \u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043c\u0430\u0440\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442, \u0432 Remix \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0431\u044b\u043b \u0432\u044b\u0437\u0432\u0430\u043d.<\/p>\n<h2>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 &#8212; \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043b\u0430\u0442\u044b<\/h2>\n<p>\u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u0443 Wemos ESP8266<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>1) \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0435\u0435 \u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044e.<\/p>\n<p>2) \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Arduino IDE.<\/p>\n<p>3) \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0430\u0448\u0443 \u043f\u043b\u0430\u0442\u0443 \u043a \u0441\u0440\u0435\u0434\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043a\u0430\u043a \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <a href=\"https:\/\/kit.alexgyver.ru\/tutorials\/esp8266\/\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043b\u044f Wemos (esp8266) (alexgyver.ru)<\/a> .<\/p>\n<h2>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430<\/h2>\n<pre><code>#include &lt;ESP8266WiFi.h> #include &lt;ESP8266HTTPClient.h>  #define SERVER_IP \"http:\/\/192.168.3.3\/\"  #ifndef STASSID #define STASSID \"\u0418\u041c\u042f \u0412\u0410\u0428\u0415\u0419 WIFI \u0441\u0435\u0442\u0438\" #define STAPSK  \"\u041f\u0410\u0420\u041e\u041b\u042c \u0412\u0410\u0428\u0415\u0419 \u0421\u0415\u0422\u0418\" #endif  void setup() {    Serial.begin(115200);    Serial.println();   Serial.println();   Serial.println();    WiFi.begin(STASSID, STAPSK);    while (WiFi.status() != WL_CONNECTED) {     delay(500);     Serial.print(\".\");   }   Serial.println(\"\");   Serial.print(\"Connected! IP address: \");   Serial.println(WiFi.localIP());  }  void loop() {   \/\/ wait for WiFi connection   if ((WiFi.status() == WL_CONNECTED)) {      WiFiClient client;     HTTPClient http;      Serial.print(\"[HTTP] begin...\\n\");     \/\/ configure traged server and url     http.begin(client, \"http:\/\/192.168.3.3:5000\/call\"); \/\/HTTP     http.addHeader(\"Content-Type\", \"application\/json\");      Serial.print(\"[HTTP] POST...\\n\");     \/\/ start connection and send HTTP header and body     int httpCode = http.POST(\"{\\\"hello\\\":\\\"world\\\"}\");      \/\/ httpCode will be negative on error     if (httpCode > 0) {       \/\/ HTTP header has been send and Server response header has been handled       Serial.printf(\"[HTTP] POST... code: %d\\n\", httpCode);        \/\/ file found at server       if (httpCode == HTTP_CODE_OK) {         const String&amp; payload = http.getString();         Serial.println(\"received payload:\\n&lt;&lt;\");         Serial.println(payload);         Serial.println(\">>\");       }     } else {       Serial.printf(\"[HTTP] POST... failed, error: %s\\n\", http.errorToString(httpCode).c_str());     }      http.end();   }    delay(10000); }<\/code><\/pre>\n<p>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u043e\u0434, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: \u0418\u043c\u044f, \u043f\u0430\u0440\u043e\u043b\u044c \u0441\u0435\u0442\u0438, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<h2>\u0421\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/h2>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 Wemos esp256 \u043a wifi \u0441\u0435\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0434\u0430\u043b\u0435\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c http \u043a\u043b\u0438\u0435\u043d\u0442, \u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043b\u0430\u0442\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u0441\u0435\u0442\u0438 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442.<\/p>\n<h2>\u0421\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e:<\/h2>\n<p>1) \u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u044c Ethereum.<\/p>\n<p>2) \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438.<\/p>\n<p>3) \u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440, \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043a \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 web3.<\/p>\n<p>4) \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 WEMOS \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443.<\/p>\n<h2>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438<\/h2>\n<p>\u0412\u043e\u0442 \u043c\u043e\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b, \u043f\u0438\u0448\u0438\u0442\u0435, \u0435\u0441\u043b\u0438 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u044b<\/p>\n<p>Telegram &#8212; <a href=\"https:\/\/t.me\/gerard_inc\" rel=\"noopener noreferrer nofollow\">https:\/\/t.me\/gerard_inc<\/a><\/p>\n<p>VK &#8212; <a href=\"https:\/\/vk.com\/gerard04ka\" rel=\"noopener noreferrer nofollow\">\u0413\u0435\u0440\u0430\u0440\u0434 \u0418\u0441\u043c\u0430\u0433\u0438\u043b\u043e\u0432 (vk.com)<\/a>  <\/p>\n<p>Mail &#8212; gerard.ismagilov@mail.ru<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/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\/post\/666798\/\"> https:\/\/habr.com\/ru\/post\/666798\/<\/a><br \/><\/br><\/br><\/p>\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-333399","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/333399","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=333399"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/333399\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=333399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=333399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=333399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}