Я пытаюсь разработать платформу социальных сетей поверх платформы Ethereum и интегрировать ее со своей валютой (токен ERC20). Эта платформа позволит пользователям публиковать медиафайлы (статьи/изображения/видео), а другие будут просматривать и комментировать. Поэтому я здесь, чтобы получить ответы на несколько вопросов.
Первый вопрос: как рекомендуется хранить медиафайлы в DApps?
Я знаю два варианта; IPFS и SWARM , но не знаю, что лучше всего подходит для моего сценария. На самом деле рой находится в стадии тестирования.
Второй вопрос: Каковы рекомендуемые способы аутентификации пользователей в DApp?
Чтобы избежать аутентификации на основе длинных открытых ключей, я нашел Uport , который можно использовать в DApps для аутентификации пользователей удобным для пользователя способом, но он все еще находится в альфа-версии.
Третий вопрос: Какой стек технологий рекомендуется для внешнего интерфейса (мобильный, веб)? Есть ли необходимость в бэкэнде или промежуточном программном обеспечении для DApps?
Четвертый вопрос: можно ли разработать систему обычным способом с централизованной базой данных (marai/mongo/casendra), которая взаимодействует с серверной частью, но серверная часть также связана с блокчейном для сохранения хэшей данных для подтверждения их существования.
Пятый вопрос: каковы передовые методы или рекомендуемый способ проектирования и разработки огромных систем на основе блокчейна (Dapps)?
Пожалуйста, не стесняйтесь редактировать, если чего-то не хватает, что может быть полезно для разработки DApps.
Каков рекомендуемый способ хранения медиафайлов в DApps?
Нет рекомендуемого способа. Большинство DApp имеют дело не с медиа, а с ценностью, безопасностью и проблемами, которые требуют криптографических доказательств или аутентификации (кто есть кто и кому принадлежит определенный закрытый ключ). И да, IPFS и Swarm — это варианты хранения данных. IPFS сейчас находится на переднем крае, а это означает, что не все идеально. Он растет, у них потрясающая команда (например, суперкрутая), и теперь у них почти неограниченный капитал, так что это сулит хорошее будущее для IPFS и Filecoin. Медиафайлы, как правило, большие по сравнению с текстом, а хранение данных в блокчейне Эфириума обходится очень дорого ( от $0.09
-$0.90
за КБ по текущим ценам Эфириума). Не говоря уже об ограничениях и сложности работы с медиафайлами (при условии, что вам нужно делать что-то большее, чем просто хранить их) в Solidity.
Каковы рекомендуемые способы аутентификации пользователей в DApp?
Это одна приятная особенность DApps: только те, у кого есть закрытый ключ и парольная фраза учетной записи, могут аутентифицироваться как эта учетная запись, поэтому аутентификация пользователей встроена в Ethereum. Вы упомянули uPort, который сам по себе находится на ранней стадии, но у него тоже хорошая команда. uPort доставляет ваш открытый ключ Ethereum (это восходит к биту открытого/закрытого ключа, который встроен в Ethereum). Этот адрес является очень уникальным идентификатором пользователя. См. public_key
бит на следующем изображении из недавней записи в блоге uPort :
Какой стек технологий рекомендуется для внешнего интерфейса (мобильный, веб)? Есть ли необходимость в бэкэнде или промежуточном программном обеспечении для DApps?
Есть несколько частей типичного технического стека DApp:
geth
узлам (это способ подключения клиентов к блокчейну и взаимодействия с ним).web3
. web3
— это библиотека Javascript, написанная самим Ethereum. web3
это определенно то, что вам нужно и с чем вы хотите ознакомиться.Четвертый вопрос: можно ли разработать систему обычным способом с централизованной базой данных (marai/mongo/casendra), которая взаимодействует с серверной частью, но серверная часть также связана с блокчейном для сохранения хэшей данных для подтверждения их существования.
Короткий ответ: да, это возможно. Меня, работающего над http://Disten.se , сейчас очень интересует, как решается эта проблема . Например, мы создали инструмент, который сопоставляет git
хэши с IPFS
хешами (чтобы обеспечить защиту состояния репо в цепочке). Это способ хранения (для чего блокчейны действительно хороши) указателя на правильное или истинное состояние некоторого контента в другом месте. Как вы намекнули, хэш на самом деле может кодировать сам контент (что является удивительным свойством хеш-функций) и может обновляться в соответствии с набором правил, записанных в коде вашего смарт-контракта.
Пятый вопрос: каковы передовые методы или рекомендуемый способ проектирования и разработки огромных систем на основе блокчейна (Dapps)?
Эта серия вопросов в некоторой степени отвечает на этот вопрос, поэтому я надеюсь, что вы найдете вышеизложенное ценным. Не стесняйтесь обращаться к нам, если у вас есть еще вопросы, с которыми я могу помочь.
Стив Эллис
фурусийя