Requirements for blockchain applications
In order to be widely used, applications need a sufficiently flexible blockchain platform to meet the following requirements:
2.1 Support millions of users
If a blockchain application wants to compete with companies such as Ebay, Uber, AirBnB, and Facebook, the blockchain technology it uses needs to be able to process data generated by tens of millions of daily active users. In some cases, if the critical user volume cannot be reached, the application may not work properly, so it is important to accommodate a large number of user platforms.
2.2 Free to use
Application developers need to flexibly provide users with free services; users do not need to pay for using the platform or benefiting from its services. Only if the blockchain platform supports free use by users, can it gain wider development space. Based on this premise, developers and companies create effective profit models.
2.3 Easy upgrades and bug fixes
Companies based on blockchain applications need the flexibility to enhance applications with new features. The platform must be able to support software and smart contract upgrades.
Even after the most rigorous formal verification, software errors may still occur. Therefore, the platform must be powerful enough to be repaired in time when unavoidable errors occur.
2.4 Low latency
A good user experience requires reliable feedback within a few seconds. Excessive delays will affect the user experience and make applications built on the blockchain unable to match existing non-blockchain alternatives. Therefore, the platform must be able to support low transaction latency.
2.5 Sequential performance (serial performance)
Some application commands must be executed sequentially, which cannot be realized by parallel algorithms. Applications such as exchanges require sufficient sequential performance to process large amounts of data. Therefore, a platform capable of performing high-speed sequential performance is required.
2.6 Concurrent performance (parallel performance)
Large-scale applications need to divide the workload between multiple CPUs and computers.