一、编写示例智能合约
智能合约:
它是一段代码和数据的集合,可以部署以太坊网络上运行。类似于Java程序,Java程序通过Java虚拟机(JVM)将代码解释字节进行执行,以太坊的智能合约通过以太坊虚拟机(EVM)解释成字节码进行执行。同时智能合约有自己的账户,在时间或事件的驱动下能自动执行一些功能,如可以在相互之间传递信息,修改区块链的状态比如账户信息等。以太坊的智能合约是图灵完备,就是可以完全模拟一台计算机所能做的所有事情,比特币不是图灵完备,比如循环指令比特币就无法执行。
1.编写名称为SimpleStorage的智能合约
pragma solidity ^0.4.18;
contract SimpleStorage {
uint storedData;
function set(uint x)public {
storedData= x;
}
function get() public constant returns (uint) {
return storedData;
}
}
二、部署智能合约
1.按照下方图片操作,进入智能合约部署页面
2.智能合约部署过程,详细如下图,完成之后点击左下角的 DEPLOY 按钮
3.第二步完成,将出现以下界面,输入我们选择的账户的密码,点击SEND TRANSACTION
4.此时geth客户端需要启动挖矿,(如果之前启动,则不需要重新启动)进行智能合约的创建,在挖出12个块后,智能合约就创建完成了
三、运行智能合约
经过上述的操作,我们已经完成了一个智能合约的部署过程,接下来我们看看如何运行智能合约。
(一)在本节点运行智能合约
1. 下图中为已部署的智能合约
2.点击智能合约,进入智能合约的,试验刚才部署的智能合约,按照第二张图片的操作,进行试验
其他的智能合约部署与运行与上述一致,无非就是函数较多,参数多。
(二)在其他节点运行智能合约
如果在其他节点运行智能合约,我们就需要将智能合约的地址和接口复制下来,在其他节点上进行相应的操作,详细如下:
1.需要在智能合约上进行复制内容
按照以下操作:
2.将前边复制的内容按照图片所示粘贴,完成后,就可以发现这个智能合约在该节点运行了
四、总结
今天我们完成了在以太坊私有链上部署和运行第一个智能合约,这个是官方给的一个示例,我们通过该例子,了解了区块链智能合约的部署运行过程,之后,将深入的学习如何自己编写智能合约。
如果需要了解部署智能合约的工作原理,可以参考以下文章:
https://blog.csdn.net/sportshark/article/details/52249607
|