您好,登錄后才能下訂單哦!
本篇內容主要講解“Tendermint區塊鏈是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Tendermint區塊鏈是什么”吧!
IOV Weave SDK是一個基于Tendermint共識引擎的區塊鏈開發框架,Weave提供了很多常用功能的預置模塊用于你自己的區塊鏈,同時也支持自定義擴展。
Weave的一些亮點包括基于Merkle樹的數據存儲、高度靈活的擴展支持系統以及核心邏輯的定制(例如手續費機制及簽名驗證機制)。Weave也支持利用創世文件進行定制的能力。此外,在鍵-值庫之上,Weave還提供了一個簡單的對象關系映射層(ORM),可以支持二級索引。Weave還包含了動態遷移功能,利用鏈上交易就可以切換某些邏輯模塊的啟用或關閉。
要快速掌握Tendermint區塊鏈開發,推薦匯智網的Tendermint區塊鏈開發詳解.。
Weave開發框架內置了開發一個應用區塊鏈所需的常用功能模塊:
Cash:錢包模塊,支持代幣及手續費扣除
Sigs:簽名模塊,用于驗證ed25519簽名
Multisig:多簽模塊,用于多簽名合約的支持,允許修改成員隸屬關系
AtomicSwap:原子交換模塊,支持跨鏈的原子交換
Escrow:托管模塊,仲裁者可以安全地持有代幣,或者基于超時規則釋放托管資金
Governance:治理模塊,管理鏈上提議的治理規則的選舉,或者直接修改應用參數
PaymentChannels:單向支付通道模塊,實現微支付和鏈上結算
Distribution:分配模塊,利用配置信息在多個參與者之間分配收入,可用于分配手續費收入
Batch:批處理模塊,用于將多個交易整合為單一原子操作,一個應用場景就是單一鏈上交換
Validators:驗證人模塊,用于PoA共識上下文中的驗證人集合更新,使用多簽或鏈上選舉模塊
Username:用戶名模塊,將用戶名映射為鏈上地址,支持反向查詢
MessageFee:消息手續費模塊,用于對抗垃圾信息
Utils:工具模塊,包含一組常用的輔助功能
要使用Weave開發框架,需要兩個組件:
blog:weave提供的定制ABCI博客應用
tendermint:區塊鏈共識引擎
如果你還沒接觸過Tendermint,建議參考匯智網的Tendermint開發教程。
Weave的應用通信框架如下:
+---------+ +------------+ +----------+ | blog | <- (local) ABCI -> | Tendermint | <- websocket -> | client | +---------+ +------------+ +----------+
blog和tendermint運行在同一臺計算機上,通過二進制TCP/IP協議或UNIX套接字通信,這兩者結合在一起構成了區塊鏈。在實際的生產環境中,你可能會有多個計算機運行這一后端,彼此之間通過自調節的p2p gossip協議通信來實現狀態的復制。對于應用開發而言,一個節點就夠了,但是單一節點是沒有容錯能力的。
你可以使用任何websocket客戶端連接tendermint的rpc,不過我們還是推薦使用IOV core,畢竟它和Weave是同一家的產品,對Weave開發框架的支持更好。
在安裝上述兩個組件之前,需要在你的計算機上先安裝如下組件:
golang 1.11.4+
tendermint 0.31.5
weave
docker
然后克隆blog代碼庫并根據兼容表檢出兼容的版本。例如:
# cd into to your workspace that is not in your $GOPATH git clone https://github.com/iov-one/blog-tutorial cd blog-tutorial make install # test it built properly tendermint version # 0.3X.X-YYYYYYYY blog version # v0.1X.X-YYYYYYYY
在啟動區塊鏈之前,我們需要利用創世區塊設置初始狀態。tendermint和blog都有一個目錄來保存配置信息和內部數據庫狀態。默認目錄為:~/.tendermint
和 ~/.blog
。不過為了簡化考慮,我們將所有配置信息放到同一個目錄。
首先,創建一個默認的創世文件、用來簽名區塊的私鑰以及默認的配置文件:
# make sure you really don't care what was in this directory and... rm -rf ~/.blog # initialize state on default folder ~/.blog make inittm
你可以瀏覽一下這個目錄,其中最重要的是~/.blog/config/genesis.json
,在配置文件~/.blog/config/config.toml
中也包含了很多選項。
在啟動區塊鏈之前,我們要為剛創建的賬戶添加一批代幣,同時也要啟用索引器,這樣我們就可以按id搜索交易了。但是我們沒有直接修改配置文件,而是用如下的命令:
blog init CASH bech42:tiov1qrw95py2x7fzjw25euuqlj6dq6t0jahe7rh8wp
確保你輸入的地址和上面一致。這個賬戶現在就有代幣了。在運行上述命令之后,你也可以看一下~/.blog/config/genesis.json
。 比較重要的修改是"app_state"。
你可能會問,這個地址是哪里來的。這是一個使用如下的測試助記詞生成的演示賬戶:
dad kiss slogan offer outer bomb usual dream awkward jeans enlist mansion
賬戶的派生路徑為:m/44'/988'/0'
。
我們已經有了私鑰,并且進行了配置,現在可以啟動我們的blog應用區塊鏈了:
# start the tendermint with default config make runtm blog start
上面的命令連接tcp://localhost:26658
,如果你希望使用unix套接字,可以使用如下命令:
tendermint node --home ~/.blog --proxy_app=unix://$HOME/abci.socket > ~/.blog/tendermint.log & blog start -bind=unix://$HOME/abci.socket
打開一個新的終端窗口,使用命令tail -f ~/.blog/tendermint.log
,就可以看到我們的blog區塊鏈節點的輸出了:
到此,相信大家對“Tendermint區塊鏈是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。