合约的部署,是部署到账户里去的。账户会成为合约的与外界交互的界面。

具体步骤:

1.创建一个目录:hello

在目录内操作,进入目录,touch hello.cpp.

// hello.cpp
#include <eosiolib/eosio.hpp> # loads the EOSIO C and C++ API into the scope of your contract
#include <eosiolib/print.hpp>using namespace eosio;class hello : public contract {public: using contract::contract;[[eosio::action]]void hi(name user) {require_auth( user );print("Hello, ", name{user});}
};EOSIO_DISPATCH(hello, (hi))

2.编译:

eosio-cpp -o hello.wasm hello.cpp --abigen

编译完成就可以部署了,部署合约,部署到账户里,然后账户是合约的交互接口。

3.为合约创建一个账户

账户的权限是active权限,由eosioowner权限进行授权:

cleos创建账户的用法:cleos create account creator name OwnerKey ActiveKey

通过 cleos wallet keys可以查看到已经存储的key的信息:

具体就是:

cleos create account eosio hello EOS5FSvKooFghiwqaUD1TpWaobvEaU2mabHqHFvLGSA2WTS52qpzm -p eosio@active

输出结果:

executed transaction: d32de5565ecec6ade408dc1aeace75c78e7c980fe9fd44168bc80a99e41f234c  200 bytes  284 us
# eosio <= eosio::newaccount   {"creator":"eosio","name":"hello","owner":{"threshold":1,"keys":[{"key":"EOS5FSvKooFghiwqaUD1TpWaobv...
warning: transaction executed locally, but may not be confirmed by the network yet         ]

4.部署合约:

cleos set contract hello /Users/xxx/codes/EOS-Dev/contracts/hello -p hello@active

这里我对自己的个人部分信息做了删除,部署方式按照格式来即可。

输出:

Reading WASM from /Users/xxx/codes/EOS-Dev/contracts/hello/hello.wasm...
Publishing contract...
executed transaction: 53d4e07bba0aefef016a2087b9dd59e285c80b2ed9e0f1bcc654fa4c790b872f  1432 bytes  525 us
#         eosio <= eosio::setcode               {"account":"hello","vmtype":0,"vmversion":0,"code":"0061736d0100000001390b60027f7e006000017f60027f7f...
#         eosio <= eosio::setabi                {"account":"hello","abi":"0e656f73696f3a3a6162692f312e30000102686900010475736572046e616d650100000000...
warning: transaction executed locally, but may not be confirmed by the network yet        ]

这样就算是部署完毕,注意到用到的是合约的绝对地址。

!!!我们可以和合约进行交互了!!!

5.与合约交互

cleos push action hello hi '["bob"]' -p bob@active

输出:

executed transaction: 8a087eaa71b1ca05c8840d503f86a9869bde5b33b8dbda2b5dd35245b8e65507  104 bytes  1406 us
#         hello <= hello::hi                    {"user":"bob"}
>> Hello, bob
warning: transaction executed locally, but may not be confirmed by the network yet         ]

刚好解析一下命令,cleos push + xxx

  • action 推送一条操作操作
  • transaction 推送一条交易事务,json格式
  • transactions 推送多条交易事务,json格式

cleos push action + 合约名 + action data + 授权
事务后面至少需要一笔授权,所以这里加的是-p hello@active权限。

END.

