CovenantSQL — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
Строка 24: Строка 24:
 
| latest preview date    = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
 
| latest preview date    = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
 
| marketing target      =  
 
| marketing target      =  
| programmed in          = [[Python]], Golang, [[Java]], PHP, [[Node.js]], MatLab
+
| programmed in          = [[Python]], [[Go (язык программирования)|Golang]], [[Java]], [[PHP (язык программирования)|PHP]], [[Node.js]], MatLab
 
| language              = английский, китайский
 
| language              = английский, китайский
 
| language count        =  
 
| language count        =  

Версия 17:25, 26 июня 2020

CovenantSQL (CQL) - децентрализованная, совместимая с GDPR (Общий регламент защиты персональных данных), доверенная база данных SQL с функциями блокчейна.

CovenantSQL
Covenant logo.png
Разработчик Covenant Labs
Написана на Python, Golang, Java, PHP, Node.js, MatLab
Линейка ОС Unix-like
Исходный код Open-source
Последний релиз v0.8.0 / 07.08.2019[Источник 1]
Доступно в английский, китайский
Платформы macOS, Linux
Лицензия Apache 2.0
Официальный веб-сайт covenantsql.io


Принцип работы

Что такое CovenantSQL?

  • Альтернатива Amazon QLDB с открытым исходным кодом
  • DBaaS с низкой стоимостью
  • То же, что и Filecoin (проект по созданию децентрализованной платформы хранения данных со встроенной криптовалютой), но боле продуманный

Архитектура ПО

CovenantSQL по своему устройству имеет трёхуровневую архитектуру[Источник 2]:

  • Уровень 1: глобальный консенсусный слой (основная цепочка):

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

  • Уровень 2: уровень консенсуса SQL (шардинговая цепочка):

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

  • Уровень 3: Уровень хранилища данных (компонент с поддержкой SQL-92):

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

Области применения CovenantSQL:

1. Инфраструктура децентрализованного приложения

  • Структурированное хранение данных: повышение эффективности разработки
  • Краудсорсинг: снижение стоимости хранения данных
  • Интерфейс базы данных SQL: незначительная стоимость миграции
  • Увеличенная скорость чтения и записи

2. Управление активами

  • Подтверждение транзакций
  • Улучшенный риск-менеджмент
  • Упрощённый процесс аудита

3.Интеграция с интернетом вещей

  • Простая интеграция с более чем 400 тысячами различных устройств
  • Максимальная прозрачность процессов
  • Ускоренный процесс выставления и сверки счетов[Источник 3]

Сравнение CovenantSQL с ближайшими конкурентами

Ethereum Hyperledger Fabric Amazon QLDB CovenantSQL
Язык разработки Solidity, ewasm Chaincode (Go, NodeJS)  ? Python, Golang, Java, PHP, NodeJS, MatLab
Открытый исходный код Да Да Нет Да
Шифрование хранилища Нет Crypto API Да Да
Децентрализация данных Нет Нет Нет Да
Пропускная способность 15~10 tx/s 3500 tx/s  ? 11065 tx/s (Обычная нагрузка)

1866 tx/s (Сильная нагрузка)

Процесс установки

Системные требования

CovenantSQL ориентирован на работу под Unix-подобными системами. Системные требования следующие:

  • macOS X 10.9 или выше или Linux 2.6.23 или выше ( с архитектурой проуессора x86, x86-64, armeabi-v7a, arm64-v8a)
  • поддерживается SQL стандарта SQL-92

Установка CovenantSQL

Рассмотрим процесс установки CovenantSQL. Процесс установки клиента довольно прост и зависит от системы [Источник 4].

MacOS

  • Пользователи 🍺 Homebrew могут просто выполнить команду:
brew install cql
  • Остальным достаточно выполнить
sudo bash -c 'curl -L "https://mac.gridb.io/cql" | \ tar xzv -C /usr/local/bin/ --strip-components=1'

Linux

  • Просто выполните:
sudo bash -c 'curl -L "https://linux.gridb.io/cql" | \ tar xzv -C /usr/local/bin/ --strip-components=1'
  • После завершения установки вы можете выполнить следующую команду, чтобы проверить, была ли установка успешной:
cql version

Если возникают проблемы при установке на MacOS или Linux

  • Если у вас возникают какие-либо ошибки в MacOS или Linux, вы можете попробовать следующее, чтобы исправить их:
sudo chmod a+x /usr/local/bin/cql*                         # Исправить ошибки
sudo ln -s /usr/local/bin/cql* /usr/bin/                   # Исправить ошибки, если $PATH не принимает значение /usr/local/bin

Работа с базами данных

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

Создайте базу данных с помощью команды cql и параметра create, для которого указывается необходимое количество узлов базы данных[Источник 5].

  • Например, база данных с 1 узлом:
cql create -config ${COVENANTSQL_ROOT}/test/service/node_c/config.yaml -db-node 1
  • Изменяя значение параметра create, можно создать базу данных с несколькими узлами. Например, создадим экземпляр с двумя узлами:
cql create -config ${COVENANTSQL_ROOT}/test/service/node_c/config.yaml -db-node 2
  • Следующая команда возвращает строку подключения к ранее созданной базе данных
covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4

Получения доступа к базе данных

  • Используйте команду cql и параметр dsn для доступа к базе данных:[Источник 6]
cql console -config ${COVENANTSQL_ROOT}/test/service/node_c/config.yaml covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4

После этого будет выполнен вход в режим интерактивной командной строки cql. Интерактивный режим командной строки cql аналогичен команде mysql.

Дополнительно

Источники

  1. Releases // GitHub. Дата обновления: 07.08.2019 URL: https://github.com/CovenantSQL/CovenantSQL/releases (дата обращения: 22.06.2020).
  2. 3 Layers Arch // GitHub. Дата обновления: 07.08.2019 URL: https://github.com/CovenantSQL/CovenantSQL#3-layers-arch (дата обращения: 22.06.2020).
  3. Use cases // CovenantSQL. URL: https://covenantsql.io/#use-cases (дата обращения: 22.06.2020).
  4. Quick Start // GitHub. Дата обновления: 07.08.2019 URL: https://github.com/CovenantSQL/CovenantSQL#quick-start (дата обращения: 22.06.2020).
  5. Create a testnet database // CovenantSQL Docs. Дата обновления: 23.04.2019 URL: https://developers.covenantsql.io/docs/en/quickstart#create-a-testnet-database (дата обращения: 22.06.2020).
  6. Access the testnet database // CovenantSQL Docs. Дата обновления: 23.04.2019 URL: https://developers.covenantsql.io/docs/en/quickstart#access-the-testnet-database (дата обращения: 22.06.2020).