来源:登链社区
这是一个系列文章介绍Solana开发。
Solana是一个高性能的Blockchain平台,通过独特的共识机制和账户模型实现高吞吐量和低延。
作为系列文章第一篇,这篇文章主要介绍Solana开发前需要了解的一些知识:
Solana诞生背景
Solana是如何出块(共识运作)
Solana核心概念:账户模型、PDA、交易及费用、集群等。Solana诞生背景
Solana于2017年由AnatolyYakovenko创立。Anatoly选择名为Solana的名字,以致敬他们在工作于高通期间住和冲浪了三年的圣地亚哥北部的一个小海滩城镇SolanaBeach。
在创立Solana之前,Anatoly在高通、Mesosphere和Dropbox工作过多年,在高性能网络和分布式系统领域有着丰富经验。
他认识到Blockchain在可扩展性方面的瓶颈限制了其大规模应用的潜力。受到分布式系统中时间同步技术的启发,他提出了ProofofHistory(PoH)的概念。用于在不信任彼此的计算机之间进行时间同步。
我们开看看Solana如何应用PoH实现验证者之间的高效同步的。Solana共识- 如何出块
注:Solana共识算法文档有些过时,这部分的内容是参考深入Solana共识加上我理解。
Solana是一条权益证明(PoS)Blockchain,共识算法遵循两阶段:1.选出验证者出块2.其他验证者对块进行投票,积累了足够多投票之后,区块被最终确认。选出验证者
在Solana的协议中,有两个重要时间间隔相关的词:Epoch与时隙(slot):
时隙(slot):验证者生成区块的时间单位。每个时隙可以生成一个区块,每个时隙持续400毫秒。
Epoch:在每个Epoch开始时,Solana网络会根据质押权重和之前的区块随机选举出一个验证者(称为领导者Leader)序列,这个领导者序列负责在该Epoch内出块,领导者序列在此期间保持固定,每个领导者可以连续处理4个Slot(即出4个块),每个Epoch大约持续两天(包含432,000个Slot)。直到下一个Epoch重新产生领导者Leader。
PoH通过创建一系列加密哈希(SHA256算法),每次哈希计算都需要使用前一个哈希值,这样就可以确保下一个哈希总是在上一个哈希之后发生,因此POH哈希链结合介意数据就可以确定交易次序。
区块的验证过程包括验证区块元数据和重新计算PoH哈希,会验证并重放来自区块的所有交易,并更新账本。
验证通过后,通过投票表示验证者对一个区块的承诺,验证者持有的委托权益(币)越多,投票的权重就越大。
通常,验证者会选择最重的链出块和投票,如果出现了前一个领导者的区块未能到达当前领导者,则可能会出现分叉的情况:
我们发送到Solana网络中的一笔交易包括四个部分:
一个或多个指令(instructions)
一个要读取或写入的账户数组(account_keys)
一个或多个签名(signatures)
最近的区块哈希(recent_blockhash)
一个指令是Solana上最小的执行逻辑。指令指定了执行程序、涉及的所有账户和操作数据。指令调用程序更新状态(例如,调用Tokens程序将Tokens从你的帐户转移到另一个帐户),程序解释指令中的数据,并对指定账户进行操作。
指令类似于Ethereum智能合约上的函数调用。
交易中多个指令的执行是原子性的,所有指令要么一起成功,要么一起失败。
每个集群都独立运行,完全不知道其他集群的存在。发送到错误集群的交易将被拒绝,以确保每个运行环境的完整性。
本文介绍了Solana的核心概念,包括其账户模型、出块机制、交易记费用结构。
理解这些基础知识,接下来我们就要开始上手Solana开发应用了。参考文章
Solana是如何工作的-工作原理
深入Solana共识-从分叉到最终确定性
免责声明:Solana 开发系列 1 —— 理解 Solana文章转发自互联网,版权归其所有。
文章内容不代表本站立场和任何投资暗示。加密货币市场极其波动,风险很高,可能不适合所有投资者。在投资加密货币之前,请确保自己充分了解市场和投资的风险,并考虑自己的财务状况和风险承受能力。此外,请遵循您所在国家的法律法规,以及遵守交易所和钱包提供商的规定。对于任何因使用加密货币所造成的投资损失或其他损失,本站不承担任何责任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM