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