EOS_Dapp开发环境和流程

EOS DAPP 开发环境和流程

本文旨在总结如何进行EOS DAPP开发,包括后端环境搭建,创建账户,钱包,部署智能合约到EOS,以及前端使用EOSJS调用eos的http api与eos交互,与chrome scatter插件交互。

开发

  • 环境搭建
  1. 使用虚拟机安装ubuntu18._04(建议)

  2. 安装cdt(EOS智能合约开发工具包,里面包含eoscpp工具用于编译智能合约

    wget https://github.com/eosio/eosio.cdt/releases/download/v1.3.2/eosio.cdt-1.3.2.x86_64.deb
    sudo apt install ./eosio.cdt-1.3.2.x86_64.deb
    
  3. 运行eos本地节点(这一步非必须),也可以使用eos的测试网络比如jungle testnet,当然也可以使用eos主网,不过这样的话就是用真金白银了。


    这里我们使用docker 安装eos镜像来启动eos本地节点

    #获取镜像
    docker pull eosio/eos:v1.4.0
    #运行镜像,其中CONTRACTS_DIR替换为你自己创建的目录的绝对路径
    docker run --name eosio \
      		--publish 7777:7777 \
      		--publish 127.0.0.1:5555:5555 \
      		--volume CONTRACTS_DIR:CONTRACTS_DIR \
      		--detach \
      		eosio/eos:v1.4.0 \
     		 /bin/bash -c \
      		"keosd --http-server-address=0.0.0.0:5555 & exec nodeos -e -p eosio --plugin eosio::producer_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=0.0.0.0:7777 --access-control-allow-origin=* --contracts-console --http-validate-host=false --filter-on='*'"
    #验证是否成功
    docker logs --tail 10 eosi
    docker exec -it eosio bash
    cleos --wallet-url http://127.0.0.1:5555 wallet list keys
    exit	
    #也可以在docker的宿主机上通过curl验证
    curl http://localhost:7777/v1/chain/get_info
    #在docker的宿主机设置别名就可以直接在宿主机用cleos操作docker里的eos节点
    alias cleos='docker exec -it eosio /opt/eosio/bin/cleos --url http://127.0.0.1:7777 --wallet-url http://127.0.0.1:5555'
    #当然也可以把这个命令加在linux的.bash_rc文件里(可能需要重新打开shell session)
    
  • 创建钱包和账号

    #创建一个name为default的钱包,并输出钱包的密码
    cleos wallet create --to-console
    #当然也可以使用-n 指定钱包的name
    #使用之前的钱包密码解锁钱包才能进行钱包操作
    cleos wallet unlock
    #查看钱包列表,*号表示已解锁
    cleos wallet list
    #创建私钥并导入到钱包,该命令会返回公钥
    cleos wallet create_key
    #将创世账号的私钥导入到钱包
    Cleos wallet import  5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
    #查看私钥,可以看到刚导入的俩个私钥
    Cleos wallet keys
    #通过创世账号创建账号,XXXX为create_key返回的公钥
    cleos create account eosio bob xxxxx 
    cleos create account eosio alice xxxxx
    
  • 开发一个简单的智能合约

    cd CONTRACTS_DIR
    mkdir hello
    cd hello
    touch hello.cpp
    #hello.cpp的内容略过
    #使用eosio-cpp编译智能合约
    eosio-cpp -o hello.wasm hello.cpp –abigen
    #为智能合约创建一个专门的账号,因为智能合约是放在账号上的,一般账号名和智能合约名称取一样的
    cleos create account eosio hello xxxxx -p eosio@active
    #部署智能合约
    cleos set contract hello CONTRACTS_DIR/hello -p hello@active
    #然后我们可以执行智能合约上的action
    cleos push action hello hi '["bob"]' -p bob@active
    
  • 如何通过eosjs调用智能合约


    [一个完整的例子包含后端智能合约和前端界面]: https://github.com/eosasia/eos-todo

测试环境

使用jungle testnet 测试,可以免费获得eos币用于测试。

生产环境

本质上跟测试环境是一样的,只是网络节点不同

在eos上运行dapp是不需要自己搭建服务器跑eos节点的,可以将智能合约部署到主网,然后通过eosjs 和scatter调用某个主网节点比如:

[eosasia]: https://geo.eosasia.one

其它主网节点参见:https://www.myeoskit.com/tools/vote

相关文档

  1. [官方快速入门指南]: https://developers.eos.io/eosio-home/docs
  2. [官方中文手册]: https://eos.readthedocs.io/zh_CN/latest/
posted @ 2023-01-13 19:27  乌鸦坐飞机2  阅读(2)  评论(0)    收藏  举报