OrbitDB — это бессерверная распределенная одноранговая база данных. OrbitDB использует IPFS в качестве хранилища данных и IPFS Pubsub для автоматической синхронизации баз данных с одноранговыми узлами. Это в конечном итоге согласованная база данных, которая использует CRDT для бесконфликтного слияния баз данных, что делает OrbitDB отличным выбором для децентрализованных приложений (dApps), блокчейн-приложений и автономных веб-приложений.
OrbitDB предоставляет различные типы баз данных для разных моделей данных и вариантов использования:
- журнал: неизменяемый (только для добавления) журнал с просматриваемой историей. Полезно для «последних N» вариантов использования или в качестве очереди сообщений.
- лента: изменяемый журнал с доступной историей. Записи можно добавлять и удалять. Полезно для случаев использования типа «корзина покупок» или, например, в качестве канала сообщений в блогах или «твитов».
- ключ-значение: база данных "ключ-значение", такая же, как ваша любимая база данных "ключ-значение".
- docs: база данных документов, в которой документы JSON могут храниться и индексироваться по указанному ключу. Полезно для создания поисковых индексов или контроля версий документов и данных.
- счетчик: полезен для подсчета событий отдельно от данных журнала/потока.
Все базы данных реализованы поверх ipfs-log, неизменяемой, основанной на операциях бесконфликтной реплицированной структуры данных (CRDT) для распределенных систем. Если ни один из типов баз данных OrbitDB не соответствует вашим потребностям и/или вам нужны специальные функции, вы можете легко реализовать и использовать собственное хранилище базы данных.