Internal services: Difference between revisions

From Decimal Wiki
Jump to navigation Jump to search
[unchecked revision][checked revision]
(Created page with "<div class="mikio-article-content"> <div class="mikio-tags"> </div> '''Это старая версия документа!''' ----- <span id="vnutrennie_sluzhby_seti_decimal"></span> = Внутренние службы сети Decimal = <div class="level1"> В сети Decimal работает ряд служб — '''воркеров''' (Workers), которые собирают данные, поступающие непосредственно в блокч...")
 
m (CryptoUser moved page Commoninfo:internalservices to Internal services)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<div class="mikio-article-content">
{{#seo:
 
                    |title= Internal services of the Decimal network — Decimal Wiki
<div class="mikio-tags">
                    |titlemode= append
 
                    |keywords= Internal services of the Decimal network
 
                    |description= Internal services of the Decimal network
 
                    }}
</div>
The [[Decimal network]] has a number of services — '''Workers''', which collect [[data]] coming directly to the [[blockchain]]; '''Data''', which include [[block]]s and [[transaction]]s of different types: sending, buying, selling, creating [[coin]]s, and so on.
'''Это старая версия документа!'''
 
Users of the browser ([[Decimal Explorer|Explorer]]) make requests to search for all kinds of information about the blockchain. All of them pass through a special '''balancer''', which evenly distributes the load and directs the corresponding read requests from '''slave-stores'''.
 
-----
This is how buffering of data and the access channel for reading from the blockchain with high bandwidth is carried out.
 
<span id="vnutrennie_sluzhby_seti_decimal"></span>
== Data buffering ==
= Внутренние службы сети Decimal =
'''Buffering''' is a way of organizing data exchange in [[hardware|computers and other computing devices]], which implies the use of a buffer for temporary data storage.
 
<div class="level1">
'''''When entering''''' data, some devices or processes write data to the buffer, while others read from it, '''''when outputting''''' — vice versa. The process that has written to the buffer can immediately continue working without waiting for the data to be processed by another process to which it is intended. In turn, the process that has processed some portion of data can immediately read the next portion from the buffer.
 
В сети Decimal работает ряд служб — '''воркеров''' (Workers), которые собирают данные, поступающие непосредственно в блокчейн.
Thus, buffering allows processes that perform input, output, and data processing to run in parallel, without waiting for another process to do its part. Therefore, data buffering is widely used in multitasking operating systems.
 
'''Данные''' — это блоки и транзакции разных типов: отправка, покупка, продажа, создание монет и так далее.
== Why are they needed? ==
 
Believing that users will be interested in a very large amount of information about the status and processes in the Decimal network, namely transaction details, blocks, [[validator]]s and their parameters, [[issue]]d [[coin]]s, and so on, '''DecimalChain took care of the availability of all these data''' and ensured their correct and fast display using internal services.
Пользователи обозревателя (Explorer) делают запросы на поиск всевозможной информации о блокчейне. Все они проходят через специальный '''балансировщик''' (Balancer), который равномерно распределяет нагрузку и направляет соответствующие запросы на считывание из '''slave-хранилищ.'''
 
With the passage of time and the increase of the blockchain, it will become more and more difficult to process requests. Significant time delays are possible when fetching data directly from blockchain replicas.
Так осуществляется буферизация данных и канала доступа на считывание из блокчейна с высокой пропускной способностью.
 
[[DecimalChain]] has organized storage in a database capable of satisfying a huge number of requests and guaranteed to provide the information users need.
 
</div>
The process is organized as follows. State changes in the blockchain generate "events", which are monitored by "workers". They disassemble all incoming information from blocks and transactions into its component parts and transmit it to the "indexer", in which the data is sorted and indexed. After that, the ordered information is written to the '''database''' (PostgreSQL), the "master database" (Master) and duplicated on the "slave repositories" (Slave) to guarantee safety. All requests from the explorer are sent to the "slave databases" through the "Load Balancer", which organizes uniform load distribution through the program interface ([[API]]).
<span id="buferizacija_dannyx"></span>
= Буферизация данных =
This scheme is horizontally scalable, that is, if the load increases, then you can add slave bases. At the same time, [[masternode]]s, where replicas of the blockchain are directly stored, are not loaded, since they are architecturally separated from user requests and external services.
 
<div class="level1">
Thanks to indexing, databases are able to provide information about any events and states in the blockchain with minimal delays, regardless of the size of the database itself.
 
'''Буферизация''' (от англ. buffer) — способ организации обмена данных в компьютерах и других вычислительных устройствах, который подразумевает использование буфера для временного хранения данных.
[[Category:Commoninfo]]
 
