Автономная первая БД с PouchDB и blockstack.js (хранилище Gaia) - PullRequest
0 голосов
/ 19 апреля 2019

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

putFile(path: string, data: string) : Promise<void> 
getFile(path: string) : Promise<string> 

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

  1. Создать веб-работник, который извлекает PouchDB из хранилища (т. Е. Используя getFile)
  2. Создание локальной версии БД
  3. Выполните двухстороннюю синхронизацию с локальной версией и выбранной версией.
  4. Сериализация БД в память и использование putFile.
  5. Повторяйте каждые 30 секунд или около того.
  6. Если пользователь находится в автономном режиме, он продолжает добавлять и изменять информацию в локальном хранилище, а после того, как он снова подключается, он в конечном итоге синхронизируется с помощью двусторонней синхронизации пакетов.

У меня есть две части к этому вопросу:

  1. Это то, как другие люди синхронизируют базы данных, такие как PouchDB, с онлайн-ресурсами, которые не имеют адаптеров (например, хранилище Gaia в blockstack)?Или это может быть так же просто, как синхронизировать с чем-то вроде API Dropbox или S3.
  2. Как можно сериализовать БД, такую ​​как PouchDB, в сериализованный объект JSON, а затем загрузить ее обратно в память?
...