Hi 游客

更多精彩,请登录!

比特池塘 Just discuss 正文

Solana 基本概念指南,与 EVM 有何不同?

zzj817
8424 0 0
本指南将 EVM 概念转化为 Solana 概念。 Transaction(事务 / 交易)相关的概念区块 Solana 的出块时间为 400 毫秒,称为 Slot。Slot 和 区块高度在 Solana 中可能不同。 质押奖励每 Epoch 分配给验证者,约为 2-3 天,相当于 432,000 个 Slot。 Wei 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 From 是交易发起人,To 是指令的执行账户。 Traces 由于指令数据以嵌套数组存储,不像以太坊的 ethereum.traces。 可以使用 solana.instruction_calls 表代替。 函数签名 使用 「discriminators」 代替,可以是 1 字节、4 字节或 8 字节长。 可以使用 solana.discriminators 表识别。 事件签名 事件大多在日志消息中。Dune 尚未解码事件或存储事件签名。 Gas 使用 「compute units」表示计算量,可以在日志消息中找到。 原生程序(system、stake、vote)不消耗计算量。 Gas Fee 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 程序)部署。 代币余额存储在关联账户中,而不是以太坊的余额映射。 Staking Solana 的 Staking 默认是流动的,无需锁定代币。 任何人都可以创建任意余额的质押账户并委托给验证者。 ERC 标准 Solana 没有类似以太坊的 ERC 标准,协议之间缺乏统一性。 核心标准变更 Solana 核心代码的变更通过 Solana 代码库中的 「feature gates」进行管理,不像以太坊有 EIP 流程。 以上内容编译自 ANDREW HONG 的 https://read.cryptodatabytes.com/p/a-guide-to-solana-for-ethereum-analysts
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

zzj817 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1