Обновлено: Как взаимодействовать «напрямую» со смарт-контрактом через микроконтроллер?

Предположим, у нас есть micro-controllerи он собирает метаданные (например, полезную нагрузку в виде строки). Как это micro-controllerможет взаимодействовать «напрямую» со смарт-контрактом для записи этих данных в блокчейн?

Должны ли мы использовать что-то вроде Oraclize ? Так как смарт-контракт не может напрямую взаимодействовать с внешним источником.

А также, нужно ли нам «обязательно» устанавливать на это клиент Geth или Paritymicro-controller ?

Есть ли практический/существующий пример для такого сценария?

С моей точки зрения, это micro-controllerможет собирать данные, а затем, вызывая функцию в смарт-контракте (напр. writePayload()), записывать данные в блокчейн «без» использования оракула, такого как Oraclize .

Примечание. Согласно комментариям к этому вопросу: можно ли вызвать функцию смарт-контракта «без» установки «Geth» или «Parity»? , не проще ли использовать infuraкак существующую ноду вместо установки Gethили Parity?

Ответы (1)

Как вы сказали, вы не можете получить доступ к смарт-контрактам «напрямую». Что-то вроде Oraclize вам в этом тоже не сильно поможет.

Вам всегда будет нужен промежуточный узел, который подключен к блокчейну Ethereum и предоставит вам доступ к блокчейну.

Вам не обязательно нужны Geth или Parity, они используются для создания и обслуживания узла. По крайней мере, они вам не нужны на контроллерах. Поскольку вашим микроконтроллерам, вероятно, не хватает возможностей, я предлагаю вам использовать централизованный узел (или несколько), с которым взаимодействуют все ваши контроллеры.

Спасибо. Однако в этом примере ( ссылка ) устройство основано на узле ESP8266, который подключается к маршрутизатору, на котором запущен экземпляр Gethузла Ethereum. Он использует блокчейн Ethereum для управления светодиодом, подключенным к ESP8266смарт-контракту. Это означает, что, по-видимому, можно было бы использовать a micro-controllerв качестве узла Ethereum , установив Geth или Parity на micro-controller, тогда у нас есть узел, способный напрямую взаимодействовать с блокчейном Ethereum. Что вы думаете?
Или этот пример ( Elkrem ), где они используют Nano Pi в качестве платы Linux для запуска легкого узла Ethereum, он подключен к 32-битному микроконтроллеру, который программируется пользователем.
Конечно, вы можете установить туда Geth или Parity для прямого подключения, если у контроллера есть необходимые ресурсы. Но для меня «микроконтроллер» просто звучит как что-то, что не имеет необходимых ресурсов.
Итак, условием является возможность микроконтроллера установить Geth или Parity.
В примере с Elkrem их плата имеет 2 разных процессора: один с частотой 1 ГГц, работающий под управлением Linux + клиент Geth light + Swarm + Whisper, а другой — контроллер с частотой 120 МГц, который программируется пользователем.
Согласно комментариям к этому вопросу: ethereum.stackexchange.com/q/57836/23024 , не проще ли использовать infuraсуществующий узел вместо установки Gethили Parity?
Конечно, Infura проще использовать — это один из вариантов немного более централизованной версии.