來源:登鏈社區(qū)
這是一個(gè)系列文章介紹Solana開發(fā)。
Solana是一個(gè)高性能的Blockchain平臺(tái),通過獨(dú)特的共識(shí)機(jī)制和賬戶模型實(shí)現(xiàn)高吞吐量和低延。
作為系列文章第一篇,這篇文章主要介紹Solana開發(fā)前需要了解的一些知識(shí):
Solana誕生背景
Solana是如何出塊(共識(shí)運(yùn)作)
Solana核心概念:賬戶模型、PDA、交易及費(fèi)用、集群等。Solana誕生背景
Solana于2017年由AnatolyYakovenko創(chuàng)立。Anatoly選擇名為Solana的名字,以致敬他們?cè)诠ぷ饔诟咄ㄆ陂g住和沖浪了三年的圣地亞哥北部的一個(gè)小海灘城鎮(zhèn)SolanaBeach。
在創(chuàng)立Solana之前,Anatoly在高通、Mesosphere和Dropbox工作過多年,在高性能網(wǎng)絡(luò)和分布式系統(tǒng)領(lǐng)域有著豐富經(jīng)驗(yàn)。
他認(rèn)識(shí)到Blockchain在可擴(kuò)展性方面的瓶頸限制了其大規(guī)模應(yīng)用的潛力。受到分布式系統(tǒng)中時(shí)間同步技術(shù)的啟發(fā),他提出了ProofofHistory(PoH)的概念。用于在不信任彼此的計(jì)算機(jī)之間進(jìn)行時(shí)間同步。
我們開看看Solana如何應(yīng)用PoH實(shí)現(xiàn)驗(yàn)證者之間的高效同步的。Solana共識(shí)- 如何出塊
注:Solana共識(shí)算法文檔有些過時(shí),這部分的內(nèi)容是參考深入Solana共識(shí)加上我理解。
Solana是一條權(quán)益證明(PoS)Blockchain,共識(shí)算法遵循兩階段:1.選出驗(yàn)證者出塊2.其他驗(yàn)證者對(duì)塊進(jìn)行投票,積累了足夠多投票之后,區(qū)塊被最終確認(rèn)。選出驗(yàn)證者
在Solana的協(xié)議中,有兩個(gè)重要時(shí)間間隔相關(guān)的詞:Epoch與時(shí)隙(slot):
時(shí)隙(slot):驗(yàn)證者生成區(qū)塊的時(shí)間單位。每個(gè)時(shí)隙可以生成一個(gè)區(qū)塊,每個(gè)時(shí)隙持續(xù)400毫秒。
Epoch:在每個(gè)Epoch開始時(shí),Solana網(wǎng)絡(luò)會(huì)根據(jù)質(zhì)押權(quán)重和之前的區(qū)塊隨機(jī)選舉出一個(gè)驗(yàn)證者(稱為領(lǐng)導(dǎo)者Leader)序列,這個(gè)領(lǐng)導(dǎo)者序列負(fù)責(zé)在該Epoch內(nèi)出塊,領(lǐng)導(dǎo)者序列在此期間保持固定,每個(gè)領(lǐng)導(dǎo)者可以連續(xù)處理4個(gè)Slot(即出4個(gè)塊),每個(gè)Epoch大約持續(xù)兩天(包含432,000個(gè)Slot)。直到下一個(gè)Epoch重新產(chǎn)生領(lǐng)導(dǎo)者Leader。
PoH通過創(chuàng)建一系列加密哈希(SHA256算法),每次哈希計(jì)算都需要使用前一個(gè)哈希值,這樣就可以確保下一個(gè)哈希總是在上一個(gè)哈希之后發(fā)生,因此POH哈希鏈結(jié)合介意數(shù)據(jù)就可以確定交易次序。
區(qū)塊的驗(yàn)證過程包括驗(yàn)證區(qū)塊元數(shù)據(jù)和重新計(jì)算PoH哈希,會(huì)驗(yàn)證并重放來自區(qū)塊的所有交易,并更新賬本。
驗(yàn)證通過后,通過投票表示驗(yàn)證者對(duì)一個(gè)區(qū)塊的承諾,驗(yàn)證者持有的委托權(quán)益(幣)越多,投票的權(quán)重就越大。
通常,驗(yàn)證者會(huì)選擇最重的鏈出塊和投票,如果出現(xiàn)了前一個(gè)領(lǐng)導(dǎo)者的區(qū)塊未能到達(dá)當(dāng)前領(lǐng)導(dǎo)者,則可能會(huì)出現(xiàn)分叉的情況:
我們發(fā)送到Solana網(wǎng)絡(luò)中的一筆交易包括四個(gè)部分:
一個(gè)或多個(gè)指令(instructions)
一個(gè)要讀取或?qū)懭氲馁~戶數(shù)組(account_keys)
一個(gè)或多個(gè)簽名(signatures)
最近的區(qū)塊哈希(recent_blockhash)
一個(gè)指令是Solana上最小的執(zhí)行邏輯。指令指定了執(zhí)行程序、涉及的所有賬戶和操作數(shù)據(jù)。指令調(diào)用程序更新狀態(tài)(例如,調(diào)用Tokens程序?qū)okens從你的帳戶轉(zhuǎn)移到另一個(gè)帳戶),程序解釋指令中的數(shù)據(jù),并對(duì)指定賬戶進(jìn)行操作。
指令類似于Ethereum智能合約上的函數(shù)調(diào)用。
交易中多個(gè)指令的執(zhí)行是原子性的,所有指令要么一起成功,要么一起失敗。
每個(gè)集群都獨(dú)立運(yùn)行,完全不知道其他集群的存在。發(fā)送到錯(cuò)誤集群的交易將被拒絕,以確保每個(gè)運(yùn)行環(huán)境的完整性。
本文介紹了Solana的核心概念,包括其賬戶模型、出塊機(jī)制、交易記費(fèi)用結(jié)構(gòu)。
理解這些基礎(chǔ)知識(shí),接下來我們就要開始上手Solana開發(fā)應(yīng)用了。參考文章
Solana是如何工作的-工作原理
深入Solana共識(shí)-從分叉到最終確定性
免責(zé)聲明:Solana 開發(fā)系列 1 —— 理解 Solana文章轉(zhuǎn)發(fā)自互聯(lián)網(wǎng),版權(quán)歸其所有。
文章內(nèi)容不代表本站立場(chǎng)和任何投資暗示。加密貨幣市場(chǎng)極其波動(dòng),風(fēng)險(xiǎn)很高,可能不適合所有投資者。在投資加密貨幣之前,請(qǐng)確保自己充分了解市場(chǎng)和投資的風(fēng)險(xiǎn),并考慮自己的財(cái)務(wù)狀況和風(fēng)險(xiǎn)承受能力。此外,請(qǐng)遵循您所在國(guó)家的法律法規(guī),以及遵守交易所和錢包提供商的規(guī)定。對(duì)于任何因使用加密貨幣所造成的投資損失或其他損失,本站不承擔(dān)任何責(zé)任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM