博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EOS区块链平台构建开发dapp环境的安装
阅读量:6624 次
发布时间:2019-06-25

本文共 6182 字,大约阅读时间需要 20 分钟。

hot3.png

本文主要介绍如何构建在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

  • xcode :
  • homebrew :

源代码包含构建脚本及构建实现。

$ cd eos$ ./eosio_build.sh

如果成功的话,就会出现下面的信息。

[100%] Linking CXX executable unit_test[100%] Built target unit_test_______  _______  _______ _________ _______(  ____ \(  ___  )(  ____ \\__   __/(  ___  )| (    \/| (   ) || (    \/   ) (   | (   ) || (__    | |   | || (_____    | |   | |   | ||  __)   | |   | |(_____  )   | |   | |   | || (      | |   | |      ) |   | |   | |   | || (____/\| (___) |/\____) |___) (___| (___) |(_______/(_______)\_______)\_______/(_______)EOSIO has been successfully built. 00:11:21To verify your installation run the following commands:/usr/local/bin/mongod -f /usr/local/etc/mongod.conf &cd /Users/scion/git/eos/build; make testFor more information:EOSIO website: https://eos.ioEOSIO Telegram channel @ https://t.me/EOSProjectEOSIO resources: https://eos.io/resources/EOSIO Stack Exchange: https://eosio.stackexchange.comEOSIO 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/eosrm -rf build/git pullgit submodule update — init — recursive./eosio_build.sh

参考:

验证

安装顺利完成。为了验证,执行下测试脚本。

$ /usr/local/bin/mongod -f /usr/local/etc/mongod.conf &$ cd build/$ make testRunning tests...Test project /Users/scion/git/eos/buildStart  1: test_cypher_suites1/35 Test  #1: test_cypher_suites ...................   Passed    0.04 secStart  2: validate_simple.token_abi2/35 Test  #2: validate_simple.token_abi ............   Passed    0.08 secStart  3: validate_eosio.token_abi...34/35 Test #34: restart-scenarios-test-hard_replay ...   Passed  151.83 secStart 35: validate_dirty_db_test35/35 Test #35: validate_dirty_db_test ...............   Passed    4.42 sec100% 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 = falseenable-stale-production = true...# producer-name =producer-name = eosio...plugin = eosio::chain_api_pluginplugin = 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:8888http-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 GETNote: 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 listWallets:[]

nodeoskeosd可以正常工作,现在可以使用EOSIO服务了。

参考文件是EOSIO,参考了。

另:《EOS智能合约与DApp开发入门》教程已经上线,爱学习等不及的可以抓紧体验一下:

这个教程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用React和EOS的各知识点完成一个便签DApp的开发。

转载于:https://my.oschina.net/u/2275217/blog/1862854

你可能感兴趣的文章
聊聊 iOS 开发
查看>>
人人都应该了解的信息简史
查看>>
linux c文件操作接口
查看>>
H.264学习笔记之一(层次结构,NAL,SPS)
查看>>
5G时代的无线宽带新技术
查看>>
风控模型共享如何打掉黑产?
查看>>
Radware:IP欺诈等让网络攻击难以防范
查看>>
基于Token认证的WebSocket连接
查看>>
【Solidity】2.合约的结构体 - 深入理解Solidity
查看>>
同学们,告诉你们信息中心,如何保持看直播不卡的姿势!
查看>>
《Drupal实战》——2.6 小结
查看>>
《C语言及程序设计》实践参考——二分法解方程
查看>>
java thread中的wait()和notify()
查看>>
2016最新搜索引擎优化(SEO)重点要素
查看>>
当Web访问性能出现问题,如何深探?
查看>>
【IOS-COCOS2D-X 游戏开发之二】【必看篇】总结阐述COCOS2D-X与COCOS2D-IPHONE区别;
查看>>
ExtJs之Ext.core.Element
查看>>
六套 App:构建我的产品设计工作流
查看>>
eoLinker-API_Shop_通讯服务类API调用的代码示例合集:短信服务、手机号归属地查询、电信基站查询等...
查看>>
因为小程序的scroll-view组件不能下拉刷新我做了个开源项目
查看>>