ChainIDE——合约部署教程

前言

广大开发者应该对如何在区块链上部署合约有一定的了解,如果我们想在区块链上部署自己写好的程序,我们就需要一个编译器将自己写好的代码转换为机器操作码的形式,再将它放到区块链上,供系统执行。

一般来说,程序编译的时候需要在本地布置一个编译环境,把代码放到编译环境当中进行编译,但是这个建立编译环境的过程非常的复杂,往往对于初学者来说会在这一步深受困扰。

随着时代的发展,在线编译器逐渐成为市场上的主流趋势,它通过云端服务器的方式,提供了一个已经搭建好的编译环境,减少了初学者和程序员的使用门槛,提高了移动办公的可能性。

以太坊基金会投资了Remix作为它的在线编译器,也被大家所熟知,但是其实区块链的种类众多,编译方式也大相径庭,一个更加包容且操作方式更加简单的在线编译器是各位开发者梦寐以求的。

今天要介绍的,就是一款适用于以太坊、蚂蚁联盟链、IOST、Hyperledger等众多区块链的在线编译器——ChainIDE。

网站地址:https://chainide.com/

累加器合约

那么今天我们就从头到尾进行以太坊Solidity的一个合约部署教学。

一个智能合约就相当于一个类,里面可以有很多的变量、函数、结构体等等,可以通过不同的逻辑来构建简单或者复杂的服务。

为了教学演示直观一些,我们使用一个累加器作为示例,累加器的意思是智能合约内有一个初始的变量,我们通过向智能合约内的函数输入变量进行累加,通过调用函数可以查看累加的终值。

首先我们新建一个合约,名字就叫PlusContract,我先将合约的内容简单的介绍一下。

pragma solidity >=0.4.0 <0.7.0;

contract PlusContract {
    uint Data;
    string hello="Hello world!";

    function plus(uint x) public {
        Data = x + Data;
    }

    function get() public view returns (uint) {
        return Data;
    }

    function helloworld() public view returns (string memory) {
        return hello;
    }
}

整个合约包含三个函数和两个变量,plus()函数是一个累加器,通过输入的变量和合约内的变量的相加来更改合约内变量的值,这个函数具有public属性,是所有人都可以调用的。

第二个函数get()是获取合约当中累加值Data,通过调用这个函数,可以得到累加值Data的大小,同样也是所有人都可以调用的,在函数后面加入view符号表示这个函数被调用是不需要gas的,类似于一种只读操作。

第三个函数helloworld()可以返回一个在合约内设定好的字符串hello,要注意的是这里的string变量后面需要加上memory标志,代表这个变量只保存在内存当中,字符串的内容可以自己设定,我这里写的是Hello world!,也希望各位开发者能像第一天写程序一样保持自己的初心。

合约写完之后进入部署。

合约的部署和调用

首先,我们点击右边的白色方框选取自己的要编译的合约,Solidity合约文件是以.sol作为结尾,选取完点击编译就会开始编译。

编译成功之后会弹出方框告知,同时在下部的调试框内也会出现编译成功的内容。

在编译成功之后就需要进行部署,部署需要用到Metamask钱包,关于metamask钱包安装使用以及如何获取测试币,可以通过这个教程来阅读。https://www.jianshu.com/p/38b64c84e394?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

部署时注意更改Gas price的值,25是比较合适的,点击部署按钮,1分钟左右即可完成部署。

在下方的消息框内可以看到部署情况,部署过程可以点击上面那个链接查询,部署成功后就通过下面的链接查询部署情况。

接下来,我们就可以调用已经部署好的合约了:

通过点击合约的选项可以选择要调用的合约,get()和helloworld()是不需要参数以及gas fee的,可以直接点击调用,plus()需要输入一个uint256的变量。

首先通过plus函数输入两次变量的值,一次50,一次25。

然后通过get()函数进行调用,可以看到返回的值为75,代表合约的功能部署成功。

然后我们再调用一次helloworld(),可以看到返回值为Hello world!,同样也实现了想要的功能。

结语

到这里,我们就完成了合约的部署以及调用功能,能在区块链上实现一些简单的逻辑,如果想进行更多的调试和功能探索,可以多看一看样例模板,也许能给大家带来一些灵感。

ChainIDE同样提供了一些模板,就在目录当中,大家可以尝试部署并且调用一下它们,当中也包括了一些更高级的功能和更复杂的逻辑,希望能给你们带来帮助。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容