How to Reach 1 000 000 TPS on Blockchain Platform
Tags: github, consensus, blockchain
Published: 2019-07-22 07:27:46

## Intro

The blockchain technology has been gaining a lot of traction and popularity nowadays. It’s not news that each blockchain is unique, yet most of them experience similar technical issues. The main reason why blockchain hasn’t been on top of its game is due to its scalability issue. 

Yet why can the CREDITS blockchain process hundreds and thousands of times more transactions per second than other popular systems like EOS, Tron, Ethereum? In order to answer this question, a few important aspects such as CREDITS Consensus, reduction of data packet size and ledger structure are going to be further discussed.

## CREDITS Consensus

![](https://thepracticaldev.s3.amazonaws.com/i/pdngihj3enx9bun9xg69.png)

In order to provide high transaction capacity, Credits implemented its unique Consensus Protocol - PoA (Proof-of-Agreement) which is a decision-making algorithm based on multiple validation and data processing with secure implementation solution. The algorithm based on dPoS (Delegated-Proof-of-Stake) and BFT (Byzantine Fault Tolerance) protocol. This algorithm goes as following:

1) All nodes receive round information.

2) Next, the collected transactions are sent to trusted nodes for verification.

3) Trusted nodes check the transactions and choose the writing node, which forms a block and sends it to all nodes.

4) After a block is generated and recorded in the blockchain, nodes send a participation request to the TNs for the next round to include them in the list of candidates for becoming a TN. The request is sent in the form of a hash-block, embedded in the blockchain.

The nodes involved in pool processing do not participate in building the next round.

## Reduction of data packet size

Another component that causes high transaction capacity is the optimization of transaction sizes. Any transaction has a dynamically varying size depending on balance, address size, transaction currency, the use of digital signature, and other factors . If a transaction or a pool of transactions has large data volumes, a transmission packet is broken down into smaller (65,535 bytes) datagrams used by the UDP protocol subject to the upper limit size, which allows reaching high transaction capacity. 

## CREDITS ledger structure

Last but not least, the use of the transaction ledger in the CREDITS system increases the transaction processing capacity. Each entry consists of a hash code of the transaction block which is added to the list of candidates in addition to the ledger. Also, the entry has the node identifier and the timestamp when it was generated. The ledger entry contains: 

- the transaction direction
- its initial and final accounts
- the type of write-off
- the number of write-off units
- the type of depositing
- the number of depositing units.

This principle increases the transaction capacity and excludes possible changes in the ledger entry with hindsight. Transaction capacity is also raised through a computing algorithm optimization, core memory access, and data redistribution.

## Conclusion

For the time being, there is increased activity in the blockchain ecosystem working on solutions and methods to overcome scalability issues. There are not so many blockchain platforms which are capable of processing at least 3000 transactions per second. However, our platform has come up with its unique solutions by introducing its own CREDITS consensus mechanism, that not only increases transaction processing speed but also transaction processing time. Also, the single technological decentralized platform is capable of safe and quick executions of all transactions using the principles of a distributed ledger and UDP protocol. Thus, the CREDITS blockchain platform with a throughput of up to 1 million transactions per second, has the title of the fastest blockchain platform on the market.