Internal services: Difference between revisions

From Decimal Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
No edit summary
m (CryptoUser moved page Commoninfo:internalservices to Internal services)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{#seo:
{{#seo:
                     |title= Internal services of the Decimal network
                     |title= Internal services of the Decimal network — Decimal Wiki
                     |titlemode= append  
                     |titlemode= append  
                     |keywords= Internal services of the Decimal network
                     |keywords= Internal services of the Decimal network
                     |description= Internal services of the Decimal network
                     |description= Internal services of the Decimal network
                     }}
                     }}
<div class="mikio-article-content">
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.
   
   
<div class="mikio-tags">
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'''.
 
 
</div>
'''This is an old version of the document!'''
-----
<span id="vnutrennie_sluzhby_seti_decimal"></span>
= Internal Network Services Decimal =
<div class="level1">
The Decimal network has a number of services — "'Workers'" (Workers), which collect data coming directly to the blockchain.
'''Data''' 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.
This is how buffering of data and the access channel for reading from the blockchain with high bandwidth is carried out.
   
   
</div>
== Data buffering ==
<span id="buferizacija_dannyx"></span>
'''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.
= Data buffering =
   
   
<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.
"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.
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.
   
   
</div>
== Why are they needed? ==
<span id="zachem_nuzhny"></span>
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.
= Why are they needed? =
<div class="level1">
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.
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.
[[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).
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.
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.
   
   
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.
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.
   
   
</div>
[[Category:Commoninfo]]
<div style="clear:both">
[[Category:Software]]
 
 
</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.