Difference between revisions of "Web Speed"
Line 1: | Line 1: | ||
− | ''' | + | '''Users can interact with dapps on the Internet Computer (IC) with speeds indistinguishable from traditional web applications. Developers can therefore build a much broader range of fully on-chain dapps without relying on cloud services and risking single points of failure. |
+ | Concretely, query (read) calls are answered in ~200 milliseconds, and update (write) calls in ~2 seconds.''' | ||
− | + | ==Read vs Write calls== | |
A common practice in computer science and databases is to separate tasks into read tasks and write tasks. As the former are less 'expensive' in terms of time, categorizing types of calls can substantially help to increase the efficiency of a program. As a blockchain partly acts as a distributed database, it is useful to consider this separation of tasks in this case too. Following this line of thinking, the Internet Computer facilitates two type of transactions, query calls (read-only) and update (write) calls. | A common practice in computer science and databases is to separate tasks into read tasks and write tasks. As the former are less 'expensive' in terms of time, categorizing types of calls can substantially help to increase the efficiency of a program. As a blockchain partly acts as a distributed database, it is useful to consider this separation of tasks in this case too. Following this line of thinking, the Internet Computer facilitates two type of transactions, query calls (read-only) and update (write) calls. | ||
Revision as of 18:06, 30 August 2022
Users can interact with dapps on the Internet Computer (IC) with speeds indistinguishable from traditional web applications. Developers can therefore build a much broader range of fully on-chain dapps without relying on cloud services and risking single points of failure. Concretely, query (read) calls are answered in ~200 milliseconds, and update (write) calls in ~2 seconds.
Read vs Write calls
A common practice in computer science and databases is to separate tasks into read tasks and write tasks. As the former are less 'expensive' in terms of time, categorizing types of calls can substantially help to increase the efficiency of a program. As a blockchain partly acts as a distributed database, it is useful to consider this separation of tasks in this case too. Following this line of thinking, the Internet Computer facilitates two type of transactions, query calls (read-only) and update (write) calls.
From a blockchain POV, performance tests shows the IC latency at 200 milliseconds for query calls (reads) and 2 seconds for update calls (writes). As of December 1, 2021, The Internet Computer can handle 250,000 queries per second and 11,500 update calls per second.
Chain Key Cryptography
The main advantage of using a blockchain or decentralized protocol is that the central point of trust is removed. This advantage comes at a cost; trust is not removed, it's decentralized which means that multiple people (or machines or nodes) need to agree on the 'truth' at a given point in time. For multiple people/nodes to agree, they each sign their version of the truth, and each verify all of the others' signatures. In most blockchain protocols, this is the large source of inefficiency as verifying many individual signatures can be slow. One of the key innovations of the IC is the introduction of Chain Key (CK) Cryptography which allows IC signatures to be verified with a single public key, hence reducing friction for all types of devices (node machines, laptops, mobile phones) that want to efficiently interact with a blockchain with the same speed and security of web2, but without the centralization.
Scalability
Another advantage of CK Cryptography and the Internet Computer lies in the architectural design. In order to reach web speed, the IC needs to process increasingly large numbers of transactions. This requires the network to be able to scale quickly in order to process all those transactions. CK cryptography also facilitates nodes to onboard, catch up, and recover in the event of a hardware failure which all allow the IC to scale infinitely. Decentralized infinity.