溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Tendermint區(qū)塊鏈?zhǔn)鞘裁?/h1>
發(fā)布時間:2021-12-23 17:12:48 來源:億速云 閱讀:111 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容主要講解“Tendermint區(qū)塊鏈?zhǔn)鞘裁础保信d趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Tendermint區(qū)塊鏈?zhǔn)鞘裁础卑?

IOV Weave SDK是一個基于Tendermint共識引擎的區(qū)塊鏈開發(fā)框架,Weave提供了很多常用功能的預(yù)置模塊用于你自己的區(qū)塊鏈,同時也支持自定義擴展。

Weave的一些亮點包括基于Merkle樹的數(shù)據(jù)存儲、高度靈活的擴展支持系統(tǒng)以及核心邏輯的定制(例如手續(xù)費機制及簽名驗證機制)。Weave也支持利用創(chuàng)世文件進(jìn)行定制的能力。此外,在鍵-值庫之上,Weave還提供了一個簡單的對象關(guān)系映射層(ORM),可以支持二級索引。Weave還包含了動態(tài)遷移功能,利用鏈上交易就可以切換某些邏輯模塊的啟用或關(guān)閉。

1、預(yù)置模塊

要快速掌握Tendermint區(qū)塊鏈開發(fā),推薦匯智網(wǎng)的Tendermint區(qū)塊鏈開發(fā)詳解.。

Weave開發(fā)框架內(nèi)置了開發(fā)一個應(yīng)用區(qū)塊鏈所需的常用功能模塊:

  • Cash:錢包模塊,支持代幣及手續(xù)費扣除

  • Sigs:簽名模塊,用于驗證ed25519簽名

  • Multisig:多簽?zāi)K,用于多簽名合約的支持,允許修改成員隸屬關(guān)系

  • AtomicSwap:原子交換模塊,支持跨鏈的原子交換

  • Escrow:托管模塊,仲裁者可以安全地持有代幣,或者基于超時規(guī)則釋放托管資金

  • Governance:治理模塊,管理鏈上提議的治理規(guī)則的選舉,或者直接修改應(yīng)用參數(shù)

  • PaymentChannels:單向支付通道模塊,實現(xiàn)微支付和鏈上結(jié)算

  • Distribution:分配模塊,利用配置信息在多個參與者之間分配收入,可用于分配手續(xù)費收入

  • Batch:批處理模塊,用于將多個交易整合為單一原子操作,一個應(yīng)用場景就是單一鏈上交換

  • Validators:驗證人模塊,用于PoA共識上下文中的驗證人集合更新,使用多簽或鏈上選舉模塊

  • Username:用戶名模塊,將用戶名映射為鏈上地址,支持反向查詢

  • MessageFee:消息手續(xù)費模塊,用于對抗垃圾信息

  • Utils:工具模塊,包含一組常用的輔助功能

2、Weave開發(fā)框架概述

要使用Weave開發(fā)框架,需要兩個組件:

  • blog:weave提供的定制ABCI博客應(yīng)用

  • tendermint:區(qū)塊鏈共識引擎

如果你還沒接觸過Tendermint,建議參考匯智網(wǎng)的Tendermint開發(fā)教程。

Weave的應(yīng)用通信框架如下:

    +---------+                     +------------+                      +----------+
    |   blog  |  <- (local) ABCI -> | Tendermint |   <- websocket ->    | client   |
    +---------+                     +------------+                      +----------+

blog和tendermint運行在同一臺計算機上,通過二進(jìn)制TCP/IP協(xié)議或UNIX套接字通信,這兩者結(jié)合在一起構(gòu)成了區(qū)塊鏈。在實際的生產(chǎn)環(huán)境中,你可能會有多個計算機運行這一后端,彼此之間通過自調(diào)節(jié)的p2p gossip協(xié)議通信來實現(xiàn)狀態(tài)的復(fù)制。對于應(yīng)用開發(fā)而言,一個節(jié)點就夠了,但是單一節(jié)點是沒有容錯能力的。

你可以使用任何websocket客戶端連接tendermint的rpc,不過我們還是推薦使用IOV core,畢竟它和Weave是同一家的產(chǎn)品,對Weave開發(fā)框架的支持更好。

在安裝上述兩個組件之前,需要在你的計算機上先安裝如下組件:

  • golang 1.11.4+

  • tendermint 0.31.5

  • weave

  • docker

然后克隆blog代碼庫并根據(jù)兼容表檢出兼容的版本。例如:

# 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

3、初始化應(yīng)用區(qū)塊鏈

在啟動區(qū)塊鏈之前,我們需要利用創(chuàng)世區(qū)塊設(shè)置初始狀態(tài)。tendermint和blog都有一個目錄來保存配置信息和內(nèi)部數(shù)據(jù)庫狀態(tài)。默認(rèn)目錄為:~/.tendermint~/.blog。不過為了簡化考慮,我們將所有配置信息放到同一個目錄。

首先,創(chuàng)建一個默認(rèn)的創(chuàng)世文件、用來簽名區(qū)塊的私鑰以及默認(rèn)的配置文件:

# 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中也包含了很多選項。

在啟動區(qū)塊鏈之前,我們要為剛創(chuàng)建的賬戶添加一批代幣,同時也要啟用索引器,這樣我們就可以按id搜索交易了。但是我們沒有直接修改配置文件,而是用如下的命令:

blog init CASH bech42:tiov1qrw95py2x7fzjw25euuqlj6dq6t0jahe7rh8wp

確保你輸入的地址和上面一致。這個賬戶現(xiàn)在就有代幣了。在運行上述命令之后,你也可以看一下~/.blog/config/genesis.json。 比較重要的修改是"app_state"。

你可能會問,這個地址是哪里來的。這是一個使用如下的測試助記詞生成的演示賬戶:

dad kiss slogan offer outer bomb usual dream awkward jeans enlist mansion

賬戶的派生路徑為:m/44'/988'/0'

4、啟動應(yīng)用區(qū)塊鏈

我們已經(jīng)有了私鑰,并且進(jìn)行了配置,現(xiàn)在可以啟動我們的blog應(yīng)用區(qū)塊鏈了:

# 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區(qū)塊鏈節(jié)點的輸出了:

Tendermint區(qū)塊鏈?zhǔn)鞘裁?></p><p class=到此,相信大家對“Tendermint區(qū)塊鏈?zhǔn)鞘裁础庇辛烁畹牧私猓环羴韺嶋H操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI