[GolosSQL] - База данных SQL со всеми данными блокчейн


Многим хотелось бы иметь доступ к данным блокчейна Голоса, чтобы анализировать то, что происходит, или найти некую ценную информацию.

Но не у всех есть достаточно умения в программировании, чтобы собрать данные и получить из них желаемый результат.

Поэтому, я создал общедоступную базу данных Microsoft SQL Server со всеми данными блокчейна.

Главное преимущество такой базы данных в том, что данные структурированы и легко доступны любому приложению, способному общаться с базой данных SQL Server’а. Наличие базы данных SQL Server позволяет получать быстрые ответы на запросы.

Зачем использовать базу данных SQL?

Простыми словами, SQL запрос спрашивает базу данных, а та выдаёт ответ, который называется результатом запроса.
Например, когда вы работаете с большими объемами данных, такими как блокчейн Голоса, вы желаете получить ответы на простые вопросы, вроде:

  • Какова была величина уменьшения Силы Голоса за последние шесть недель?
  • Какие посты входят в десятку самых успешных? (В плане награды)

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

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

Давайте рассмотрим технические детали

Диаграмма базы данных

Таблица “Blocks” содержит сырую информацию из блоков (время, делегат, …)
Каждый блок может быть связан с одной или несколькими записями в “Transactions”. В зависимости от типа транзакции, связанные с транзакцией данные хранятся в соответствующей “Tx**” таблице.

Новые транзакции из последних блоков данных добавляются в базу данных каждые 10 секунд.

Таблица аккаунты наполняется вот так:

  • Каждый раз, когда в базу данных добавляется транзакция от неизвестного аккаунта, соответствующие аккаунту данные добавляются в нее.
  • Каждый раз, когда в базу данных добавляется транзакция от известного аккаунта, соответствующее аккаунту поле “dirty” помечается как “true”.
  • Каждые десять минут все аккаунты с флагом “dirty” обновляются.

Такое поведение было добавлено для того, чтобы:

  • избежать перегрузки сервера базы данных слишком частым обновлением аккаунтов
  • снизить нагрузку на сидов нод Голоса, запрашивая данные аккаунтов реже

Так что будьте аккуратнее с запросами к таблице “Accounts”. Если у аккаунта есть флаг “dirty”, это означает, что новые транзакции, появившиеся в базе данных, возможно затронули значения некоторых полей, но эти значения еще не были обновлены.

Полнотекстовый поиск

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

Например, если я хочу узнать, где кто-то говорил обо мне, поможет следующий запрос

SELECT author, title, body, url FROM TxComments WHERE CONTAINS(body, '@arcange')

Быстродействие

Для улучшение быстродействия ответов на запросы было создано несколько индексов. Если ваши запросы выполняются медленно, не стесняйтесь написать мне, чтобы проанализировать ситуацию и посмотреть как можно ее улучшить.

Давайте посмотрим на некоторые технические данные.

Информация по подключению к базе данных:

Вот информация о том, как подключиться и посылать запросы в базу данных:

Server: sql.golos.cloud
User: golos
Password: golos

Поддержка

Если вам нужна помощь, или у вас есть какие-то вопросы и комментарии, пожалуйста используйте канал GolosSQL

Доступность и быстродействие

SQL сервер расположен в дата-центре с доступностью 24/7/365. Пропускная способность канала до 500Mb/s

Сейчас сервер находится в общей инфраструктуре.
Я слежу за нагрузкой, и если он потребует больше ресурсов, я выделю их из награды за этот пост для перевода его на выделенный сервер.


Translated by RuSteemitBlog

Поддержите меня и мою работу в качестве делегата, проголосовав за меня тут!

Если вам понравился этот пост,
не забудьте голосование или подписаться или поделиться


Comments 7


актуализация: В английской версии этот пост здесь

19.10.2016 16:10
0

Спасибо за предоставленный сервис, может вы сможете подсказать - мне нужен список всех пользователей сети Голос с обновлением в режиме реального времени, это возможно получить в вашей базе?

19.10.2016 16:43
0

да, конечно..но мне очень нужно сейчас спать. Я не спал прошлой ночью. Это нормально для завтра?

19.10.2016 19:02
0

Спасибо, конечно никаких проблем, это не срочно=)
спокойной ночи

19.10.2016 19:08
0

SELECT author, title, body, url FROM TxComments WHERE CONTAINS(body, '@arcange')

@arcange, поля url в таблице TxComments нету. Зато есть permlink

09.11.2016 19:39
0

Вы правы. Мне нужно, чтобы опубликовать обновление.
проектирование базы данных изменилось.

09.11.2016 22:41
0

Подскажите, где можно посмотреть поля таблиц?

10.12.2016 14:51
0

Таблица полей будут отображаться на вашем клиенте SQL

10.12.2016 16:26
0

Спасибо) Просто не хочется устанавливать СУБД) Думал, может есть описание таблиц)

10.12.2016 16:37
0

А какой клиент удобнее использовать для базы данных?
Ага MS SQL server MS вполне подошел =)

13.02.2017 18:57
0

В Windows, вы можете использовать Microsoft SQL Server Management Studio

На других операционных системах, любой клиент, совместимый с "MS-SQL Server" будет ОК

13.02.2017 19:01
0

Да спасибо - я как раз через первый уже зашел =)

13.02.2017 19:03
0