[[Category:Software]]
'''При вводе''' данных одни устройства или процессы производят запись данных в буфер, а другие — чтение из него, '''при выводе''' — наоборот. Процесс, выполнивший запись в буфер, может немедленно продолжать работу, не ожидая, пока данные будут обработаны другим процессом, которому они предназначены. В свою очередь, процесс, обработавший некоторую порцию данных, может немедленно прочитать из буфера следующую порцию.
 
Таким образом, буферизация позволяет процессам, производящим ввод, вывод и обработку данных, выполняться параллельно, не ожидая, пока другой процесс выполнит свою часть работы. Поэтому '''буферизация данных широко применяется в многозадачных операционных системах.'''
 
 
</div>
<span id="zachem_nuzhny"></span>
= Зачем нужны? =
 
<div class="level1">
 
Полагая, что пользователям будет интересен очень большой объём информации о состоянии и процессах в сети Decimal, а именно детали транзакций, блоки, валидаторы и их параметры, выпущенные монеты и так далее, '''DecimalChain позаботился о доступности всех этих данных''' и обеспечил их корректное и быстрое отображение с помощью внутренних служб.
 
С течением времени и увеличением блокчейна обрабатывать запросы будет всё сложнее. Возможны значительные временные задержки при выборке данных непосредственно из реплик блокчейна.
 
DecimalChain организовал хранение в базе данных, способной удовлетворить огромное количество запросов и гарантированно предоставить нужную пользователям информацию.
 
Процесс организован следующим образом. Изменения состояния в блокчейне генерируют '''события''' (events), которые мониторятся '''воркерами''' . Они разбирают на составные части всю поступающую информацию из блоков и транзакций и передают в '''индексер''' , в котором данные сортируются и индексируются. После этого упорядоченная информация записывается в '''базу данных''' (PostgreSQL), '''ведущую базу''' (Master) и дублируется на '''ведомых хранилищах''' (Slave) для гарантии сохранности. Все запросы от эксплорера поступают на '''ведомые базы данных''' через '''балансировщик''' (Load Balancer), организующий через программный интерфейс ( API ) равномерное распределение нагрузки.
 
Такая схема горизонтально масштабируемая, то есть если возрастает нагрузка, то можно добавлять ведомые базы. При этом мастерноды, где непосредственно хранятся реплики блокчейна, не нагружаются, так как архитектурно отделены от запросов пользователей и внешних служб.
 
Благодаря индексированию базы данных способны с минимальными задержками выдать информацию о любых событиях и состояниях в блокчейне вне зависимости от размера самой базы данных.
 
 
</div>
<div style="clear:both">
 
 
 
</div>
 
</div>
[[Category::Commoninfo]]

Latest revision as of 12:42, 9 February 2024

The Decimal network has a number of services — Workers, which collect data coming directly to the blockchain; Data, which include blocks and transactions of different types: sending, buying, selling, creating coins, and so on.

Users of the browser (Explorer) make requests to search for all kinds of information about the blockchain. All of them pass through a special balancer, which evenly distributes the load and directs the corresponding read requests from slave-stores.

This is how buffering of data and the access channel for reading from the blockchain with high bandwidth is carried out.

Data buffering

Buffering is a way of organizing data exchange in computers and other computing devices, which implies the use of a buffer for temporary data storage.

When entering data, some devices or processes write data to the buffer, while others read from it, when outputting — vice versa. The process that has written to the buffer can immediately continue working without waiting for the data to be processed by another process to which it is intended. In turn, the process that has processed some portion of data can immediately read the next portion from the buffer.

Thus, buffering allows processes that perform input, output, and data processing to run in parallel, without waiting for another process to do its part. Therefore, data buffering is widely used in multitasking operating systems.

Why are they needed?

Believing that users will be interested in a very large amount of information about the status and processes in the Decimal network, namely transaction details, blocks, validators and their parameters, issued coins, and so on, DecimalChain took care of the availability of all these data and ensured their correct and fast display using internal services.

With the passage of time and the increase of the blockchain, it will become more and more difficult to process requests. Significant time delays are possible when fetching data directly from blockchain replicas.

DecimalChain has organized storage in a database capable of satisfying a huge number of requests and guaranteed to provide the information users need.

The process is organized as follows. State changes in the blockchain generate "events", which are monitored by "workers". They disassemble all incoming information from blocks and transactions into its component parts and transmit it to the "indexer", in which the data is sorted and indexed. After that, the ordered information is written to the database (PostgreSQL), the "master database" (Master) and duplicated on the "slave repositories" (Slave) to guarantee safety. All requests from the explorer are sent to the "slave databases" through the "Load Balancer", which organizes uniform load distribution through the program interface (API).

This scheme is horizontally scalable, that is, if the load increases, then you can add slave bases. At the same time, masternodes, where replicas of the blockchain are directly stored, are not loaded, since they are architecturally separated from user requests and external services.

Thanks to indexing, databases are able to provide information about any events and states in the blockchain with minimal delays, regardless of the size of the database itself.