Многим хотелось бы иметь доступ к данным блокчейна Голоса, чтобы анализировать то, что происходит, или найти некую ценную информацию.
Но не у всех есть достаточно умения в программировании, чтобы собрать данные и получить из них желаемый результат.
Поэтому, я создал общедоступную базу данных 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
Переведено командой RuSteemitBlog
Поддержите меня и мою работу в качестве делегата, проголосовав за меня тут!
Если вам понравился этот пост,
не забудьте голосование или подписаться или поделиться
актуализация: В английской версии этот пост здесь
А какой клиент удобнее использовать для базы данных?
Ага MS SQL server MS вполне подошел =)
В Windows, вы можете использовать Microsoft SQL Server Management Studio
На других операционных системах, любой клиент, совместимый с "MS-SQL Server" будет ОК
Да спасибо - я как раз через первый уже зашел =)
Подскажите, где можно посмотреть поля таблиц?
Таблица полей будут отображаться на вашем клиенте SQL
Спасибо) Просто не хочется устанавливать СУБД) Думал, может есть описание таблиц)
@arcange, поля url в таблице TxComments нету. Зато есть permlink
Вы правы. Мне нужно, чтобы опубликовать обновление.
проектирование базы данных изменилось.
Спасибо за предоставленный сервис, может вы сможете подсказать - мне нужен список всех пользователей сети Голос с обновлением в режиме реального времени, это возможно получить в вашей базе?
да, конечно..но мне очень нужно сейчас спать. Я не спал прошлой ночью. Это нормально для завтра?
Спасибо, конечно никаких проблем, это не срочно=)
спокойной ночи