|
From a high-level perspective, Solana's design philosophy is that blockchain innovation should evolve with hardware progress. Over time, as hardware improves according to Moore's Law, Solana's design will benefit from increased performance and scalability. Solana co-founder Anatoly Yakovenko designed the initial parallel architecture of Solana over five years ago, and today, parallelism as a blockchain design principle is rapidly gaining traction.
Solana employs deterministic parallelism, which stems from Anatoly's past experience with embedded systems, where all states are typically declared in advance. This allows the CPU to know all dependencies, enabling it to preload necessary parts of memory in advance. The result is optimized system execution, but again, it requires developers to do extra work upfront. On Solana, all memory dependencies of a program are essential and declared in the constructed transaction (access list), enabling the runtime to efficiently schedule and execute multiple transactions in parallel.
The next major component of Solana's architecture is the Sealevel VM, which is Solana's parallel smart contract runtime. Sealevel natively supports parallel processing of multiple contracts and transactions based on the number of validator cores. Validators in the blockchain are network participants responsible for verifying transactions, proposing new blocks, and maintaining blockchain integrity and security. As transactions declare in advance which accounts need read and write locks, the Solana scheduler can determine which transactions can be executed in parallel. Therefore, when it comes to validation, block producers or leaders can sort and parallel schedule non-overlapping transactions from thousands waiting to be processed.
The final design element of Solana is pipelining. Pipelining is triggered when data needs to be processed in a series of steps, each handled by different hardware. The key idea here is to take data that needs to be processed serially and parallelize it using pipelining. These pipelines can run in parallel, and each pipeline stage can handle different transaction batches.
These optimizations allow Sealevel to organize and execute independent transactions simultaneously, leveraging the capabilities of hardware to process multiple data points at once. Sealevel orders instructions by program ID and executes the same instructions in parallel across all relevant accounts.
Through these innovations, we can see that Solana is intentionally designed to support parallelization. |
|