1,073
edits
[checked revision] | [checked revision] |
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
}} | }} | ||
<div class="mikio-article-content"> | <div class="mikio-article-content"> | ||
<div class="mikio-tags"> | <div class="mikio-tags"> | ||
Line 14: | Line 13: | ||
<span id="tendermint"></span> | <span id="tendermint"></span> | ||
= Tendermint = | = Tendermint = | ||
<div class="level1"> | <div class="level1"> | ||
"Tendermint" is a consensus algorithm that is resistant to "Byzantine falls" (any malicious actions). | |||
The algorithm was invented in 2014 by Jae Kwon, who was concerned about the problem of high power consumption of the Bitcoin network. Unlike Nakamoto consensus, where the chain with the largest amount of work is selected, Tendermint selects the chain where 2/3 of the network members voted for the block. This is a simplified version. | |||
</div> | </div> | ||
<span id="otlichija_konsensusa"></span> | <span id="otlichija_konsensusa"></span> | ||
=== | === Differences of consensus: === | ||
<div class="level3"> | <div class="level3"> | ||
<ul> | <ul> | ||
<li><div class="li"> | <li><div class="li"> | ||
If 2/3 of the votes are not collected, the consensus pauses and waits. | |||
</div></li></ul> | </div></li></ul> | ||
<ul> | <ul> | ||
<li><div class="li"> | <li><div class="li"> | ||
If 2/3 is collected, the block can be considered final. That is, you do not need to wait for 10 or 100 blocks (probabilistic finality) to make sure that the transaction will not be pumped out. | |||
</div></li></ul> | </div></li></ul> | ||
<ul> | <ul> | ||
<li><div class="li"> | <li><div class="li"> | ||
There is no race to create a block (energy consumption is minimal). At the moment, a cyclic search is used as an algorithm for selecting the node that will create the block, weighted according to the share of the cryptocurrency that the node owns. If node A has 100 coins, node B and C have 10 coins each, then A will be assigned more often by the block creator. | |||
</div></li></ul> | </div></li></ul> | ||
'''[[commoninfo:vizantyfaulttolerance|BFT- | '''[[commoninfo:vizantyfaulttolerance|BFT-consensus]]''' guarantees the correct operation of the computer network, as long as at least 2/3 of the nodes of the blockchain network involved in the formation of blocks (validators) work correctly. | ||
</div> | </div> | ||
<span id="kak_ustroen_tendermint"></span> | <span id="kak_ustroen_tendermint"></span> | ||
= | = How Tendermint works = | ||
<div class="level1"> | <div class="level1"> | ||
Tendermint | Tendermint consists of two main technical components — the "consensus engine" and the "application interface". The consensus engine, called Tendermint Core, ensures that the same transactions are recorded on each machine in the same order. The application interface, called the Application BlockChain Interface (ABCI), allows you to process transactions in any programming language. | ||
In other words, Tendermint provides an efficient relay of changes to the blockchain throughout the network, ensuring that each node has the same transaction log and blockchain status. The pBFT (practical Byzantine Fault Tolerance) consensus mechanism is a key link of the Decimal blockchain and is used by us without any changes. | |||
</div> | </div> | ||
<div style="clear:both"> | <div style="clear:both"> | ||
</div> | </div> | ||
</div> | </div> | ||
[[commoninfo:vizantyfaulttolerance|BFT- | [[commoninfo:vizantyfaulttolerance|BFT-consensus]] | ||
[[Category:Commoninfo]] | [[Category:Commoninfo]] |
edits