Как использовать IPFS для хранения состояния приложения (в качестве бэкэнда для dApp)? - PullRequest
0 голосов
/ 30 октября 2018

Я только начинаю с IPFS и Ethereum. Мы создаем dApp (mobile) и планируем заменить стандартный уровень API и базы данных на IPFS и Ethereum. Итак, после долгих чтений у меня возникли следующие вопросы:

  1. Использование dApp для прямой связи с IPFS (через API-интерфейсы IPFS) для хранения данных (данные приложения или файлы) и извлечения данных. т.е. полная замена уровня API на IPFS кажется возможной, но есть ли проблема с этим подходом? можем ли мы вообще жить без API?

  2. Если точка 1 возможна, доступ к данным файла прост, но как получить доступ к приложению. данные в IPFS (например, какова рекомендуемая структура для хранения и извлечения, как хранить различные пользовательские данные и т. д.)?

  3. Я понимаю, что данные, добавленные в IPFS, доступны публично, как мы можем защитить эти данные и сделать их доступными только для конкретного клиента? Как я понимаю, что в IPFS нет механизма открытого / закрытого ключа?

  4. Когда мы храним видео в IPFS, для потоковой передачи видео на клиенте нам нужно использовать CDN, и я не уверен, как это сделать в децентрализованном решении.

  5. Есть ли какая-либо опция, доступная в IPFS для автоматического выполнения задачи (например, запуска сценария), когда некоторые события запускаются или по команде клиентских приложений?

  6. Известны ли проблемы с производительностью IPFS при поиске и извлечении данных из узла?

  7. Есть ли какие-либо предложения относительно инструментов и структур, доступных для реализации вышеуказанного подхода?

Заранее спасибо.

1 Ответ

0 голосов
/ 12 ноября 2018

Настройка dApp для прямого обмена данными с IPFS (через API-интерфейсы IPFS) (приложение. данные или файлы) и получить данные. т.е. полностью заменив уровень API с IPFS кажется возможным, но есть ли проблема с этим подходом? мы вообще можем жить без API?

Зависит от того, что вы хотите сделать. Но с хранилищем с адресным содержимым, IPNS и ipfs pubsub у вас есть все компоненты для написания некоторых очень сложных приложений, которые не используют централизованную службу.

Особенно pubsub все еще экспериментальный. Но последняя версия IPFS, 0.4.18, содержит новую реализацию pubsub, которая должна быть гораздо более масштабируемой.

Если точка 1 возможна, доступ к данным файла является прямым но как получить доступ к приложению. данные в IPFS (например, что рекомендуется структура для хранения и извлечения, как хранить различные пользовательские данные и т.д.)?

Вы просто публикуете свое приложение под ключом IPNS, который вы контролируете. Предполагая, что мы говорим о приложениях javascript / typcript, вы можете упаковать их, как обычно, с помощью таких инструментов, как webpack, и поместить окончательный артефакт в IPFS и опубликовать с использованием IPNS. ​​

Я понимаю, что данные, добавленные в IPFS, доступны публично, как можем ли мы защитить эти данные и сделать их доступными только для конкретных клиент? Как я понимаю, что нет механизма открытых / закрытых ключей в IPFS?

Каждый узел IPFS имеет пару открытого / секретного ключей. Вы можете использовать это для шифрования сообщений для узла или для подписи сообщений от узла. Это используется в IPNS. Вы можете иметь более одной пары ключей на узел.

Когда мы храним видео в IPFS, для потоковой передачи видео на клиенте нужно использовать CDN, и я не уверен, как это сделать в децентрализованном решение.

IPFS в основном - это CDN. Таким образом, вам не придется использовать дополнительный CDN. Вы также можете использовать шлюз Cloudflare IPFS .

Работа над тем, чтобы сделать IPFS очень эффективной для распространения очень больших файлов, таких как видео, в настоящее время продолжается. Есть приложения, уже использующие это, такие как D.Tube

Есть ли какая-либо опция, доступная в IPFS для выполнения задачи (например, запуск сценарий) автоматически при срабатывании некоторых событий или при под управлением клиентских приложений?

Нет. IPFS / libp2p - это в основном сетевой стек для распределенной сети. Если вам нужна такая функциональность, как автоматическое выполнение сценариев, запускаемых событиями, вам придется либо написать ее самостоятельно в пабе IPFS, либо использовать более высокоуровневое промежуточное программное обеспечение, такое как Orbit DB .

Есть ли известные проблемы с производительностью IPFS при поиске и получать данные с узла?

Да. IPFS все еще довольно молода. Например. Существует проблема с распространением больших файлов от многих пиров, которая в настоящее время работает над . Многие компании используют IPFS в производстве, но вы будете жить на переднем крае и будете время от времени сталкиваться с проблемами.

Любое предложение относительно инструментов и структур, доступных для достижения Выше подход?

Затруднились ответить без знания общей цели и уровня квалификации разработчиков. Если вы хотите максимальной производительности, вам придется использовать IPFS или libp2p напрямую. Для начала, возможно, имеет смысл использовать что-то вроде OrbitDB.

Существует также множество примеров для JS-IPFS для начала.

...