Может ли наш веб-редактор для слайдов работать в футуристическом Интернете фонда DFINITY? Давайте разберемся.

Замечательные новости: мы получили грант в размере 25 тысяч долларов от фонда DFINITY на перенос нашего веб-редактора слайдов DeckDeckGo на Internet Computer.

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

DeckDeckGo

DeckDeckGo - это веб-редактор для слайдов с открытым исходным кодом. В отличие от других инструментов, презентации можно публиковать и просматривать в Интернете или публиковать как Progressive Web Apps (PWA). Редактор работает на всех устройствах (ноутбуках, мобильных и т. Д.), Колодами можно управлять удаленно, также поддерживается взаимодействие с аудиторией через опросы в реальном времени.

DeckDeckGo - это побочный проект, над которым мой друг Николас и Я - вместе с нашим сообществом (более 2000 зарегистрированных пользователей) и с помощью наших участников - работали последние 2,5 года. Вот наши ценности: открытый исходный код, прозрачность и обмен знаниями.

DFINITY

Фонд DFINITY - это некоммерческая научно-исследовательская организация, базирующаяся в Цюрихе, Швейцария, которая курирует исследовательские центры по всему миру. Миссия фонда - создание, продвижение и обслуживание Интернет-компьютеров. Его команда привержена созданию передовых экспериментальных технологий для улучшения общедоступного Интернета (источник).

Интернет Компьютер

Интернет-компьютер расширяет функциональные возможности общедоступного Интернета, позволяя размещать серверное программное обеспечение, превращая его в глобальную вычислительную платформу.

Он направлен на решение серьезных давних проблем, которые мешают ИТ, включая безопасность системы, и предоставить средства, чтобы обратить вспять и отменить постоянно растущую монополизацию интернет-сервисов, взаимоотношений с пользователями и данных, а также восстановить Интернет до его несанкционированного, новаторского и творческого корнеплоды.

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

Другими словами

Приведенное выше описание является официальным, но позвольте мне попытаться обобщить мое понимание:

Интернет-компьютер - это децентрализованная сеть блокчейнов, в которой вы можете запускать смарт-контракты, которые могут размещать веб-приложения. Моей маме я бы даже сказал, что это как если бы у биткойнов и облачных провайдеров родился ребенок. Таким образом, вы получаете лучшее из обоих миров и, следовательно, открываете целую новую область возможностей, которую DFINITY называет сингулярностью блокчейна. Кроме того, они стремятся оспорить монопольное положение ГАФАМ.

Цель

На данном этапе наша единственная цель - проверить осуществимость концепции: может ли наша платформа работать * и взаимодействовать ** с Интернет-компьютером? Даже если мы действительно настроены оптимистично и все, что мы читали и пробовали до сих пор, кажется, подтверждает гипотезу, ICP и ее инфраструктура все еще молоды, она «только» была официально запущена несколько недель назад, 7 мая.

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

Вехи

Чтобы выполнить доказательство концепции и получить наш грант 😜, мы определили следующие три этапа, которые должны быть выполнены, чтобы иметь возможность решить, да или нет, DeckDeckGo можно перенести на компьютер с Интернетом.

Этап 1 - Сначала оффлайн и хостинг

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

После некоторого мозгового штурма мы решили, что наиболее рациональным решением будет переход от стратегии «сначала онлайн» к стратегии «сначала офлайн». Мы собираемся преобразовать наш редактор для работы в первую очередь с IndexedDB и, при необходимости, реплицировать эти данные в облако, в конечном итоге на компьютер в Интернете.

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

Наконец, на том же непростом этапе мы также стремимся развернуть наши прогрессивные веб-приложения в качестве статического ресурса на Интернет-компьютере.

Этап 2 - Аутентификация

Интернет-компьютер представляет новый безопасный метод криптографической аутентификации, который исключает возможность для поставщиков услуг воровать данные или отслеживать перемещения (источник).

Короче: паролей больше нет 🤯!

Это то, что мы очень хотим попробовать, потому что нам это очень любопытно и потому что это действительно здорово звучит.

Конечно, с точки зрения проекта нам действительно нужен рабочий процесс аутентификации, чтобы сохранять данные пользователей в сети. Это вишенка на вершине веселья 😉.

Этап 3 - Сохранение данных

В отличие от обычного веб-решения для запроса данных через HTTP, на Интернет-компьютере нет такой функции, как fetch.

Интернет-компьютер - это прежде всего распределенная и децентрализованная платформа для запуска программного обеспечения. Следовательно, чтобы сохранять данные и запускать на них программы, приложения должны быть развернуты как модули WebAssembly. Они выполняются в концептуальном вычислительном блоке, называемом программным накопителем.

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

Резюмируем: нам нужно будет написать некоторые функции WebAssembly, чтобы получать и устанавливать наши данные в Интернет-компьютере. В нашем редакторе, разработанном с помощью StencilJS, мы будем взаимодействовать с ними посредством асинхронных обратных вызовов.

Не пропадай

Чтобы следить за нашим приключением, вы можете пометить и посмотреть наш репозиторий GitHub ⭐️, подписаться на нашу рассылку новостей или канал Slack. Мы будем делиться некоторыми обновлениями по мере нашего прогресса и, как мы часто делаем, некоторых наших знаний.

Заключение

Я играю спокойно, но я полностью осознаю, что это огромные возможности и сложный проект. Пора взламывать!

До бесконечности и дальше.

Дэйвид

Вы можете связаться со мной в Твиттере или на моем сайте.

Попробуйте DeckDeckGo для ваших следующих презентаций.