中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

tendermint簡介及開發環境的搭建

發布時間:2021-08-31 09:44:29 來源:億速云 閱讀:220 作者:chen 欄目:互聯網科技

本篇內容主要講解“tendermint簡介及開發環境的搭建”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“tendermint簡介及開發環境的搭建”吧!

Tendermint簡介

Tendermint萌芽于比特幣、以太坊這樣的加密貨幣,它的目標是提供一個比比特幣的工作量證明(PoW)更加高效和安全的共識算法。簡單地說,Tendermint是一個可供二次開發的軟件包,可以在多臺機器上安全、一致地實現應用狀態的復制。

  • Tendermint可以在不超過1/3的機器失效時依然正常工作,無論失效的原因 是什么。Tendermint實現了拜占庭容錯。

  • 任何正常工作的機器都會收到相同的交易日志,并分別推導出相同的狀態

Tendermint的特性如下圖所示:

tendermint簡介及開發環境的搭建

Tendermint包含兩個主要的組件:

  • 區塊鏈共識引擎,即:Tendermint內核

  • 應用與區塊鏈接口,即:Application BlockChain Interface

Tendermint內核可以托管任意的應用狀態,因此可以使用任何語言開發區塊鏈軟件:Haskell、GoLang、或者Rust都可以用來開發ABCI應用。

其他區塊鏈的一個問題是,它們都是單體設計思維的軟件。以比特幣為例,比特幣的設計就是單體的,其區塊鏈技術棧都包含在單一程序里,需要處理從P2P鏈接到交易廣播、達成共識乃至檢查賬戶余額的一切事情。

單體應用通常不容易擴展、升級或再利用,而Tendermint則致力于將區塊鏈技術棧的兩個核心組件與其他部分解耦:共識引擎和P2P連接 —— 事實上這也是開發區塊鏈的最困難的兩個技術環節 —— 從而可以使用任何開發語言來開發ABCI應用。

廢話不多說了,讓我們擼起袖子開干!

Tendermint開發環境搭建與測試

STEP 1:下載Tendermint內核

tendermint內核采用Go開發,有官方預編譯程序,下載地址:Tendermint Core。

下載后直接解壓,并將tendermint程序目錄添加到環境變量PATH的設置里。

STEP 2:初始化Tendermint

執行如下命令初始化Tendermint:

~$ tendermint init

應當可以在終端看到tendermint的輸出信息:

I[10–18|20:14:08.996] Generated private validator module=main path=/Users/niharikasingh/.tendermint/config/priv_validator.json
I[10–18|20:14:08.996] Generated node key module=main path=/Users/niharikasingh/.tendermint/config/node_key.json
I[10–18|20:14:08.996] Generated genesis file module=main path=/Users/niharikasingh/.tendermint/config/genesis.json

STEP 3:啟動Tendermint節點

使用node子命令啟動Tendermint節點:

~$ tendermint node -proxy_app=kvstore

-proxy_app運行標志用來指定一個內置的ABCI應用,例如kvstore是tendermint程序內置的鍵值對狀態機。你應該可以看到如下的tendermint程序輸出:

I[10–18|20:16:40.037] Starting multiAppConn module=proxy impl=multiAppConn
...
I[10–18|20:16:42.051] enterPropose: Our turn to propose module=consensus height=2 round=0 proposer=601302EBD1F8B4BCE9F99B219965F2796AB6BB10 privValidator=”PrivValidator{601302EBD1F8B4BCE9F99B219965F2796AB6BB10 LH:1, LR:0, LS:3}”
I[10–18|20:16:42.055] Signed proposal module=consensus height=2 round=0 proposal=”Proposal{2/0 1:48B45F4423A5 (-1,:0:000000000000) F52DF1F111D8 @ 2018–10–18T14:46:42.051967933Z}”
I[10–18|20:16:42.056] Received proposal module=consensus proposal=”Proposal{2/0 1:48B45F4423A5 (-1,

STEP 4:提交交易

要提交一個交易,可以使用curl向Tendermint節點的RPC服務發出請求,例如:

~$ curl http://localhost:26657/broadcast_tx_commit?tx=\"niharika\"

響應結果如下:

{
  "jsonrpc":"2.0",
  "id": "",
  "result": {
    "check_tx": {
      "gasWanted": "1"
    },
    "deliver_tx": {
      "tags": [
        {
          "key": "YXBwLmNyZWF0b3I=",
          "value": "amFl"
        },
        {
          "key": "YXBwLmtleQ==",
          "value": "bmloYXJpa2E="
        }
      ]
    },
    "hash": "EAAD936D3EDCCCF5DD214E02BB4065E5511CA5AC",
    "height": "3533"
  }
}

注意結果中的value字段,例如bmloYXJpa2E,這其實是字符串niharika的base64編碼。

現在讓我們查詢一下:

~$ curl -s 'localhost:26657/abci_query?data="niharika"'

響應結果如下:

{
  "jsonrpc":"2.0",
  "id": "",
  "result": {
    "response": {
      "log": "exists",
      "index": "-1",
      "key": "bmloYXJpa2E=",
      "value": "bmloYXJpa2E="
    }
  }
}

很好,看起來我們的Tendermint內核與ABCI接口的工作一切正常!

到此,相信大家對“tendermint簡介及開發環境的搭建”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通渭县| 蓬溪县| 元江| 沁水县| 阳信县| 武穴市| 广东省| 濉溪县| 焦作市| 固阳县| 泸水县| 洪泽县| 嘉峪关市| 山东省| 九龙城区| 文昌市| 若羌县| 嘉定区| 建始县| 华宁县| 琼结县| 五峰| 库车县| 鸡东县| 大埔县| 思茅市| 疏附县| 育儿| 阿拉善左旗| 东辽县| 象山县| 梁山县| 峡江县| 三亚市| 临潭县| 衡东县| 宜丰县| 宣武区| 凌海市| 平果县| 济源市|