Autochecked users, Bureaucrats, Editors, Interface administrators, Project members, Push subscription managers, Reviewers, Suppressors, Administrators, Widget editors
5,802
edits
[checked revision] | [checked revision] |
No edit summary |
CryptoUser (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
{{#seo: | {{#seo: | ||
|title= Internal services of the Decimal | |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 | ||
}} | }} | ||
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'''. | |||
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 | |||
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. | ||
== Data buffering == | |||
'''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 = | |||
'''''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. | |||
'''When entering ''' data, some devices or processes write data to the buffer, while others read from it, | |||
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. | ||
== 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. | |||
= 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, | |||
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 | 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, | 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. | ||
[[Category:Commoninfo]] | |||
[[Category:Software]] | |||