目錄

Sealevel

Program

Native Program

Account

Native Account

Program Account

Data Account

PDA

Rent

Sealevel

在官方文件中,對 Sealevel 的介紹為: Parallel smart contracts run-time

以太坊的 EVM 與改良後的 EOS WASM 為單執行緒,一次只能有一份合約修改狀態機。然而 Solana 的Sealevel 一次可以處理千萬份合約交易,這是因為 Sealevel 雖然與 EVM 一樣同為 VM,卻不負責執行交易,此外,Solana 使用 BPF 的技術來讓交易在 Validator 的本地硬體執行,而非虛擬機內,加速了處理的效能。

此外,Solana 將合約(指令)與資料存儲分離,以下會針對這部分進行介紹。

Program

主打快速便宜的Solana有著和以太坊截然不同的Programming model,Solana 使用 Rust 作為編程語言,並將智能合約稱為 Program

Solana Program 與 以太坊智能合約不同之處在於:Solana Program 是 stateless

以太坊的 world state 包含了所有以太坊帳戶、他們的 balance 、智能合約、智能合約使用到的資料等。這個機制的缺點在於:當用戶一直增加、新的智能合約被部署, world state 儲存的東西就越來越多,也就是說,如果想要成為一個 full node , 電腦會需要更多的儲存空間。

而在 stateless 的區塊鏈,Program 不需要儲存數據,就只是簡單的指令,數據需要另外儲存在帳戶內。當調用一個Program 內的函數,需要將儲存這個函數所使用到的數據的帳戶地址也傳遞進去。

unnamed.png

下列介紹一些 Solana 中的 Native Program。Native Program 類似於 Fabric 中的系統合約或是以太坊的預編譯合約,是作為 validator 的一部分運行,且可能隨著版本升級進行升級

Native Program