摘要:課程概述本課程適合希望開(kāi)發(fā)自己的專有區(qū)塊鏈的語(yǔ)言工程師,課程內(nèi)容如下第一章課程簡(jiǎn)介簡(jiǎn)單介紹的定位特點(diǎn)以及對(duì)于開(kāi)發(fā)者而言與以太坊的區(qū)別。課程地址區(qū)塊鏈開(kāi)發(fā)詳解
簡(jiǎn)介
tendermint是一個(gè)開(kāi)源的完整的區(qū)塊鏈實(shí)現(xiàn),可以用于公鏈或聯(lián)盟鏈,其官方定位 是面向開(kāi)發(fā)者的區(qū)塊鏈共識(shí)引擎:
與其他區(qū)塊鏈平臺(tái)例如以太坊或者EOS相比,tendermint最大的特點(diǎn)是其差異化的定位: 盡管包含了區(qū)塊鏈的完整實(shí)現(xiàn),但它卻是以SDK的形式將這些核心功能提供出來(lái),供開(kāi)發(fā)者 方便地定制自己的專有區(qū)塊鏈:
tendermint的SDK中包含了構(gòu)造一個(gè)區(qū)塊鏈節(jié)點(diǎn)旳絕大部分組件,例如加密算法、共識(shí)算法、 區(qū)塊鏈存儲(chǔ)、RPC接口、P2P通信等等,開(kāi)發(fā)人員只需要根據(jù)其應(yīng)用開(kāi)發(fā)接口 (Application Blockchain Communication Interface)的要求實(shí)現(xiàn)自己 的應(yīng)用即可。
ABCI是開(kāi)發(fā)語(yǔ)言無(wú)關(guān)的,開(kāi)發(fā)人員可以使用自己喜歡的任何語(yǔ)言來(lái)開(kāi)發(fā)基于tendermint的 專用區(qū)塊鏈。不過(guò)由于tendermint本身是采用go語(yǔ)言開(kāi)發(fā)的,因此用go開(kāi)發(fā)ABCI應(yīng)用的一個(gè)額外好處 就是,你可以把tendermint完整的嵌入自己的應(yīng)用,干凈利落地交付一個(gè)單一的可執(zhí)行文件。
tendermint的共識(shí)算法在技術(shù)方面,tendermint引以為傲的是其共識(shí)算法 —— 世界上第一個(gè)可以應(yīng)用于公鏈的拜占庭 容錯(cuò)算法。tendermint曾于2016年國(guó)際區(qū)塊鏈周獲得最具創(chuàng)新獎(jiǎng),并在Hyperledger的雨燕(Burrow) 等諸多產(chǎn)品中被采納為共識(shí)引擎。你可以點(diǎn)擊 這里 查看其應(yīng)用案例。
tendermint采用的共識(shí)機(jī)制屬于一種權(quán)益證明( Proof Of Stake)算法,一組驗(yàn)證人 (Validator)代替了礦工(Miner)的角色,依據(jù)抵押的權(quán)益比例輪流出塊:
由于避免了POW機(jī)制,tendermint可以實(shí)現(xiàn)很高的交易吞吐量。根據(jù)官方的說(shuō)法,在 合理(理想)的應(yīng)用數(shù)據(jù)結(jié)構(gòu)支持下,可以達(dá)到42000交易/秒,引文參考 這里。 不過(guò)在現(xiàn)實(shí)環(huán)境中,部署在全球的100個(gè)節(jié)點(diǎn)進(jìn)行共識(shí)溝通,實(shí)際可以達(dá)到1000交易/秒。
tendermint同時(shí)是拜占庭容錯(cuò)的(Byzantine Fault Tolerance),因此對(duì)于3f+1個(gè) 驗(yàn)證節(jié)點(diǎn)組成的區(qū)塊鏈,即使有f個(gè)節(jié)點(diǎn)出現(xiàn)拜占庭錯(cuò)誤,也可以保證全局正確共識(shí)的達(dá)成。同時(shí) 在極端環(huán)境下,tendermint在交易安全與停機(jī)風(fēng)險(xiǎn)之間選擇了安全,因此當(dāng)超過(guò)f個(gè)驗(yàn)證節(jié)點(diǎn)發(fā)生故障時(shí),系統(tǒng)將停止工作。
什么是拜占庭錯(cuò)誤?簡(jiǎn)單的說(shuō)就是任何錯(cuò)誤:既包括節(jié)點(diǎn)宕機(jī)、也包括惡意節(jié)點(diǎn)的欺騙和攻擊。
tendermint共識(shí)機(jī)制的另一個(gè)特點(diǎn)就是其共識(shí)的最終確定性:一旦共識(shí)達(dá)成就是真的達(dá)成, 而不是像比特幣或以太坊的共識(shí)是一種概率性質(zhì)的確定性,還有可能在將來(lái)某個(gè)時(shí)刻失效。 因此在tendermint中不會(huì)出現(xiàn)區(qū)塊鏈分叉的情況。
課程地址:
http://xc.hubwiz.com/course/5bdec63ac02e6b6a59171df3
tendermint的定位決定了在最終交付的節(jié)點(diǎn)軟件分層中,應(yīng)用程序占有相當(dāng)部分的分量。 讓我們通過(guò)與以太坊的對(duì)比來(lái)更好地理解這一點(diǎn):
在上圖中,tendermint結(jié)構(gòu)中的abci應(yīng)用和以太坊結(jié)構(gòu)中的智能合約,都是由用戶代碼實(shí)現(xiàn)的。 顯然,ABCI應(yīng)用大致與EVM+合約的組合相匹配。
在以太坊中,節(jié)點(diǎn)是一個(gè)整體,開(kāi)發(fā)者提供的智能合約則運(yùn)行在受限的虛擬機(jī)環(huán)境中;而在 tendermint中,并不存在虛擬機(jī)這一層,應(yīng)用程序是一個(gè)標(biāo)準(zhǔn)的操作系統(tǒng)進(jìn)程,不受任何 的限制與約束 —— 聽(tīng)起來(lái)這很危險(xiǎn),但當(dāng)你考慮下使用tendermint的目的是構(gòu)建專有的區(qū)塊鏈 時(shí),這種靈活性反而更有優(yōu)勢(shì)了。
事實(shí)上,tendermint留下的應(yīng)用層空間如此之大,以至于你完全可以在ABCI應(yīng)用中實(shí)現(xiàn)一個(gè) EVM,然后提供solidity合約開(kāi)發(fā)能力,這就是超級(jí)賬本的 Burrow 做的事情。
課程概述本課程適合希望開(kāi)發(fā)自己的專有區(qū)塊鏈的go語(yǔ)言工程師,課程內(nèi)容如下:
第一章 課程簡(jiǎn)介
簡(jiǎn)單介紹tendermint的定位、特點(diǎn)以及對(duì)于開(kāi)發(fā)者而言tendermint與以太坊的區(qū)別。
第二章 初識(shí)tendermint
tendermint本身是一個(gè)完整的區(qū)塊鏈實(shí)現(xiàn),本章介紹tendermint的主要組成部分,包括 節(jié)點(diǎn)軟件的使用、最小ABCI應(yīng)用編寫以及RPC API開(kāi)發(fā)接口。
第三章 應(yīng)用開(kāi)發(fā)模型
tendermint是一個(gè)標(biāo)準(zhǔn)的狀態(tài)機(jī)復(fù)制模型的實(shí)現(xiàn),因此基于tendermint的應(yīng)用就是一個(gè) 標(biāo)準(zhǔn)的分布式狀態(tài)機(jī)。本章通過(guò)一個(gè)分布式計(jì)數(shù)器的開(kāi)發(fā)來(lái)學(xué)習(xí)基于ABCI接口的應(yīng)用開(kāi)發(fā)。
第四章 去中心化身份識(shí)別機(jī)制
本章介紹如何基于非對(duì)稱加密技術(shù)實(shí)現(xiàn)去中心化的身份識(shí)別。課程的內(nèi)容包括非對(duì)稱密鑰 的生成、身份驗(yàn)證原理與實(shí)現(xiàn)、哈希地址計(jì)算等。
第五章 案例:代幣發(fā)行
代幣是區(qū)塊鏈的一種典型應(yīng)用。在這一章里我們通過(guò)發(fā)行代幣來(lái)進(jìn)一步深入學(xué)習(xí)基于tendermint 的狀態(tài)機(jī)應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)。
第六章 代幣案例:使用默克爾樹(shù)
merkle樹(shù)是區(qū)塊鏈中經(jīng)常使用的一種數(shù)據(jù)結(jié)構(gòu),在這一章我們將學(xué)習(xí)其原理、用途與使用方法, 并使用它增強(qiáng)代幣案例的功能。
第七章 代幣案例:使用多版本狀態(tài)庫(kù)
在區(qū)塊鏈的每個(gè)高度都對(duì)應(yīng)著應(yīng)用狀態(tài)的特定歷史快照。本章介紹如何使用tendermint的 多版本狀態(tài)庫(kù)iavl來(lái)實(shí)現(xiàn)應(yīng)用狀態(tài)的管理。
第八章 多節(jié)點(diǎn)組網(wǎng)
本章介紹如何進(jìn)行多個(gè)tendermint節(jié)點(diǎn)/應(yīng)用旳組網(wǎng)。
課程地址:tendermint區(qū)塊鏈開(kāi)發(fā)詳解
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/24374.html
摘要:以太坊背后的主要人物是。以太坊通過(guò)在區(qū)塊鏈上引入智能合約,徹底改變了加密世界。以太坊使用名為以太坊虛擬機(jī)的虛擬機(jī)執(zhí)行其智能合約。以太坊最終將利用協(xié)議轉(zhuǎn)向權(quán)益證明。截至目前,以太坊在可擴(kuò)展性方面都失敗了。 不同的區(qū)塊鏈智能合約和區(qū)塊鏈技術(shù)現(xiàn)在風(fēng)靡一時(shí)。越來(lái)越多的人出于某種原因試圖進(jìn)入這個(gè)神奇的世界。如果你是這項(xiàng)技術(shù)的新手并正在尋找基于區(qū)塊鏈的開(kāi)發(fā)平臺(tái)的快速入門,那么本指南非常適合你。我們...
摘要:是企業(yè)與區(qū)塊鏈相遇的地方。的框架旨在成為開(kāi)發(fā)區(qū)塊鏈解決方案的支柱。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。 如果你想將區(qū)塊鏈合并到一個(gè)Java項(xiàng)目中,現(xiàn)在我們來(lái)看看就是這個(gè)細(xì)分領(lǐng)域中三個(gè)最大的OSS玩家。 好的伙計(jì)們,我們都聽(tīng)說(shuō)過(guò)比特幣,以太坊或其他加密貨幣,其中有一些時(shí)髦的名字圍繞著我們常見(jiàn)的新聞,但我們作為Java開(kāi)發(fā)人員知道如何輕松地與這些區(qū)塊鏈技術(shù)進(jìn)行交互嗎?以...
摘要:我們目前正處于一個(gè)新興的區(qū)塊鏈開(kāi)發(fā)行業(yè)中。,一種在以太坊開(kāi)發(fā)人員中流行的新的簡(jiǎn)單編程語(yǔ)言,因?yàn)樗怯糜陂_(kāi)發(fā)以太坊智能合約的語(yǔ)言。它是全球至少萬(wàn)開(kāi)發(fā)人員使用的世界上最流行的編程語(yǔ)言之一。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。 我們目前正處于一個(gè)新興的區(qū)塊鏈開(kāi)發(fā)行業(yè)中。區(qū)塊鏈技術(shù)處于初期階段,然而這種顛覆性技術(shù)已經(jīng)成功地風(fēng)靡全球,并且最近經(jīng)歷了一場(chǎng)與眾不同的繁榮。由于許多...
摘要:在新智能合約的構(gòu)造函數(shù)中,將引用我們的合約工廠的地址。以太坊,主要是針對(duì)工程師使用進(jìn)行區(qū)塊鏈以太坊開(kāi)發(fā)的詳解。以太坊入門教程,主要介紹智能合約與應(yīng)用開(kāi)發(fā),適合入門。這里是原文用工廠模式管理多個(gè)智能合約 我們寫了一份小的計(jì)算合約作為Hello World。如果我們可以創(chuàng)建一個(gè)允許用戶創(chuàng)建自己的計(jì)數(shù)器的合約怎么辦? showImg(https://segmentfault.com/img/...
摘要:你首先編寫基本智能合約并告知你的新智能合約將從基礎(chǔ)合約繼承。這些函數(shù)和狀態(tài)變量只能在內(nèi)部訪問(wèn)即從當(dāng)前合約或從中派生的合約中,而其他情況不使用它。私有函數(shù)和狀態(tài)變量?jī)H對(duì)定義它們的智能合約可見(jiàn),而不是在派生合約中可見(jiàn)。這里是原文語(yǔ)言開(kāi)發(fā)中的繼承 我們已經(jīng)探索了很多主題,在編寫智能合約時(shí)我們發(fā)現(xiàn)經(jīng)常使用相同的模式:例如,智能合約具有在構(gòu)造函數(shù)中設(shè)置的所有者,然后生成修改器以便僅讓所有者使用一...
閱讀 3268·2023-04-25 22:47
閱讀 3778·2021-10-11 10:59
閱讀 2313·2021-09-07 10:12
閱讀 4269·2021-08-11 11:15
閱讀 3440·2019-08-30 13:15
閱讀 1757·2019-08-30 13:00
閱讀 976·2019-08-29 14:02
閱讀 1691·2019-08-26 13:57