В этой статье я расскажу как с помощью микроконтроллера ESP8266 подключиться к приватной Ethereum сети и вызвать смарт-контракт. Вы должны понимать устройство Ethereum сетей. Ознакомиться с технологией можно на их сайте https://ethereum.org/en/developers/docs/ Для начала создадим приватную Ethereum сеть. Для этого есть множество путей, воспользуемся самым простым методом: 1) Скачаем Ganache. Это можно сделать с их официального сайта Ganache - Truffle Suite   2) После установки запускаем приложение.  3) Переходим в NEW WORKSPACE Переходим в отделение SERVER и отключаем AUTOMINE. Далее нажимаем на Save Workspace. После сохранения мы увидим уже созданные аккаунты с балансом 100ETH в каждом! НЕ спешим радоваться!) Эти токены не относятся к тем, которыми рассчитываются в сети MAINNET. Ими можно пользоваться только в нашей локальной сети( Приватная сеть создана! 1) Скачаем расширение MetaMask для браузера Download MetaMask | Blockchain wallet app and browser extension. 2) Создадим собственный кошелек, установим пароль. 3) Авторизуемся и зайдем а аккаунт, подключим сеть Ganache, как в этом видео Обязfтельно подключите сеть Ganache как в этой инструкции: https://youtu.be/nUEBAS5r4Og. 4) Нажмем на кружок сверху, а потом на "Импортировать счет" 5)Перейдем в Ganache и скопируем закрытый ключ аккаунта 6) копируем и снова переходим в MetsMask, вставляем наш ключ и импортируем аккаунт. Писать контракт и развертывать его будем в с помощью https://remix.ethereum.org/ 1) Создадим файл с расширением ".sol". Язык Solidity помогает нам создавать программы для управления EVM в сети Ethereum. Документацию можно найти на https://www.dappuniversity.com/articles/solidity-tutorial 2) Давайте создадим простой контракт который будет считать сколько раз к нему обращались. 3)Скопируем данный код в Remix ide и скомпилируем. 4) Перейдем в DEPLOY & RUN TRANSACTIONS. В выпадающем меню ENVIRONMENT  выберем Injected web3. В ячейке ACCOUNT должен подтянуться адрес аккаунта, который мы импортировали из Ganache.  5) Далее деплоем контракт и нажимаем подтвердить. 6) Наш контракт создан!!!! 7) Можно поиграться с ним, нажимая на конку call - мы будем вызывать контракт. Кнопка amountOfCall - будет выводить количество вызовов контракта. Сервер нам нужен, чтобы с помощью Python и библиотеки WEB3 обращаться к блокчейн сети. 1) установим библиотеки Flask -  #2 Установка Flask ~ Уроки по Flask ~ PythonRu  , Web3 - Intro to Web3.py · Ethereum For Python Developers | Dapp University . Внимание - при установке могут вылетать ошибки, внимательно читайте, что пишет вам командная строка и выполняйте требования. 2)Создадим файл main.pу и скопируем код. ВНИМАНИЕ!!! В переменную abi подставим свои значения!  В переменную abi - сохраняем abi нашего контракта, его можно скопировать в Remix Также у вас будет другой крипто адрес контракта!!! поэтому замените значение переменной address, адрес также можно узнать в Remix. 3) Запускаем программу и переходим по ссылке адреса локального сервера/ + call У меня ссылка выглядит - 192.168.3.3:5000/call   4) Теперь, если мы будем обращаться к этой ссылке, то сервер будет вызывать смарт контракт, в Remix мы сможем увидеть сколько раз контракт был вызван. Я буду использовать плату Wemos ESP8266 1) Подключаем ее к питанию. 2) Устанавливаем Arduino IDE. 3) Подключаем нашу плату к среде разработки, как в инструкции Настройка для Wemos (esp8266) (alexgyver.ru) . Внимательно посмотрите код, в некоторых местах нужно поставить свои значения: Имя, пароль сети, ссылка на сервер. Программа подключает Wemos esp256 к wifi сети сервера, далее мы используем http клиент, мы с помощью платы обращаемся по ссылке к серверу, а сервер обращается к блокчейн сети и вызывает контракт. 1) Создали приватную сеть Ethereum. 2) Развернули контракт в нашей сети. 3) Создали сервер, обращающийся к блокчейну с помощи библиотеки web3. 4) Подключили WEMOS к серверу. Я использую платы Wemos в роботах, для того, чтобы электронные устройства могли финансово взаимодействовать между собой, можно либо просто переводить валюты с кошелька одного устройства на другой, либо вызывать смарт контракт, который будет списывать валюту, при определенных условиях, что замечает робот. Я создаю умные счетчики электроэнергии, которые позволяют списывать GeraCoin, с кошелька устройства, при подключение робота к сети.  Вот мои контакты, пишите, если появятся вопросы Telegram - https://t.me/gerard_inc VK - Герард Исмагилов (vk.com)   Mail - gerard.ismagilov@mail.ru