EOS_Dapp开发环境和流程
EOS DAPP 开发环境和流程
本文旨在总结如何进行EOS DAPP开发,包括后端环境搭建,创建账户,钱包,部署智能合约到EOS,以及前端使用EOSJS调用eos的http api与eos交互,与chrome scatter插件交互。
开发
- 环境搭建
-
使用虚拟机安装ubuntu18._04(建议)
-
安装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 -
运行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币用于测试。
-
先在本地通过如下命令产生一个key
cleos create key #输出如下 #Private key: XXXXXX #Public key: XXXXXXX -
创建测试环境账号
进入http://jungle.cryptolions.io/#account 将刚才生成的key填入 -
获得测试环境eos币
通过http://jungle.cryptolions.io/#faucet获取EOS币 -
使用eosio-cpp命令编译c++开发的智能合约
-
使用cleos set contract命令部署智能合约到eos testnet
-
修改dapp前端的配置指向测试网络
[测试网络节点]: http://jungle.cryptolions.io/#apiendpoints
生产环境
本质上跟测试环境是一样的,只是网络节点不同
在eos上运行dapp是不需要自己搭建服务器跑eos节点的,可以将智能合约部署到主网,然后通过eosjs 和scatter调用某个主网节点比如:
[eosasia]: https://geo.eosasia.one
其它主网节点参见:https://www.myeoskit.com/tools/vote
相关文档
- [官方快速入门指南]: https://developers.eos.io/eosio-home/docs
- [官方中文手册]: https://eos.readthedocs.io/zh_CN/latest/

浙公网安备 33010602011771号