Рубрики
Без рубрики

Хранить данные Tamper, используя Python SDK для Immudb – пылающий быстрый, OSS неизменный дб

Python SDK для Immudb Предпосылки Immu-Py предполагает существующий I … Теги с Python, Opensource, неизменностью, базой данных.

Предварительные условия

Immu-Py Предполагается, что существует существующий экземпляр сервера Immudb UP и работает.

Вы можете пропустить деталь Setup Immudb, если у вас уже работает IMMUDB.

Настройка Immudb

Immudb это Легкий, высокоскоростной неизменную базу данных Для систем и приложений. Immudb – это открытый источник под Apache v2.0 лицензия Отказ

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

Настройка Immudb

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

Вам решать, если вы хотите построить докера/образы/блог самостоятельно на основе DockerFiles в репозитории GitHUB или используйте пребуильды на Dockerhub.

Immudb использует следующие значения по умолчанию:

  • Auth пользователь: Immudb
  • Auth Password: Immudb
  • Порт обслуживания: 3322 (Immudb)
  • Портрики порта: 9497 (Прометей экспортер)

Immudb Dockerhub.

docker run -it -d -p 3322:3322 -p 9497:9497 — name immudb codenotary/immudb:latest

Автономные двоичные файлы

Каждый выпуск предоставляет все двоичные файлы для разных операционных систем. Вы можете найти это здесь: Иммодб релизы

Если вы хотите построить двоичные файлы Сам, просто клонировать это репо и запустить одну из следующих команд в зависимости от вашей операционной системы.

# Linux
GOOS=linux GOARCH=amd64 make immudb-static
# macOS
GOOS=darwin GOARCH=amd64 make immudb-static
# Microsoft Windows
GOOS=windows GOARCH=amd64 make immudb-static

Тогда вы можете запустить Immudb

# run immudb in the foreground 
./immudb
# run immudb in the background 
./immudb -d

Установите Immudb в качестве услуги

# install immudb service 
./immudb service install
# check current immudb service status 
./immudb service status
# stop immudb service 
./immudb service stop
# start immudb service 
./immudb service start

Введение Python SDK для Immudb

Immu-Py реализует GRPC Immudb Client. Минималистский API подвергается приложениям, в то время как криптографические Реализация протокола протокола и протокола и протокола государственного обновления полностью реализована этим клиентом. Последнее подтвержденное состояние Immudb может храниться в локальной файловой системе при использовании по умолчанию rootservice , Пожалуйста, прочитайте Immudb Research Paper Для получения подробной информации о том, как обеспечивается неизменность ?| Immudb Отказ

Установка

Установите пакет с помощью PIP:

    pip install git+https://github.com/codenotary/immu-py.git

Затем импортируйте клиента следующим образом:

    from immudb.client import ImmudbClient

Примечание: Immu-Py в настоящее время принимается в [пакетах GitHub].

Поддерживаемые версии

Immu-Py поддерживает Последний отпуск Immudb Отказ

Быстрый старт

Здравствуйте, неизменный мир! Пример можно найти в Immudb-клиент-образцы репо.

Пошаговое руководство

Создание клиента

Следующие фрагменты кода показывают, как создать клиент.

Использование конфигурации по умолчанию:

    client = ImmudbClient()

Настройка Immudb URL и порт:

    client = ImmudbClient("mycustomurl:someport")
    client = ImmudbClient("10.105.20.32:8899")

Пользовательские сессии

Использовать авторизоваться и Выход Методы инициирования и завершения пользовательских сеансов:

    client.login("usr1", "pwd1");

    // Interact with immudb using logged user

    client.logout();

Кодирование

Обратите внимание, что, чтобы обеспечить максимальную гибкость, все функции принимают байтовые массивы в качестве параметров. Следовательно, строки Unicode должны быть правильно закодированы. Можно хранить структурированные объекты, но они должны быть сериализованы (например, с сортировкой или JSON).

Создание базы данных

Создание новой базы данных довольно проста:

    client.createDatabase(b"db1");

Установка активной базы данных

Укажите активную базу данных с:

    client.useDatabase(b"db1");

Если не указано, используемый баз данных по умолчанию «по умолчанию».

Традиционный читать и писать

Immudb предоставляет операции по чтению и записи, которые ведут себя в качестве традиционного магазина Key-Value I.E. Криптографическую проверку не выполняется. Эта операция может использоваться, когда проверки могут быть опубликованы:

    client.set(b"k123", b"value123");
    result = client.get(b"k123");

Проверено или безопасно прочитать и писать

Immudb предоставляет встроенную криптографическую проверку для любой записи. Клиент реализует математические проверки, в то время как приложение использует в качестве традиционной операции чтения или записи:

    try:
        client.safeSet(b"k123", new byte[]{1, 2, 3});
        results = client.safeGet(b"k123");
    Except VerificationException as e:
        # Do something

Многолюбивый прочитанный и запись

Операции по чтению и записи транзакционных нескольких ключей поддерживаются Immudb и Immupy. Atomic Multi-Kily Пишите (все записи сохраняются или нет):

    normal_dictionary = {b"key1": b"value1", b"key2": b"value2"}
    client.setAll(normal_dictionary);

Atomic Multi-Kily Read (все записи извлекаются или нет):

    normal_dictionary = {b"key1": b"value1", b"key2": b"value2"}
    results_dictionary = client.getAll(normal_dictionary.keys())
    # Or manually
    client.get([b"key1", b"key2"])

Управление пользователями

Пользователи могут быть добавлены и предоставлены доступ к базам данных.

Добавление пользователя

То

 functions create a new users and grants the specified permission to a database.


```python
user='newuser'
password='Pw1:pasdfoiu'
permission=immudb.constants.PERMISSION_RW
database='defaultdb'

client.createUser(user, password, permission, database)

База данных должна существовать в то время, когда пользователь создан. Пароль должен быть длиной от 8 до 32 символов и должен иметь хотя бы одну заглавную букву, символ и цифру.

Разрешение определены в Immudb.constants и являются:

  • Permission_sys_admin.
  • Permission_admin.
  • Permission_none.
  • Permission_r.
  • Разрешение_rw.

Изменение пароля

Пользователь должен предоставить как старый, так и новый пароль:

newPassword="pW1:a0s98d7gfy"
resp=client.changePassword(user, newPassword, oldPassword)

Применяется та же политика пароля создания пользователя.

Список пользователей

Чтобы получить список пользователей, созданных на Immudb, просто позвоните

:


```python
resp=client.listUsers()
print(users.userlist.users)

Закрытие клиента

Для программически закрытия соединения с сервером Immudb используйте Выключение Операция:

    client.shutdown();

Примечание. После отключения необходимо создать новый клиент для создания нового подключения.

Вклад

Мы приветствуем вклад. Не стесняйтесь присоединиться к команде!

Чтобы сообщить об ошибках или получить помощь, используйте Вопросы Github Отказ

Оригинал: “https://dev.to/vchaindz/store-data-tamperproof-using-the-python-sdk-for-immudb-the-blazing-fast-oss-immutable-db-3eg7”