Мысли о разработке децентрализованного приложения на веб-сайте

Я пытаюсь разработать dapp для хранения файлов изображений с помощью Parity и IPFS. И сначала я просто хочу развить это в веб-сайте. Так же, как платформа или облачный диск. Но сегодня я общался с другими, я обнаружил, что есть некоторые проблемы. Если я просто сделаю его платформой, это означает, что он должен поддерживать блокчейн для всех пользователей. Это все еще соответствует мысли о "децентрации"? И если это так, мне нужно установить несколько узлов, чтобы блокчейн работал. Но сколько узлов я должен установить? Еще один пользователь, еще один узел? Это кажется непрактичным...

Я думаю, что у меня есть некоторые неправильные мысли о блокчейне... Пожалуйста, дайте мне несколько советов по разработке dapps на веб-сайте. Большое спасибо!! :)

Ответы (1)

У вас хорошая интуиция — Dapp должен быть своего рода p2p-приложением, выполняющимся исключительно на пользовательском (клиентском) компьютере. Предполагается, что он будет взаимодействовать с внешними объектами, используя блокчейн Ethereum и, возможно, другие платформы p2p, такие как IPFS.

Конечно, в зависимости от требований может потребоваться некоторая форма централизации. Но в принципе этого следует избегать.

Архитектура чем-то похожа на хорошо известную старую двухуровневую модель «клиент-сервер», где «сервер» заменен на «распределенная платформа p2p». Но с точки зрения разработчика приложений это действительно клиент-сервер, где сервер является локальным или удаленным узлом Ethereum, открывающим интерфейс RPC.

Чтобы облегчить жизнь создателям Dapp и не обременять пользователей установкой и запуском полного узла Ethereum, существуют такие проекты, как Infura, которые предоставляют доступ к Ethereum через интерфейс HTTPS RPC.

Э-э... Значит, мне нужно, чтобы пользователь установил Parity и IPFS? Это кажется немного сложным... Есть ли простой способ упаковать мое децентрализованное приложение? И если я разверну их в клиенте пользователей, и кто-то захочет загрузить изображение. Он работает на IPFS в его собственном клиенте, а не на IPFS на моем сервере, верно? Большое спасибо. :)
Вам не нужно упаковывать полный клиент IPFS или Ethereum. Вы можете использовать шлюз IPFS или услуги, предоставляемые Infura. См. Инфура
Ой. Это выглядит потрясающе. Я изучу это и попробую позже. Спасибо за совет. :)
Так что голосуйте, пожалуйста :)
Конечно, я проголосовал. :) Я пытаюсь использовать INFURA сегодня. Но я не знаю, какова его роль в Dapp... Это похоже на стабильный узел Ethereum и IPFS, верно? Но я думаю, что если я использую это, узлы обслуживаются INFURA, а не пользователями. Я не знаю, прав ли мой разум? Большое спасибо. :)
Да — именно для этого и нужна Infura — обеспечить стабильные узлы Ethereum и IPFS. Имейте в виду, что и в Ethereum, и в IPFS узлы на самом деле неразличимы, и любой из них может использоваться в качестве точки входа в сеть p2p. Любые пользовательские данные хранятся в самом Dapp. Таким образом, нет никакой реальной разницы между использованием локальных инстансов и инстансов Infura.