蚂蚁区块链BaaS平台应用开发指南(三):从一个简单合约开始

Could IDE的入口

新版的Cloud IDE已经去除证书配置的要求,开发者开通区块链之后可直接开始智能合约的开发。在本节中,我们将会使用Could IDE来进行合约的编写、编译和调试的工作。
如果是体验链,请在新手引导引导界面,找到合约体验链卡片,点击调试合约

如果是正式的托管链或区块链创新大赛的链,通过合约管理>新建工程编辑已有工程进入Cloud IDE。

从一个最简单的合约开始

选择目标链

编译部署合约前,要指定好所要部署的链以及部署用的账户:
在右边栏中,点击环境配置

在本例中,选择合约体验链

部署账户暂时先用平台提供的默认账户Test001和对应的私钥;

在编译部署过程中,开发者一定要正确选择对应的链。
部署账户可以使用默认的账户进行,后期开发者如果有需求,可以按照自己需求配置部署合约的账户。

点击确定。

编译合约

在打开的Could IDE界面中,新建一个合约文件(main.sol)。

在中间的编辑器中的填入以下内容:

pragma solidity ^0.4.0;

contract SimpleStorage {
    uint storedData;

    function set(uint256 x) public {
        storedData = x;
    }

    function get() public view returns (uint256) {
        return storedData;
    }
}

在Cloud IDE右边栏,点击编译
然后可以在左下角看到编译的结果(下图×××区域),包括Warning和Error。在右边栏,可以看到编译生成的合约字节码(bytecode)和合约接口说明(ABI)(下图绿色区域)。

点击保存按钮,可以把当前合约文件保存到合约工程中。

注意,这里只是把合约文件保存到工程文件中,并不是保存到区块链上。下一节会介绍如何通过Cloud IDE把编译好到合约部署到链上。

部署合约

当合约编译完毕,点击字节码右上角的部署合约

给要部署的合约实例一个名称:

合约每成功部署一次,在链上就存在一个实例。
同一条链上的合约实例不得重名。

部署成功后,应该在右边栏看到如下信息:合约ID部署交易的交易Hash合约暴露的可调用接口

调用合约

对于上面的样例代码,我们做了非常简单的三件事情:

  • 声明了一个类型为Uint的Stroage变量storedData,该变量在部署的时候会被初始化为0,并保存在区块链上;
  • 暴露了一个设置该变量的接口set(uint256)
  • 暴露了一个获取该变量的接口get()

先点击调用合约调用set接口,在弹出的输入参数窗口,输入一个非负数,点击确定。
调用完成后,可以看到如下结果:

同样的,再调用get方法去获取storedData值,调用成功后,可以在output字段中见到我们设置到值,具体结果参考下面:

至此,我们完整的编译、部署和调用了一个智能合约。这个合约永久的存储在我们的目标链上,合约名或合约ID是该合约实例的访问接口,任何人都可以通过Cloud IDE或其他SDK来接入链并调用该合约所暴露的方法。

进阶

更新合约

目前Could IDE不支持合约更新。部署之后,如果需要修改合约,那么只能修改后,重新编译并重新部署成一个新的合约实例,合约名和合约ID都要更新。

如果有需求,开发者可以通过SDK接口去更新合约,详情见这里这里

连接到已部署的合约

