通过前一篇文章,我发现我本身对于智能合约还有不少认识不足的地方,不少地方可能认识的不够透彻,因此经过这篇文章的内容再来温习一下合约从开发到部署和调用的流程。这篇文章将使用最简单的方式来开发一个简单的智能合约,部署使用控制台的方式来部署。开发环境为windows10.html
合约代码
以太坊私链节点
remix在线编辑器
此次教程咱们使用一个爱情宣言来说述基础的合约功能。java
pragma solidity ^0.4.11;
contract Love{
string man;
string woman;
string love_words;//爱情宣言
string status="未签定";
function Love(string ma,string wom,string words){
woman=wom;
man=ma;
love_words=words;
}
function getloveWords() returns(string){
return love_words;
}
function getBothName() returns(string,string){
return (man,woman);
}
function order(){
status="已签定";
}
function getStatus()returns (string){
return (status);
}
}
复制代码
上面一共有4个成员变量和4个方法分别是:git
方法:github
其成员变量分别存放 双方的姓名,爱情宣言,签定状态。web
方法提供了获取爱情宣言,获取双方姓名,签定和查看签定状态的方法。数据库
最后这个合约还有一个构造函数:Love(string ma,string wom,string words)他和类名相同须要在建立合约时提供必要的参数(和java等语言中的构造函数同样)。json
合约编辑通常使用remix编辑器来实现,他提供了代码高亮,在线编译,调试,运行的功能。windows
咱们将代码复制到代码区以后等待编译完成,旁边的detail从禁止状态变成能够状态说明已经编译经过了。bash
在remix中有一个run选项卡,经过该选项卡能够很简单的建立和运行合约。编辑器
经过create按钮建立新的合约实例,输入框中的参数用逗号隔开,字符串使用英文的双引号引发来。建立好后的就能够很方便的调用了。
经过控制台建立合约稍微有点复杂,可是remix提供了很人性化的服务,将控制台部署所须要的参数和代码都给一一列出来了。
合约发布前须要先解锁帐户,使用personal.unlockAccount(帐户id)来交互式的解锁帐户。
而后复制上面提到的代码,修改构造函数的参数,粘贴到控制台中。
启动挖矿,等待挖矿处理完成后会获得合约的地址和交易hash,而且以前用到的 browser_snade_sol_love对象已经能够被调用了。
经过实例的方法按钮点击既能够调用合约的函数,部分须要传参数的,经过数据库输入便可,和建立合约时相似。
从日志窗体中能够很清楚的看到此次调用的花费,参数和响应的信息。
经过合约发布时的对象能够很方便的调用合约方法其中方法调用分为:
其中前两个为当须要修改区块链数据或者合约数据的时候的调用方法,call的形式主要用于本地调用且不修改任何数据只读等函数调用使用。
在这里有个坑,有可能会出现Error: invalid address
,缘由是没有传from
,交易发起者的地址。
调用须要修改区块链的方法后会获得一个收据号,经过收据号能够查询处理进度。
总的来说合约的调用仍是很简单的,后面的文字还将讲到其余的调用方式和经过其余语言来调用合约。
web3.js编译Solidity,发布,调用所有流程(手把手教程)