18910140161

以太坊智能合约编写实例

顺晟科技

2021-06-16 10:45:14

347

本文主要介绍智能合同的工作原理和部署过程。

合同部署流程

一般来说,部署智能合同的步骤是1:

启动一个Ethereum节点(比如geth或testrpc)。

使用solc编译智能合同。=获取二进制代码。

将已编译的合同部署到网络。(这一步将消耗以太网,您需要使用默认地址或您的节点的指定地址来签署合同。)=获取合同的区块链地址和ABI(合同接口的JSON表示,包括变量、事件和可调用方法)。(翻译:作者在这里把ABI和合同界面混淆了。ABI是契约接口的二进制表示。)

用web3.js提供的JavaScript API调用契约.(根据调用的类型,可能会消耗Ethereum。)

下图显示了部署过程:

您的DApp可以为用户提供一个界面,以便在使用之前部署所需的合同(如步骤1至4所示),或者您可以假设合同已经部署(通用方法),并直接从使用合同的界面开始(如步骤6所示)。

智能合同实例

接下来,我们将使用geth的控制台开发一个简单的智能契约,编译并部署在私有链上,最后与它进行交互。完成这些后,我们可以对智能合同的运行机制有更深入的了解。这个例子结合了王小明关于以太网发展的演示视频和关于以太网项目交易和合同的维基。

打开测试网络的控制台

输入以下命令:

geth-data dir ' ~/ethdev '-dev console 2 geth . log

显示如下:

zcc @ Ubuntu : ~ $ geth-datadir ' ~/ethdev '-dev console 2 geth . log

欢迎使用Geth JavaScript控制台!

instance : Geth/v 1 . 4 . 18-稳定/linux/go1.6.2

coinbase : 0 XB 005804 a 49 e 73 ACB 17 D1 e 7645 DFD 0 a 33 DDE 6 eb0 e

位于: 217区块(2016年11月1日星期二05:21:38太平洋时间)

datadir: /home/zcc/ethdev

modules : admin :1.0 debug :1.0 et H3 33601.0 miner :1.0 net :1.0 personal :1.0 RPC 33601.0 shh 33601.0 txpool 33601.0 web :1.0

这样,我们打开测试网络的控制台,除非另有说明,否则以下步骤将在控制台中完成。

检查编译器

我们的智能契约的下一个例子是使用实体语言开发的。因此,在此之前,我们应该确保已经正确安装了solidity编译器。输入以下命令进行检查:

eth .get编译器()

['坚固性']

我们发现solidity的编译器安装正确。如果返回值为空数组,请输入以下命令进行安装:

sudo add-apt-repository PPA : ether eum/ether eum

sudo apt-get更新

sudo apt-get install solc

如果在输入个命令时返回错误,请尝试重新启动系统。

撰写智能合同

我们写一个函数来求解乘以7的结果,就是输入一个值a,返回值a*7。

source=' contract test { function multiply(uint a)returns(uint d){ return a * 7;}}'

contract test { function multiply(uint a)returns(uint d){ return a * 7;}}'

一个

2

编译智能合同

contract=eth.compile.solidity(来源)。试验

{

代码: '0x 6060606040526038806010600396000 f 3606060405260 e 060020 a 6000350463 c 6888 fa 18114601 c 575 b 6002565 b 36025760760435026040404040404050505051918251515 c 575 b 60256025 b 3576006007600404504

信息: {

遵守定义: [{

constant: false,

inputs: [.],

名称: '倍数',

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航