Опубликована СУБД immudb 1.0, обеспечивающая защиту от искажения данных
27 мая 2021 года
Представлен (Архивная копия от 27 мая 2021 на Wayback Machine) значительный выпуск СУБД immudb 1.0, гарантирующей неизменность и сохранение всех когда-либо добавленных данных, а также предоставляющей защиту от внесения изменений задним числом и дающей возможность криптографического доказательства владения данными. Изначально проект развивался как специализированное NoSQL-хранилище, манипулирующее данными в формате ключ/значение, но начиная с выпуска 1.0 immudb позиционируется как полноценная СУБД с поддержкой SQL. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0.
Информация в immudb хранится с использование блокчейн-подобной структуры, гарантирующей целостность всей цепочки имеющихся записей и не позволяющей изменить уже сохранённые данные или подменить/вставить запись в историю транзакций. Хранилище поддерживает только добавление новых данных, без возможности удаления или изменения уже добавленной информации. Попытка изменения записей в СУБД лишь приводит к сохранению новой версии записи, старые данные не теряются и остаются доступны в истории изменений.
Применение криптографии в привязке к клиентским ключам не требует от клиента доверия к серверу для верификации и подтверждения владения данными, а подключение каждого нового клиента к СУБД увеличивает общей уровень доверия ко всему хранилищу. При этом в отличие от типовых решений на базе блокчейна, immudb позволяет добиться производительности на уровне миллионов транзакций в секунду и может применяться для запуска легковесных сервисов или для встраивания своей функциональности в приложения в форме библиотеки.
Высокая производительность достигается благодаря применению дерева LSM (Log-structured merge-tree) c логом значений, обеспечивающего быстрый доступ к записям при высокой интенсивности добавления данных. Для поддержания целостности хранилища дополнительно задействована древовидная структура "дерево Меркла" (Merkle Tree), в которой каждая ветка верифицирует все нижележащие ветки и узлы благодаря совместному (древовидному) хешированию. Имея конечный хеш, пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний БД (корневой проверочный хеш нового состояния базы вычисляется с учётом прошлого состояния).
Из функциональных возможностей СУБД упоминается поддержка SQL, режим хранения ключ/значение, индексы, сегментирование БД (sharding), создание снапшотов состояния данных, транзакции ACID с поддержкой изоляцией снапшотов (SSI), высокая производительность чтения и записи, оптимизации для эффективной работы на SSD-накопителях, поддержка работы в форме сервера и встраиваемой библиотеки, поддержка REST API и наличие web-интерфейса для управления. Из типичных областей применения, в которых востребованы СУБД, подобные immudb, отмечаются ведение транзакций с кредитными картами, хранение открытых ключей, цифровых сертификатов, контрольных сумм и логов, создание дублирующего хранилища для важных полей в традиционных СУБД. Клиентские библиотеки для работы с immudb подготовлены для Go, Java, .NET, Python и Node.js.
Ключевые улучшения в выпуске immudb 1.0:
- Поддержка SQL с возможностью защиты строк от скрытой модификации.
- Режим TimeTravel, дающий возможность переключить состояние БД на определённый момент в прошлом. В том числе время среза данных можно устанавливать на уровне отдельных подзапросов, что упрощает анализ изменений и проведение сравнения данных.
- Поддержка клиентского протокола PostgreSQL, позволяющего использовать с immudb существующие приложения и библиотеки, рассчитанные на работу с PostgreSQL. В том числе помимо родных клиентских библиотек можно применять типовые клиентские библиотеки Ruby, C, JDBC, PHP и Perl.
- Web Console для интерактивной навигации по данным и администрирования СУБД. Через web-интерфейс можно отправлять запросы, создавать пользователей и управлять данными. Дополнительно доступна обучающая среда Playground.
Источники
править- Главная ссылка к новости (https://www.codenotary.com/blo...) (Архивная копия от 27 мая 2021 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.