For 只熟悉EVM 的小夥伴。
撰文:NingNing
本指南將EVM 概念轉化為Solana 概念。
區塊
Solana 的出塊時間為400 毫秒,稱為Slot。 Slot 和區塊高度在Solana 中可能不同。
質押獎勵每Epoch 分配給驗證者,約2-3 天,相當於432,000 個Slot。
魏
SOL 的最小單位是lamport,精度為9(小數點後9 位)。
大多數Solana 生態的同質化代幣預設是6 位小數,而不是18 位。
十六進位/ 二進位
Solana 中的資料大多以base58 表示,可以使用from_base58() 函數轉換為十六進位。
PoS 與證明
Solana 預設使用委託權益證明(DPoS)來保障安全性。
驗證者使用PoH 共機制對Slot 進行投票(領導者每個Epoch 輪調)。
這些都在基礎鏈上進行,有兩種交易類型:投票和非投票。
地址
Solana 的地址也稱為「帳戶」,有一種特殊的帳戶稱為“Program Derived Accounts” (PDA)。
PDA 需要支付少量租金以防止狀態膨脹。
智能合約
在Solana 上稱為「程序」。
程式透過BPF 上傳器部署,可隨時升級。
交易數據
在Solana 稱為「指令」。
每個交易都有多個“data”字段,嵌套在“instructions”數組中。
可以使用solana.instruction_calls 表處理指令。
從到
From 是交易發起人,To 是指令的執行帳戶。
痕跡
由於指令資料以嵌套數組存儲,不像以太坊的ethereum.traces。
可以使用solana.instruction_calls 表代替。
函數簽名
使用“discriminators” 代替,可以是1 位元組、4 位元組或8 位元組長。
可以使用solana.discriminators 表來辨識。
事件簽名
事件大多在日誌訊息中。 Dune 尚未解碼事件或儲存事件簽章。
氣體
使用“compute units”表示計算量,可以在日誌訊息中找到。
原生程式(、stake、vote)不消耗計算量。
汽油費
Solana 尚未實施基於使用量的定價,每筆交易收取5000 lamports 的固定費用。
可以透過呼叫“Set Compute Unit Price”指令來新增優先權費用。
50% 的交易費用和50% 的租金費用被銷毀。
程式設計語言
Solana 使用Rust 語言進行程式開發,而以太坊則使用Solidity 語言。
Solana 提供了Anchor 語言作為Rust 的抽象層,簡化開發。
ABI
Anchor 程式有IDL(介面定義語言),而SPL 程式需要手動轉換為IDL。
部分Solana 專案會將IDL 上傳到鏈上,但並非所有專案都如此。
智能合約Factory(集)/ 代理智能合約
Solana 程式透過主程式建立子帳戶(PDAs),而不是像以太坊使用工廠和代理合約。
存儲
Solana 將資料儲存在帳戶的二進位緩衝區中,而不是以太坊的儲存槽。
通常會使用嵌套/ 樹狀結構的帳戶(PDAs)來儲存資料。
代幣
Solana 的代幣都透過spl_token 程式(或新版的token2022 程式)部署。
代幣餘額儲存在關聯帳戶中,而不是以太坊的餘額映射。
質押
Solana 的Staking 預設是流動的,無需鎖定代幣。
任何人都可以創建任意餘額的質押帳戶並委託給驗證者。
ERC 標準
Solana 沒有類似以太坊的ERC 標準,協議之間缺乏統一性。
核心標準變更
Solana 核心程式碼的變更透過Solana 程式碼庫中的「feature gates」來管理,不像以太坊有EIP 流程。
以上內容編譯自ANDREW HONG 的