开发者经常需要测试调用已经部署好的合约,目前Could IDE中的工程文件并不保存合约部署后的合约名,ID,ABI和字节码。因此,要实现这个需求,操作的步骤如下:

  1. 打开Could IDE,配置好链的环境。
  2. 打开之前已部署合约的代码。
  3. 编译合约一次,生成合约字节码和ABI接口说明。(关键点产生和链上合约完全一致的ABI接口说明
  4. 点击ABI接口右上角的已部署合约按钮。
  5. 输入之前部署的合约名合约Identity
  6. 连接后,可以看到合约的方法,并可以继续调用:

连接到已部署合约的时候,Cloud IDE是不会做任何接口检查的,开发者要保证生成的ABI和已部署的合约完全一致,否则可能导致调用失败。
注意:一旦工程文件里面的合约代码逻辑发生了变化,就不能继续链接到之前部署过的实例上,否则会产生调用错误。如果代码有更新,建议部署新的实例来进行调试。

小结

Cloud IDE是一个极为方便的合约管理、调试和部署工具。开发者需要多加熟悉并理解各个功能的使用,这对后续开发工作帮助非常大。

原文地址:https://blog.51cto.com/14321927/2418709

时间: 2024-10-13 07:31:02

蚂蚁区块链BaaS平台应用开发指南(三):从一个简单合约开始的相关文章

蚂蚁区块链BaaS平台应用开发指南(四):JavaSDK的接入

在尝试本节的样例代码前,需要保证目标智能合约已经按照蚂蚁区块链BaaS平台应用开发指南(三):从一个简单合约开始中的做法编译部署成功. 基于JavaSDK的接入 在上一节里,我们通过Cloud IDE部署了一个最简单的智能合约,并且通过Cloud IDE成功的调用了合约的方法.拿传统应用的开发来类比,这就像在数据库上增加了一个存储过程,然后通过外部应用来触发这个存储过程的执行.那么,对于区块链来说,外部应用又如何来调用部署好的智能合约?在这一节中,我们将会通过蚂蚁区块链提供到JavaSDK来接入

蚂蚁区块链BaaS平台应用开发指南(一):前言

前言 2018年疯狂的币市把区块链技术推到了风口浪尖,随着潮水的退去,越来越多的技术人和市场开始沉淀到实际的问题上.如何利用区块链技术带来的新特性(去中心,可追溯,不可篡改等)去解决现实世界的实际需求成为了探讨的热点.蚂蚁金服作为区块链技术的先锋,已经陆陆续续的推出了十大解决方案和对应的落地案例如下: 司法区块链 合同存证 供应链金融 电子票据 商保快赔 处方流转 智慧租房 通用溯源 安全多方计算解决方案(联合营销,联合风控) 跨境支付 未来,会有越来越多的传统行业和新兴业务拥抱区块链技术.可以

蚂蚁区块链BaaS平台应用开发指南(二):准备工作

准备工作 获取到开发者资格后,开发者可以到新手引导板块进行区块链接入开发的准备工作:证书密钥的准备 以及 环境和工具的熟悉. 如果是BaaS平台上拥有独立联盟链的开发者,请到我的联盟中查看所拥有到链:如果是区块链创新大赛到参与开发者,请到区块链创新大赛板块中查看所提供的链. 蚂蚁区块链目前提供存证链和合约链两种类型的链,链的差异主要体现在SDK和API上.合约链的SDK和API更丰富,同时也提供了存证链接口,可以认为合约链是存证链的超集.因此,本博客将主要介绍基于合约链的开发. 证书申请 新手引

plustoken钱包系统开发plustoken区块链钱包平台商城开发

plus Token的高附加值,科技与区块链完美融合,成就通证经济时代杰出代表.每季度利润30%用于回购plus进行销毁,销毁过程在区块链上进行,公开不可逆,直到总量控制在1亿枚.plustoken钱包系统开发plustoken区块链钱包平台商城开发[孙女士 微电: 18*6156*140*62 扣扣:28*203*087*34]非平台客服,玩家勿扰!!! 非平台客服,玩家勿扰!!! 非平台客服,玩家勿扰!!! 每天中午12点结算利息和奖金,钱包货币可随时兑换eth转出提现有短信验证提醒,一次性

蚂蚁区块链平台BaaS技术解析与实践

摘要: 以"数字金融新原力(The New Force of Digital Finance)"为主题,蚂蚁金服ATEC城市峰会于2019年1月4日在上海如期举办.在ATEC区块链行业研讨会分论坛上,蚂蚁金服区块链BaaS技术总监李书博做了主题为<BaaS入门到精通:区块链技术如此简单>的精彩分享. 演讲中,李书博首先从技术方面介绍了蚂蚁区块链BaaS平台,随后从实践的角度介绍了客户如何快速地实现上链,最后带领大家一起详细地了解了平台的合作服务流程. 李书博 蚂蚁金服区块链

如何搭建区块链应用平台

区块链的诞生,将大幅降低价值传输成本,又一次极大解放生产力. 交易所开发  155---0116---2665   目前,区块链底层技术还不成熟,基础设施还不完善.区块链难以篡改.共享账本.分布式的特性,更易于监管接入,获得更加全面实时的监管数据.区块链迅速发展不是偶然,它能极大降低信息价值传输成本. 区块链发展如此迅速,背后有深刻的必然性.自互联网诞生以来,人类社会的信息传播成本得到极大的降低,信息传播效率的飞跃带来生产力的极大解放. 然而现在的互联网也存在固有的缺陷,它更关心的是信息的送达,

深圳区块链Baas企业应用解决方案服务平台

区块链作为2018年热潮之一,各界领头企业都在布局区块链生态.BAT这些互联网巨头公司也前前后后推出各种区块链产品.但最瞩目的还是区块链BaaS系统.区块链Baas即区块链服务. 区块链服务是指根据公链提供的基础设施开发公链应用,并运行应用提供服务..目前在区块链领域,只有各大公链的区块浏览器能称之为区块链服务,以及部分公链衍生应用:存证型-Factom,数字身份型-uPort等. 通俗一点讲,区块链服务就是在公链的基础上开发应用,比如在以太坊上开发DAPP.区块链BAAS系统可以让用户在此平台

网络支付区块链开发,搭建区块链支付平台

随着区块链支付的发展,区块链分布式账本技术将区块链上数字资.产流动与现实的现.金支付相连接.在全球互联网市场上能够发挥出传统金融机构无法替代的高效率.低成本的价值传递的作用.每个人的密码钱.包就可以发展成一个"自.金.融"平台,可以用于P.2.P 的支.付.存.款.转.账.换.汇.借.贷以及全.网.记.账.清.算.支付是金.融交易中必不可少的一个环节.在信息技术和金融业务不断融合的大趋势下,网络支付体系和网络支付的方法发生了深刻的变化,网络支付的理论和实践正在向泛中心化的网络支付聚焦,

四大区块链开源平台对比,中国BCOS如何立足?

近年来,以多方参与.智能协同.与价值分享等为主要特征的分布式商业逐渐兴起,区块链和分布式账本等技术实现了分布式商业中的对等.共享与透明规则,逐渐获得认可,并成为了前沿金融科技的核心代表,同时也越来越受到政府机关和国际组织的重视.在国务院印发的<"十三五"国家信息化规划>中,区块链技术亦被首次列入,迎来重大的发展机遇. 2017年7月31日,深圳前海微众银行.上海万向区块链股份公司.矩阵元技术(深圳)有限公司联合宣布将三方研发的区块链底层平台BCOS(BlockChainOp