# Solana的与众不同 **Published by:** [想住大房子的java程序员](https://paragraph.com/@java-3/) **Published on:** 2024-01-12 **URL:** https://paragraph.com/@java-3/solana ## Content 转自推特gm365老哥 对于一个长期浸淫在 EVM (以太坊、L2、BSC、Avax等)世界的人,刚切换到 Solana 生态时,除了要换一个浏览器插件钱包、交易更便宜外,可能你会觉得两条公链差别也不是很大 但一番深入研究下来,发现二者从底层设计理念,到各个层面,几乎天差地别 这里将我前期学习了解的一些特性加以总结,帮你更快速入门 Solana ,少走一些弯路普通用户对普通用户而言, Solana 的实际差别不会特别大,具体表现可能在下面几个方面: 1、浏览器插件钱包 MetaMask 不直接支持 Solana, 你得换用 Phantom 之类,问题不大 但是,通过 MetaMask Snap 特性,安装 solflare 插件,就可以继续使用 MetaMask 了 2、交易费用极低 相对于以太坊主网动辄几刀、十几刀的 gas 费,L2 (Arbitrum, OP, zkSync Era等)上大约 $0.2 左右的 gas,即便 BNB Chain 也要 $0.1,但 Solana 上一笔交易甚至不足 $0.01,着实令人印象深刻 3、交易“偶尔”会失败 如果你用的次数较多,项目较广,会发现 Solana 交易有一定的失败概率,绝对比你使用 EVM 链多 4、交易速度“挺快” 相比以太坊的平均十几秒、几十秒,L2 的几秒, Solana 的交易确认速度算是比较快的了,实际感受大约在几秒,但并不太稳定 目前依然比不上 Arbitrum 的几乎秒确认开发者5、Solana 的开发语言 Solana 的智能合约(他们叫 Program) 使用 Rust 或者 C 开发,不用 Solidity 6、区块间隔 Solana 的区块(他们叫 Slot)间隔是 400ms(目标值),实际值大约在 400~500 ms 之间 7、TPS Solana 区块浏览器看到的 TPS 在 3000 左右,令人印象深刻然而,这里面有大量的交易只是 Vote 这样的“无效交易”,真实的用户交易占比约 25%,也就是 700+ TPS,依然吊打一众 EVM 兼容链 8、Nonce Solana 没有 Nonce 的概念,这是 EVM 上才有的“落后特性” 按照官方文档,Nonce 的设置,利好负责区块打包的一方,但严重不利于普通用户(想想被一堆 Pending 交易支配、需要手工挨个加速的恐惧) 9、共识机制 Solana 给予 PoH 共识机制,根据时间戳决定区块顺序 10、交易过期 用户提交的每笔交易,都包含最新的区块哈希(时间戳),交易会在大约150个区块后(大约1分20秒左右)自动过期(被节点自动丢弃) 11、并行处理 Solana 对所有待打包的交易并行处理,效率极高,速度极快。 如果某两笔交易有冲突,则将冲突交易放入下一个区块处理 12、合并多笔交易 Solana 默认支持在一条 tx 中插入多笔交易,一次性提交和处理进阶用户13、合约开源 Solana 的合约(Program)默认都是“不开源”,你在 solscan 这类区块浏览器无法看到任何合约源代码相关信息 想要源码?除非官方主动公开在 GitHub 上 除此之外,根据项目方公布的源码重新编译,并不能得到和现有合约一模一样的“BPF字节码”(貌似和编译机制有关,编译时会有轻微随机变动) 但似乎关心这事的人并不太多,普通用户不关心,开发者似乎也集体噤声 14、合约与数据分离 Solana 的合约与数据是彻底分开存放的,这样保证了合约的执行是无状态的,从而实现并行处理 15、租金 你每买入一个代币/NFT,都需要在你的钱包 Wallet 开设一个单独的新账户 account,并支付一定的租金 你也可以关闭账户并拿回租金,目前价值约 $0.2 也就是说,如果买入100种不同的代币,租金你就得付 $20 16、一键发币 Solana 号称对开发者极其友好,文档齐全 体现在哪儿呢? 安装好官方的 SPL-Token 命令行工具,只需要下面一行命令,就可以自动部署一个代币(NFT同理) spl-token create-token 17、代币名字? 你发的代币想要有名字和介绍? 这需要一个第三方工具 metaplex 支持 P.S. 由于这个特性,默认情况下,你是可以修改一个代币的名称、符号和介绍内容的,除非你主动放弃这个权限 18、“阉割版”区块浏览器 由于无法在区块浏览器验证合约源代码,你无法通过区块浏览器做下面这两件事: a、读取合约代码 b、读取合约函数的值 c、写入(调用)合约 19、SPL-20 添加流动性 想要在最大的 DEX Raydium 上给你的 SPL-20 代币添加流动性,你需要: a、在他们网站提交申请 b、支付费用,大约 3-4 SOL ,这可是 $300~ $400 c、等待被批准 d、添加流动性,等待开启交易(大约 5-10分钟) 这和 UniSwap 所谓的“无需许可”(自然也无需额外付费)的添加流动性池方法,天差地别 据 DeFiLlama 数据,过去7天 Raydium 收益 $8700万(我猜应该还没包括这笔上币费)整体感触作为一个长期使用 EVM 兼容链的人来说,发现 Solana 这些稀奇古怪的特性,有震惊,有不解,有赞叹 如果说以太坊自身的成功导致其“积重难返”,几乎不可能对底层机制做颠覆性调整,从而导致其可能长期无法解决 TPS 和交易费用过高的问题 那么,在以太坊 EVM 基础上发展而来的几乎所有 EVM兼容链、L2,恐怕在出生那刻就带着先天不足,是戴着镣铐跳舞 L3 套娃 L2 套娃 L1 的模式,真能彻底解决这个问题?我个人目前持存疑态度 Solana 由于彻底抛弃 EVM 这个历史包袱,从头设计的颠覆性创新,给了普通用户更快、更便宜、更好的 L1 公链体验 未来用户会作何选择?拭目以待 以上就是对近期学习 Solana 的一些知识点汇总,希望对你有所帮助 ❤️ 20、Solana 交易前不需要授权 由于设计理念的差别,在 Solana 上进行交易(比如 DEX Swap, Deposit 等),不需要像 EVM 上那样,先授权再交易 也鉴于此,Solana 上(似乎)不存在因为合约授权导致的资产被盗 但是,Solana 由于一笔 tx 可以一次性提交多笔交易,导致如果遇到钓鱼手法,可以在一条 tx 内,盗取你钱包内所有资产,包括原生资产 SOL。所以务必小心,钱包提交签名前,看清具体签名内容 21、Solana 的“开户费” Solana 程序和数据分离的特性,逻辑和 EVM 完全不同。由此导致你需要经常性支付一笔小额“开户费”, SPL-20 的代币,开户费大约 0.002 SOL, NFT 贵一些,大约 0.005 SOL 也由此,如果你要给别人账户发送一个土狗币/NFT,假如对方账户未曾开立此账户(每个不同的币,都需要开设一个单独账户),那么在你发送土狗币时,也要由你支付这笔开户费 而对方可以选择 close account 拿回这笔开户费(其实是租金) 所以,想要给1万个账户发送土狗币,再关闭账户“赚租金”这种套利的好事,是不存在的 a: @StepFinance_ 收费 5%,有点类似Solana 生态的 DeBank b: @solincinerator 收费 0.00004~0.00335 SOL 之间(具体请看对方网站 FAQ 部分,不同类型账户收费不同) c: 使用官方 CLI 工具,免费 Burn Tokens & Close Accounts 注意:Solana 原生支持 Burn 燃烧代币,以及 关闭不需要的账户退租金 此操作不可逆,务必小心操作 ## Publication Information - [想住大房子的java程序员](https://paragraph.com/@java-3/): Publication homepage - [All Posts](https://paragraph.com/@java-3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@java-3): Subscribe to updates