【EOS】2.1 EOS Hello World合约相关推荐

  1. 基于EOS的区块链捐赠平台合约发开

    最近在做一个简单的捐赠平台的DAPP,做一下笔记.DAPP的需求如下: 用户可捐赠指定数量的ZJUBCA(协会token的symbol)和EOS数量.先存入denote合约(本合约)账户,在满足一定数 ...

  2. 【eos系列】eos系统合约介绍 — 发币合约eosio.token

    简介 本章将深入源码,为大家分析eos的系统合约eosio.token的实现细节.eosio.token是eos的发币合约,这个合约主要实现了EOS代币的创建.发行.转账等功能. 主要合约方法 eos ...

  3. eos和以太坊有什么关系_【EOS价格分析】EOS,宇宙,以太坊价格分析:8月6日

    [EOS价格分析]EOS,宇宙,以太坊价格分析:8月6日 比特币是世界上最大的加密货币,在过去几个小时内成功飙升至11.500美元以上.但是,以太坊,EOS和Cosmos等山寨币似乎错过了提示,因为它 ...

  4. 理解eos区块链的eosio.token合约

    2019独角兽企业重金招聘Python工程师标准>>> 我必须承认,学习eosio一直没有闲庭信步的感觉,我可以看到为什么很多人说它有一个陡峭的学习曲线.随着eosio软件继续经历大 ...

  5. 【系列】EOS开发3 EOS提供的程序和工具

    上一篇文章使用了nodeos命令来启动eos服务,这一篇文章,就来介绍一下eos提供的相关程序和工具. nodeos EOSIO的核心守护进程,它可通过插件配置来启动一个节点. cleos 这是一个命 ...

  6. 4位大咖面对面传授EOS真经,EOS热潮真的来了...| 沙龙直击

    4月28日,由CSDN.柏链道捷.HelloEOS.中关村区块链产业联盟主办的"EOS入门及最新技术解读"专场沙龙,在北京开放大学国际报告厅如期举办.尽管临近五一长假,但丝毫没有影 ...

  7. 全面理解EOS——2.加入EOS主网和测试网

    有了EOSIO软件,如何加入EOS的主网及测试网络?不同步EOS主网和测试网络全部数据,如何快速与EOS主网及测试网交互?如果想获得EOS主网及测试网络上所有的块信息,又该如何? 在线查看EOS网络信 ...

  8. 中国第一届EOS柚子节|EOS王团长中国行北京见面会圆满收官

    北京的周末下着淅淅沥沥的小雨,宁静而又深远,北京作为中国区块链的发源地,这里留下了很多布道者的身影,在区块链的发展历史上画出了浓重的一笔. 5月20日下午,EOS王团长中国行如约来到了北京,韭菜团子. ...

  9. 服务器系统eos升级,佳能EOS R固件更新,自动对焦功能升级

    4 月 18 日,佳能发布了EOS R新的固件版本1.2.0,这是继今年 2 月发布1.1. 0 版本后的又一次升级.本次更新主要是增强了眼睛检测自动对焦以及小尺寸自动对焦框,并且对使用过程中电子取景 ...

  10. EOS智能合约:system系统合约源码分析

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. eosio.system 概览 笔者使用的IDE是VScode,首先来看eosio.system的源码结构.如下图所示. ...

最新文章

  1. 基于实体模型开发主题管理简析
  2. Java中的executeQuery,java连接数据库executeUpdate() 和executeQuery()
  3. Redis之跳跃表(面试重点容易考)
  4. lnmp 中的laravel出现白屏的处理办法
  5. 怎么在github上的私人项目中添加成员?
  6. 企业战略咨询方法:学习SWOT分析
  7. python for循环例子_Python for循环生成列表的实例
  8. 向内存中连续存入数据_实例35_在Excel中按条件筛选数据并存入新的表
  9. perl的bareword
  10. 数学建模第六章 微分方程建模
  11. Google ExoPlayer播放器框架详解及应用实践
  12. 口算训练(hdu 6287) (唯一分解定理)
  13. 优动漫PAINT上色小技巧——套索填充功能教程
  14. 大天使之剑服务器维护,大天使之剑部分区服维护公告
  15. python怎么接单子平台有哪些_17个Python接私活的平台,总有适合你的,有技术就有收入...
  16. 计算机网络 第3章 作业1
  17. 原来PID是在老王头和老斯基的斗争中诞生的
  18. 软件发展新方向-新技术革命
  19. vulnstack(一) 红日靶场复现
  20. 嵌入式操作系统(LINUX)

热门文章

  1. 常见的预设分栏包括_计算机应用基础_实训项目二Word综合应用
  2. python映射实体类_将Python(django)实体类转换为Java的好方法 - java
  3. 计算机表演赛怎么打用户名,赛事报名操作指南 | 第28届中国儿童青少年威盛中国芯HTC计算机表演赛...
  4. mysql 追加水印_php 使用GD库为页面增加水印示例代码
  5. 引入react文件报错_React Native常见问题(一)
  6. python编写脚本教程_python编写一个会算账的脚本的示例代码
  7. mysql导出表到新建_用navicat导出mysql的数据库后,再用navicat导入到新建的数据库,报错。...
  8. Python图片文字识别——Windows下Tesseract-OCR的安装与使用
  9. 缺陷检测算法matlab,MATLAB 基于模板匹配的玻璃瓶口缺陷检测
  10. android实例教程_改造Android示例教程