每个区块链网络,都有网络层、共识层、应用层的区分。每个区块链网络的特性不同,也有事因为在不同的分层里的设计思路不一样。本文中,我们将整理Solana网络的运行逻辑,可以通过这些资料了解到为什么Solana会在以太坊2.0还没上线的时候,会比以太坊好用。
以太坊的总帐本在1.0链上,是由矿工维护的,在2.0里,矿工变成验证者,验证者用计算设备建立验证器代替了原来的矿机。Solana也是通过验证者保护总帐本的,不过验证者的在形成共识的算法不太一样。通过下面的顺序,可以了解到共识形成的过程。
Solana集群
Solana集群是一组验证人,共同保持账本的完整性,存在多个集群。
创建集群
在启动任何验证节点之前,首先需要创建一个创世配置。创世配置会配置一个具备引导验证能力的节点,第二个验证节点可联系引导验证节点来注册为一个验证节点。然后,其他验证节点将在集群的任何已注册成员中继续注册。
金色午报 | 10月8日午间重要动态一览:7:00-12:00关键词:比特币波动率、NFT、Gold Miner、Maker
1. 2020年Q3共进行近9亿美元的风投交易,DeFi相关交易占,近两成。
2. 高盛前高管:比特币波动率快速下降或表示将有重大价格调整。
3. 「Portraits of a Mind」系列第21幅作品拍得13.125万美元,创下NFT拍卖价格最高记录。
4. 跑路项目Gold Miner(黄金矿工)已追查到重要实名证据。
5. Maker将进行第一次MKR回购。
6. 市场小幅震荡,BTC日内涨0.05%,暂报10637美元。[2020/10/8]
验证节点会收到领导者的所有条目,并提交投票以确认这些条目的有效性。投票后,验证节点需要存储这些条目。不过一旦验证节点发现存在足够多的副本,它将删除自身的副本。
金色财经挖矿数据播报 | ETH今日全网算力上涨1.49%:金色财经报道,据蜘蛛矿池数据显示:
BTC全网算力124.750EH/s,挖矿难度15.78T,目前区块高度638059,理论收益0.00000826/T/天。
ETH全网算力191.348TH/s,挖矿难度2393.94T,目前区块高度10409131,理论收益0.00847450/100MH/天。
BSV全网算力2.009EH/s,挖矿难度0.35T,目前区块高度642574,理论收益0.00044794/T/天。
BCH全网算力2.873EH/s,挖矿难度0.40T,目前区块高度642797,理论收益0.00031329/T/天。[2020/7/7]
加入集群
验证节点通过发送到控制台(control?plane)的注册消息进入集群。控制台使用八卦(gossip)协议实现,这意味着节点可以向任何现有节点注册,并期望其注册传播到集群中的所有节点。一个节点可以确保它最终拥有与每个其他节点相同的信息,但任何一个节点都无法审查该信息。所有节点同步所需的时间与参与群集节点数的平方成正比。
金色财经挖矿数据播报 | BSV今日全网算力下降8.74%:金色财经报道,据蜘蛛矿池数据显示:
ETH全网算力176.623TH/s,挖矿难度2217.98T,目前区块高度9893458,理论收益0.00783867/100MH/天。
BTC全网算力114.939EH/s,挖矿难度14.72T,目前区块高度626473,理论收益0.00001708/T/天。
BSV全网算力1.400EH/s,挖矿难度0.18T,目前区块高度631054,理论收益0.00064287/T/天。
BCH全网算力1.754EH/s,挖矿难度0.25T,目前区块高度631293,理论收益0.00051306/T/天。[2020/4/18]
将交易发送到集群
客户端将交易发送到任何验证节点的交易处理单元(TPU)端口。如果该节点处于验证节点角色,则它将交易转发给指定的领导者。如果处于领导者角色,则该节点将传入的事务捆绑在一起,对其打上时间戳,来创建一个条目(entry),然后将其推送到集群的数据中心(dataplane)。进入数据中心后,交易将由验证节点进行验证,从而将交易有效地添加到账本中。
金色相对论 | 文浩:区块链远未到熊市阶段:在本期金色相对论中,比太钱包创始人、比特派钱包开发者文浩表示:现在的区块链行业远未到真正“熊”的阶段,至少离3年前的熊市状态还差得很远。实际上现在的区块链创业团队尚未有“熊市”的风险意识,以行业内状况来看,当前情况下,各个区块链圈内企业还是以扩充、膨胀为主,远未到“熊”的程度。而创业公司应该对熊市有更为清醒的认识,把握好公司节奏,别按照牛市思维去做事,否则真的“熊”来了,可能会撑不住。[2018/9/14]
确认交易
Solana集群能够在亚秒级的时间内确认(confirmation)最多150个节点,并要计划扩展到成千上万个节点。一旦完全实施,确认时间预计只会随着验证节点数量的对数而增加,而对数的基数又很高。网络增长到一定规模后,就会变得太慢而无法实现亚秒级确认。将消息发送到所有节点所花费的时间与节点数的平方成正比。如果区块链想要获得低确认率并尝试使用网络来做到这一点,它将被迫集中到少数几个节点上。
辟谣!网传金色财经官方微博发布利空消息为不实信息:今日,网络上流传有人通过软件来制作假的金色财经官方微博消息图片,冒充金色财经散布不实信息,吸引人们眼球。金色财经在此声明,金色财经作为区块链行业第一媒体,始终秉持着媒体的原则,以快速、全面、专业的精神为区块链从业者、用户传递行业信息,请用户不要盲目相信网络传言,注意规避风险。
同时我们不排除将要追究此次恶意诽谤金色财经的策划人的法律责任,以正视听。[2018/1/15]
所以可以使用以下技术组合来实现可扩展的确认:
使用VDF样本对交易打上时间戳并签名。将交易分为几批,将每笔交易发送到单独的节点,同时每个节点都与对等节点共享其批次。递归地重复上一步,直到所有节点都具有所有批次。
Solana以固定的时间间隔(称为插槽)轮换领导者。每个领导者只能在其分配的时段内产生条目。领导者因此对交易加上时间戳记,以便验证节点可以查找指定领导者的公钥。然后,领导者对时间戳进行签名,以便验证节点验证签名,证明签名者是指定领导者公钥的所有者。
接下来,将交易分成批处理,以便节点可以将交易发送给多方,而无需进行多份复制。例如,如果领导者需要将60笔交易发送到6个节点,则它将把60笔交易的集合分成10笔交易的批次,并向每个节点发送一个交易。这能够让领导者将60笔交易放在网络上,而不是每个节点60笔交易。接着,每个节点都与对等节点共享其批次。一旦节点收集了全部6个批次,它将重建60个交易的原始集合。
这种技术可以被称为(涡轮区块传播)Turbine?Block?Propogation。
快速、可靠的同步是Solana实现超高吞吐量的最大原因。Solana采取了历史证明PoH算法。通过带有加密证明“时间戳”的领导节点证明自上次确认以来,确实已经过了一段时间。以证明所有哈希到证明中的数据肯定都是在证明之前发生的。然后该节点将新区块分享给验证节点,它们能够验证这些证据。
区块可以按照任何顺序甚至延迟好几年才传到验证节点那里。通过这种可靠的同步保证,Solana能够将区块分解成更小的批量交易,称为条目(entries)。在达成任何共识之前,条目都会实时传输给验证节点。
在技术的角度,Solana从来都没有发送区块,但是会使用这个词语来描述验证节点对条目进行投票,最终取得确认。这样,Solana的确认时间就可以达到800毫秒。在这个模式下,如果对某个事件无法达成共识,节点只需要简单地回滚其状态。
领导者轮换
每个验证节点使用同一种算法来选择预期的领导者。当验证节点收到一个新的签名账本条目时,可以肯定某条目是来自预期的领导者。分配给每位领导者的插槽顺序称为leader?schedule(领导者安排表)。
一个验证节点会拒绝未经过插槽领导者签名的区块。所有插槽领导者的身份列表称为领导者安排表。领导者安排表是通过本地定期重新计算产生的。它指派插槽领导者持续一段称为epoch(纪元)的时间。安排表必须早于它分配的时间段,这样它保证了计算计划的账本状态最后能够确定。该持续时间称为领导者安排表偏移时间。Solana将偏移时间设置为直到下一个epoch的插槽持续时间。也就是说,一个epoch的领导者计划通过上一个epoch开始时的账本状态来计算得到。一个纪元的偏移量是比较随意的,并且假定时间足够长,使所有验证节点都将在生成下一个计划之前确定其账本状态。集群可以选择缩短偏移时间,来缩短质押变化与领导者计划更新之间的时间。
在没有分区的情况下运行时间比一个epoch长的时候,只有在根分叉的epoch边界才能生成安排表。由于安排表用于下一个纪元,因此在下一个纪元之前,任何质押给根分叉的新质押都不会被激活。用于生成领导者计划的区块是跨过纪元边界的第一个区块。
如果分区比一个epoch时间短,集群将按以下方式运作:
验证节点在投票时不断更新自己的根分叉。
每次在纪元边缘的插槽高度的时候,验证节点将更新其领导者安排表。
写在最后
正是因为对共识的改动,Solana出世的时候就以一个高性能公链的角色面对市场,其使用的类权益证明修改版PoH是在权益证明性能之上再次修订的,目标就是性能更高,这样做的目的也是即使以太坊2.0出现之后,网络仍旧有竞争力。
不过这种共识体现的竞争力是在应用上,而不是在本身技术攻坚上。在某些信仰纯粹的技术人员眼中,Solana可能有些过于中心化,只是在庞大的市场里,区块链网络面对不同受众,会体现出不同的优劣,也能得到不同的发展。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。