Как стать автором
Обновить

Комментарии 14

Для действительно комфортной работы с эфиром удобнее запилить свой менеджер. На сервере поднимаем ноду эфира(в моём случае это PoA) и сам менеджер, у меня это NodeJS + Angular. Что он умеет через веб:
— вкл/выкл, конфиг ноды
— настройка генезиса
— создание кошельков (с разными ролями: подписчик, обычный юзер), экспорт/импорт файлов ключей
— компиляция и аплоад контрактов (со связанными имопртами) без ремиксов и прочего
— связка методов смарт-контракта с методами АПИ самого NodeJS — для того чтобы сторонние сервисы могли через менеджер дёргать методы в смарт-контрактах не имея дел с нодой эфира, это очень удобно! То есть сторонний сервер может вызвать метод в мендежере callSmartContractMethod и менеджер сам определит в каком контракте и какой метод вызвать в эфире.
— тестить методы смарт-контрактов, видеть ответы
— видеть лог ноды эфира
+ у вас нода, судя по коду, всегда разблокирована, это не очень гут в плане секьюрити. Я решил использовать sendRawTransaction. При включении ноды в менеджере передаю ключи, которые уходят в память и нигде не хранятся, ни в бд ни на диске и при исполнении метода сама транзакция подписывается менеджером и уходит в эфир уже подписанной.
Успехов!
  1. Как говорили в моё время — каждый уважающий себя программист пишет свою библиотеку графики и свою сетевую библиотеку. Безусловно, для практического применения изложенные элементарные действия каждый программист "обернёт" по своему вкусу и потребностям — главное иметь возможность пройти этап "инициации", который часто связан с определенными трудностями из-за недостатка информации и эталонных примеров.
  2. Нода у нас изолирована от сети на вход и изменен порт RPC по-умолчанию. Ибо сначала мы поленились и огребли :-)
    Счета разблокируются на короткое время перед проведением каждой транзакции, благо имеется сказочный API-метод personal_unlockAccount.
    Безусловно, при работе в боевой сети можно и нужно применять и более сложные решения защиты, но у нас потребности в них просто не было.
Согласен с Вами. Просто прочел, что вы компилируете контракты на сайте ремикса, и вспомнил как начинал таким же образом, после первых нескольких раз решил сам реализовать. Теперь контракты коммичу в гит, а на сервере после пула сразу их можно и компилировать и деплоить. Еще есть одна удобная библиотека для просмотра состояния чейна,- github.com/artjoma/actis
По поводу изоляции ноды, у меня аналогичная схема планировалась, но в итоге оказалось что сервер должен быть открыт для сторонних сервисов, по этому sendRawTransaction пришелся в помощь.
Скажите, вам удалось применить смарт-контракт в финансовой сфере?
Интересует применимость. У Альфа банка было оригинальное решение при проведении аккредитива, хотя нельзя сказать, что полное.

Сейчас для банков основная проблема — позиция ЦБ по криптовалютам. Поэтому большинство ушло в опыты с корпоративными блокчейнами.
В банках фактически идет этап отработки технологий, а также организационной и юридической поддержки решений. У нас была статья на эту тему https://habrahabr.ru/company/raiffeisenbank/blog/332756/
Однако в связи с созданием Ассоциации Финтех и Мастерчейна, в следующем году вполне возможно появление опеределённых межбанковских (пока) кейсов. Такие проекты под эгидой Ассоциации находятся на стадии инициирования.

Было интересно почитать! Подскажите, пожалуйста, а как вы обрабатываете события контрактов? И на каком языке вызываете JSON RPC?

События контрактов (те которые event) мы пока никак не обрабатываем. Приложение написано на C++ под Windows.

Понятно… А как дожидаетесь выполнения транзакции? Используете неблокирующие средства?

Запрашиваем подтверждение транзакции

Большое спасибо! Сейчас пробую вызывать все это из Perl, чтобы подключить Ethereum к большому проекту с историей. Делаю модуль Net::Ethereum. Подобрался к самому сложному — упаковка и распаковка при вызове методов контракта)

Удачной охоты!

Сделал модуль Net::Ethereum, позволяющий работать со смарт-контрактами Solidity из скриптов Perl и написал статью Модуль Net::Ethereum для работы с контрактами Solidity. Большое спасибо за описание формата упаковки данных для методов и конструктора!

Удачной охоты!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий