Difference between revisions of "L1 comparison"

From Internet Computer Wiki
Jump to: navigation, search
Line 23: Line 23:
 
| HTTPs Outcalls || Yes || No || No || No || No || No || No
 
| HTTPs Outcalls || Yes || No || No || No || No || No || No
 
|-
 
|-
| Language Support || Motoko (native, smart contracts), Rust, TypeScript, Python || Haskell, Plutus || || Solidity (native, smartcontracts), Go, Java, Python, Java, Javascript, Ruby, Rust|| || ||
+
| Language Support || Motoko (native, smart contracts), Rust, TypeScript, Python || Haskell, Plutus || Go, TypeScript, JavaScript, Python, Vue || Solidity (native, smartcontracts), Go, Java, Python, Java, Javascript, Ruby, Rust|| || ||
 
|-
 
|-
 
| Prerequisites to use || Browser || Browser, Extension, Gas || || || Browser, Extension, Gas || ||
 
| Prerequisites to use || Browser || Browser, Extension, Gas || || || Browser, Extension, Gas || ||

Revision as of 16:07, 14 December 2022

Whether they were writing games, operating systems or text editing applications, in the 70s, 80s and early 90s, developers always had to face limitations imposed by hardware. Applications were constrained to accessing a few kilobytes of memory through small stacks and heaps, using limited (and constantly changing) instruction sets, and using significant amounts of power to run instructions. The history repeats itself in the blockchain landscape these days. Application developers are limited to stack sizes of a few kilobytes to several megabytes at best. Persistent storage is expensive and limited. Programmers are bound to using cumbersome APIs that make hidden assumptions in terms of numbers of executed instructions. And, moreover, most chains operate inefficiently, burning too much power per executed transaction. This not only limits the types of applications that can be deployed on chain, but also increases development and testing time (and cost).

As opposed to all existing blockchains, the IC brings modern programming to on-chain developers, allowing them to use time for creativity rather than fixing memory packing issues or spreading computation in small iterations that do not hit instruction limits. The IC programming model offers orthogonal persistence, large stack and heap spaces (4GB), stable storage of 48GB (with plans for increase) in mainstream languages, such as Rust, or even Python.

To get a view of the top performers in the blockchain industry, it's useful to compare across common metrics. Here we build a table that does such a comparison. All data correct as of December 9th 2022.

Metrics explanations and references are given below.

Metrics / L1 ICP ADA AVAX ALGO ETH NEAR SOL
Average TPS 9’720 2.37 49.52 15.5 11.1 8.25 286
Average Finality 0.96secs 2.3secs 3.5secs 15mins 2.4secs
Average Tx Cost $0.0000022 $0.1 $0.0066 (C-Chain only) $0.00025 $2.39 $0.0031 $0.000026
Fixed tx cost Yes No No No No No No
Privacy-preserving identity management Yes No No No No No No
HTTPs Outcalls Yes No No No No No No
Language Support Motoko (native, smart contracts), Rust, TypeScript, Python Haskell, Plutus Go, TypeScript, JavaScript, Python, Vue Solidity (native, smartcontracts), Go, Java, Python, Java, Javascript, Ruby, Rust
Prerequisites to use Browser Browser, Extension, Gas Browser, Extension, Gas
Average energy Consumption wh/tx 0.008 51.59 4.76 2.7 0.166
On-Chain Storage $5 (3.95T cycles x 1XDR) $17,035 - $113,507 (53,236 – 354708ADA) $206,875 (15,62 5AVAX)

$15,494,409 (12,643.75 ETH) || || $48,625 (3,477.69 SOL)

Nodes / Validators 549 1050 1195 1530 798 1872
Max stack size 4 GiB 4 MB 32 KiB 256 KiB
Max persisted memory (per smart-contract) 52 GiB 1 MB 2^261 B (however, 15,494,409$ per GiB) 32 KiB

Metrics

  • TPS measures the transactions processed per second - note that the interval over which these are measured does vary across chains.
  • Finality refers to the amount of time that passes between the proposal of a new valid block containing transactions until the block has been finalized and its content is guaranteed to not be reversed or modified (for some blockchains, e.g., Bitcoin, this guarantee can only be probabilistic).
  • Tx Cost measures the cost of a transaction (Cardano and Ethereum figures found in Messari dashboard.)
  • Energy Consumption measures the energy consumption
  • On-Chain Storage measures the cost of storing data on-chain
  • Nodes/Validators measures the number of nodes
  • Repos, DAOs, Dapps, Tokens showcases the leading applications supported by the network
  • Max stack size is the maximum size the stack can grow for smart contracts and serves as a measure for the complexity of code that is supported by each platform
  • Max persisted memory is the maximum size of persisted memory supported by each platform. Persisted memory is preserved across individual function calls


References