1. 程式人生 > >eos.io區塊鏈平臺構建開發dapp的環境安裝

eos.io區塊鏈平臺構建開發dapp的環境安裝

本文主要介紹如何構建在EOS平臺執行的DApp開發環境。

EOSIO構成元件

EOSIO是由三個component組成的。

  • nodeos:管理區塊鏈節點的元件。
  • keosd:管理錢包的元件。
  • cleos:控制區塊鏈和錢包CLI工具。

安裝EOSIO

此文件以MacOS Darwin 10.12為基準。

在EOSIO的github庫下載原始碼。

$ git clone https://github.com/EOSIO/eos --recursive

要安裝xcode和homebrew程式碼。如果還沒有安裝的情況,先設定xcodehomebrew

原始碼包含構建指令碼及構建實現。

$ cd eos
$ ./eosio_build.sh

如果成功的話,就會出現下面的資訊。

[100%] Linking CXX executable unit_test

[100%] Built target unit_test

_______  _______  _______ _________ _______

(  ____ \(  ___  )(  ____ \\__   __/(  ___  )

| (    \/| (   ) || (    \/   ) (   | (   ) |

| (__    | |   | || (_____    | |   | |   | |

|  __)   | |   | |(__
___ ) | | | | | | | ( | | | | ) | | | | | | | | (____/\| (___) |/\____) |___) (___| (___) | (_______/(_______)\_______)\_______/(_______) EOSIO has been successfully built. 00:11:21 To verify your installation run the following commands: /usr/local/bin/mongod -f /usr/local/etc/mongod.conf & cd /Users/scion/git/eos/build; make test For more information: EOSIO website: https://eos.io EOSIO Telegram channel @ https://t.me/EOSProject EOSIO resources: https://eos.io/resources/ EOSIO Stack Exchange: https://eosio.stackexchange.com EOSIO wiki: https://github.com/EOSIO/eos/wiki

解決問題

  • 如果build過程中出現這樣的error時:
CMake Error at /usr/local/Cellar/cmake/3.11.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
 Failed to find Gettext libintl (missing: Intl_INCLUDE_DIR)
Call Stack (most recent call first):
 /usr/local/Cellar/cmake/3.11.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
 /usr/local/Cellar/cmake/3.11.3/share/cmake/Modules/FindIntl.cmake:47 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
 programs/cleos/CMakeLists.txt:29 (find_package)

應該是homebrewgettext連線到了不正確的版本,更改連線資訊就可以了:

$ brew link gettext — force

在環境變數檔案(~/.profile)新增gettoxt path:

export PATH=”/usr/local/opt/gettext/bin:$PATH
  • 也有可能發生這種情況:
Mac OS 10.13.3 build error “path mongo-cxx-driver already exists

這樣解決:

sudo rm -rf /tmp/mongo*
cd /path/to/eos
rm -rf build/
git pull
git submodule update — init — recursive
./eosio_build.sh

驗證

安裝順利完成。為了驗證,執行下測試指令碼。

$ /usr/local/bin/mongod -f /usr/local/etc/mongod.conf &

$ cd build/

$ make test

Running tests...

Test project /Users/scion/git/eos/build

Start  1: test_cypher_suites

1/35 Test  #1: test_cypher_suites ...................   Passed    0.04 sec

Start  2: validate_simple.token_abi

2/35 Test  #2: validate_simple.token_abi ............   Passed    0.08 sec

Start  3: validate_eosio.token_abi

...

34/35 Test #34: restart-scenarios-test-hard_replay ...   Passed  151.83 sec

Start 35: validate_dirty_db_test

35/35 Test #35: validate_dirty_db_test ...............   Passed    4.42 sec

100% tests passed, 0 tests failed out of 35

下面完成安裝:

$ cd build

$ sudo make install

執行EOSIO

試著執行EOSIO的元件吧。這是為了構建開發環境,所以可以先用一個節點。

nodeos

用帶有option的命令直接執行就行了

$ nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin

其中:
- e : 區塊生成
- p eosio : 區塊生產者名稱
— plugin eosio::chain_api_plugin : 區塊鏈相關API外掛
— plugin eosio::history_api_plugin : 歷史記錄相關API外掛

可以用配置檔案替換引數。
- config file位置: ~/Library/Application Support/eosio/nodeos/config/config.ini
- 當nodeos第一次執行時,該檔案自動生成。

$ vi ~/Library/Application\ Support/eosio/nodeos/config/config.ini

...
# enable-stale-production = false
enable-stale-production = true
...
# producer-name =
producer-name = eosio
...
plugin = eosio::chain_api_plugin
plugin = eosio::history_api_plugin
...

執行nodeos :

$ nodeos

如果執行正常,可以看到在控制檯上0.5秒生成block的資訊。

為了確認nodeos是否正常執行,讓我們試試應用程式API介面。

在運行於8888埠的應用軟體服務上試試HTTP Request

$ curl -k -v 'http://127.0.0.1:8888/v1/chain/get_info' -X GET

Note: Unnecessary use of -X or --request, GET is already inferred.
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
> GET /v1/chain/get_info HTTP/1.1
> Host: 127.0.0.1:8888
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: close
< Content-Length: 529
< Content-type: application/json
< Server: WebSocket++/0.7.0
<
{"server_version":"012dc012","chain_id":"cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f","head_block_num":363,"last_irreversible_block_num":362,"last_irreversible_block_id":"0000016ad0238cef2f6a8de2098115ba155cbbc535122912a7a62f66097adbd6","head_block_id":"0000016b8cbb9154a759f2e61968fc1069fcf0ef9468886614d0538a97d96c61","head_block_time":"2018-06-12T07:10:59","head_block_producer":"eosio","virtual_block_cpu_limit":287075,"virtual_block_net_limit":1506023,"block_cpu_limit":199900,"block_net_limit":1048576}

或是利用cleos命令執行。

$ cleos get info
{
  "server_version": "012dc012",
  "chain_id": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",
  "head_block_num": 580,
  "last_irreversible_block_num": 579,
  "last_irreversible_block_id": "000002436a1baaeb366b55995ddad7de0822f177d60a8c6e336e3f5fcb18ecc5",
  "head_block_id": "00000244e6923239c0649ddada0dd47a2df80df13fa825275df9ddac975e6162",
  "head_block_time": "2018-06-12T07:12:48",
  "head_block_producer": "eosio",
  "virtual_block_cpu_limit": 356561,
  "virtual_block_net_limit": 1871085,
  "block_cpu_limit": 199900,
  "block_net_limit": 1048576
}

keosd

同樣用帶有option的命令直接執行就行了

$ keosd — http-server-address=127.0.0.1:8900
  • http-server-address : REST API,nodeos預設埠是8888。cleos預設埠考慮使用8900,URL不可用。

只能通過替換keosd配置檔案選項來執行。

  • 配置檔案位置:~/eosio-wallet/config.ini
  • 第一次keosd操作,檔案自動生成。
$ vi ~/eosio-wallet/config.ini

# http-server-address = 127.0.0.1:8888
http-server-address = 127.0.0.1:8900

執行keosd:

$ keosd

在運行於8900埠的應用軟體服務上試試HTTP Request

$ curl -k -v ‘http://127.0.0.1:8900/v1/wallet/list_wallets' -X GET

Note: Unnecessary use of -X or — request, GET is already inferred.
* Trying 127.0.0.1* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8900 (#0)
> GET /v1/wallet/list_wallets HTTP/1.1
> Host: 127.0.0.1:8900
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: close
< Content-Length: 2
< Content-type: application/json
< Server: WebSocket++/0.7.0
<
[]

或者使用cleos命令執行:

$ cleos wallet list
Wallets:
[]

nodeoskeosd可以正常工作,現在可以使用EOSIO服務了。

另:《EOS智慧合約與DApp開發入門》教程已經上線,愛學習等不及的可以抓緊體驗一下:

EOS教程

這個教程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智慧合約開發與部署、使用程式碼與智慧合約互動等核心知識點,最後綜合運用React和EOS的各知識點完成一個便籤DApp的開發。

如果大家是學習以太坊的可以看這些教程:

  • web3j教程,主要是針對java和android程式設計師進行區塊鏈以太坊開發的web3j詳解。
  • 以太坊教程,主要介紹智慧合約與dapp應用開發,適合入門。
  • 以太坊開發,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
  • python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
  • php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和事件等內容。

部落格原文在:這裡

相關推薦

eos.io區塊平臺構建開發dapp環境安裝

本文主要介紹如何構建在EOS平臺執行的DApp開發環境。 EOSIO構成元件 EOSIO是由三個component組成的。 nodeos:管理區塊鏈節點的元件。 keosd:管理錢包的元件。 cleos:控制區塊鏈和錢包CLI工具。 安裝EO

EOS和以太坊那個區塊平臺更好?

擔憂 strong acc 中控 結束 ethereum web 都在 另一個 顯然,你已經聽說過兩個最受歡迎的智能合約區塊鏈,但想知道EOS與以太坊之中哪個更好?或許你想比較一下兩種技術?好吧,你來對了地方,因為我要告訴你你需要知道的一切! 在這個EOS vs Ether

區塊全棧開發-以太坊DAPP開發實戰視訊課程-熊麗兵-專題視訊課程

區塊鏈全棧開發-以太坊DAPP開發實戰視訊課程—84人已學習 課程介紹         本門課從一個去中心化應用的概念講起,讓大家理解去中心化應用與傳統應用的不同,然後用一個個案例帶大家瞭解掌握中心

什麼是Hyperledger?Linux如何圍繞英特爾的區塊專案構建開放平臺

  訪問區塊鏈會議並關注區塊鏈新聞時,不可避免地,您會遇到Linux基金會的Hyperledger。理解像比特幣、以太坊這樣的加密貨幣還算相對容易的,Hyperledger卻不然。但如果你多研究研究,你會發現一些令人興奮的非貨幣、工業區塊鏈的應用專案。   什麼是Hyperledger請新增連結描述?  

Arensis攜手施耐德電氣開發智慧微電網和ENTRADE IO區塊技術

Arensis執行長成立新公司助力全球農村地區獲取可再生能源 洛杉磯--(美國商業資訊)--領先的國際去中心化能源系統供應商與微電網開發領域的領導者施耐德電氣(Schneider Electric)今

區塊實戰-Geth,DApp開發

(本篇部落格記錄學習區塊鏈所有的經歷,從開始一切的資訊,包含一切遇到的報錯資訊都記錄下來,供自己以後學習) Geth(Go-ethereum)是典型的開發以太坊時使用的客戶端,基於Go語言開發。 Geth提供了一個互動式命令控制檯,通過命令控制檯中包含了以太坊的各種功能(API)。Geth的使用

瞭解以太坊區塊智慧合約開發從零構建和部署去中心化投票

區塊鏈愛好者(QQ:53016353)編輯器選擇理論上講任何編輯器都可以編寫Solidity合約程式碼,比如:WebStorm,VSCode,Sublime,等等。我選擇的是Atom,沒有任何理由,因為Atom輕量並且介面漂亮。移步https://atom.io/地址,下載安

共享平臺模式開發定制

共享鏈平臺開發,共享鏈模式開發定制找金容團隊:188-1890-7350(微/電) 共享鏈商家平臺開發及共享鏈商家小程序模式簡介: (1)平臺:設置商家及門店權限,制定返利模式 (2)代理商:發展線下門店商家 (3)線下門店:跟進平臺設定的權限返利,宣傳吸引消費者 (4)消

4.區塊平臺以太坊從入門到精通之 以太幣

tps 圖形化 三種 lan 了解 市場 ref 圖形化界面 tar 1.以太幣簡介 以太幣( ether) 是以太坊中使用的貨幣的名字.它是用於支付在虛擬機中的運算的費用. 了解就可以 2.獲取和發送以太幣 有三種方式獲取 1.成為一名礦工

國內知名區塊技術應用研發公司,區塊交易系統開發

數字資產交易系統開發【本文由jys-wu編輯/系統開發微信:jys-wu】銀行重金投向區塊鏈等科技創新,欲打金融科技翻身仗據上海證券報報道,銀行重金投向科技創新,一是加強基礎技術研發與平臺建設,推進人工智能、區塊鏈等新興技術落地應用;二是對線下網點進行統一改造,打造數字化銀行,降低成本等。一家大行IT部負責人

2018虛擬數字資產區塊交易系統開發新模式

虛擬數字資產區塊鏈交易系統開發2018虛擬數字資產區塊鏈交易系統開發新模式 虛擬數字資產區塊鏈交易系統開發【138-2655 -7202】一、數字資產交易所的定義 數字資產交易所系統開發是指進行數字資產間、數字資產與法幣間交易撮合的平臺,是加密數字資產交易流通和價格確定的主要場所。 與傳統證券交易所相比,數字

區塊寵物系統開發:你的遊戲裏寵物養成了嗎?

區塊鏈 寵物遊戲養狗吸貓玩雞仔,區塊鏈遊戲已經得到很多人的喜愛,並且速速占據新應用玩法的一席之地,成為吸金法寶。區塊鏈作為新興技術的網紅選手。吸引了國內各大互聯網科技巨頭的入場,網易“招財貓”、百度“萊茨狗”、小米“加密兔”相繼上線,區塊鏈寵物養成遊戲大戰已經開始。區塊鏈寵物養成遊戲可以在PC端或者是手機端

區塊技術開發要點 聊區塊技術企業開發

tex style 區塊鏈開發 許可 科技 基礎 未來 部分 智能合約   不論在哪個時代,科技創新總是引領商業熱潮的推進力,而現今區塊鏈技術開發已獲得全球經濟、產業、學術各個領域的高度關註和認可,在商業合作中,區塊鏈技術開發很好的解決了網絡間的互通信、交易速度、隱私保護

區塊技術公司 聊區塊技術公司開發優勢

shadow 模式 調整 pan span 發的 2018年 size p s 區塊鏈技術公司是否具有顛覆性?在某些業內人士看來,區塊鏈技術開發短期內的顛覆性可能被高估了,但長期的顛覆性又可能是被低估的,區塊鏈技術公司最終的發展形態可能超過所有人的想象。因此在這空白的領域,

區塊技術開發區塊+共享經濟開發應用

更多 不用 理解 用戶 分享 布局 align vpd 高達 區塊鏈技術開發在2018年進度加快,包括央行在內的諸多單位都深入其中,現今市場不再被視為一個點存在,而是可以主動參與區塊鏈技術共享經濟的資源實體,有更多點與點之間的資源交互,實現公識需求直接對應,避免“中心化”之

區塊技術系統開發模式

電子錢包 spa 基本 東南亞 關註 專業 難題 展示 支付系統  區塊鏈系統開發找(鄧生:138-7553-1770微/電)區塊鏈系統,數字貨幣系統開發,區塊鏈數字貨幣系統。   1)區塊鏈支付錢包的基礎是去中心化技術,電子錢包是區塊鏈銀行基本設備的一部分。 為了簡化

昊天善圈區淺述區塊技術應用開發的三種系統類型及系統特點

導致 金融行業 中心 證明 str private 行業 通過 使用 最近這一兩年,特別今年2018年,區塊鏈徹底火了起來,國外有很多知名大學都把區塊鏈技術加入大學課程當中。區塊鏈開發技術可以廣泛的應用在產品供應鏈、房地產、醫療、在線音樂、金融行業、征信系統等多個行

昊天善圈講述區塊技術應用開發過程中幾種常見的區塊系統類型:

玩遊戲 通過 遊戲 返利 應用 自定義 理財 區塊鏈 區塊鏈寵物系統 1.區塊鏈挖礦系統:手手機挖礦遊戲,挖得多賺得多,玩法自定義2.區塊鏈積分商城:多種積分獲取方式,積分可用於商城交易3.區塊鏈貨幣系統:自行發行數字貨幣,多種獲取貨幣方式,數字貨幣交易商城,打造數字貨幣全

寵物語LBS區塊源碼開發

tro 影片 源碼開發 文本 small charset 瀏覽器 nowrap 指定 寵物鏈語區塊鏈系統開發咨詢 蕭然 l58—l2微電44-37同號46 寵物鏈語區塊鏈源碼開發,寵物鏈語區塊鏈軟件開發,寵物鏈語區塊鏈遊戲系統開發app、 寵物鏈語社交遊戲寵物鏈語區塊鏈系統

小怪狐區塊遊戲系統開發

經濟 重復 食物 分享 之間 皮膚 規則 全面 小時 科技改變未來、讓生活更美好,正在因為互聯網發展得到廣泛體驗。互聯網促進了開放共享發展,泛在化的網絡信息接入設施、便捷化的“互聯網+”出行信息服務、全天候的指尖網絡零售模式、“一站式”旅遊在途體驗、數字化網