где внедрять сервисы web3: бэкенд или внешний интерфейс? [закрыто]

Я разрабатываю приложение , похожее на социальные сети, на основе блокчейна Эфириума, и некоторые варианты использования контролируются смарт-контрактами. поэтому для связи со смарт-контрактом мне приходится иметь дело с web3.

вопрос в том, нужно ли мне внедрять службы web3 на уровне внешнего интерфейса (угловой) , потому что для этого потребуется подтверждение транзакции и доступ к кошельку ( метамаска exmpl) и сохранение бизнеса вне сети в бэкэнде (nodejs), или я могу реализовать все службы в nodejs .

Ответы (1)

Это действительно зависит от того, какой UX вы хотите предоставить. Обычно есть 3 подхода:

  1. Полностью децентрализовано : автономное приложение Javascript, которое извлекает все данные из децентрализованных сервисов, таких как Ethereum, Swarm и IPFS.
  2. Полудецентрализованный подход: ваши пользователи могут управлять своими собственными кошельками и использовать Metamask или других подписантов TX с взаимодействием web3 на основе javascript. У вас также может быть серверный кошелек, подписывающий TX на стороне сервера.
  3. Вы можете управлять кошельком Ethereum для своих пользователей, предоставляя им традиционный логин. Таким образом, все ваше ( недецентрализованное ) блокчейн-приложение может быть серверным.

В любом случае вы можете использовать node.js в качестве серверной технологии или просто использовать его как часть серверной архитектуры на основе микросервисов.

Просто имейте в виду, что как только вы разместите кошелек для своего пользователя, вы можете превратить свой сервер в хакерскую приманку.

Хорошо, допустим, я буду использовать metmask для управления кошельками. я реализую web3 на уровне внешнего интерфейса. и сохранить другой бизнес вне сети на сервере nodejs?
Это звучит правильно для меня. Все действия между пользователем и блокчейном должны инициироваться интерфейсным javascript и завершаться пользователем через метамаску.
Вы также можете проверить, хорошо ли реализована реализация Ethereum для вашей любимой серверной технологии. github.com/ethereum/web3.js#другие реализации