排列问题 设R={r1,r2,...,rn}是要进行排列的n个元素,Ri=R-{ri}。集合x中元素的全排列记为Perm(X)。(ri)Perm(X)表示在全排列Perm(X)的每一个排列前加上前
顺晟科技
2021-06-16 10:46:28
204
简介
以太坊(以太博物馆)是一提供个智能合约(智能合同)功能的公共区块链(区块链)平台。本文介绍了一个简单的以太坊智能合约的开发过程。
开发环境
在以太坊上开发应用,首先需要安装其客户端,本文使用基于去语言的Geth,其官网为https://github.com/ethereum/go-ethereum.
步
在命令行环境中输入以下命令,连接到以太坊测试网络
geth - testnet - fast - cache=512控制台
一
这里写图片描述
第二步
在Geth提示符下输入以下代码,创建一个用户并设置密码
personal.newAccount()
一
这里写图片描述
第三步
在Geth提示符下输入以下代码,确认新用户的账户余额为0, 并开始"挖矿"(地雷)
eth.getBalance(eth.accounts[0])
miner.start()
一
2
这里写图片描述
第四步
新开一个命令行窗口并输入以下命令,将这个窗口连接到正在挖矿的窗口
geth attach
一
这里写图片描述
第五步
在Geth提示符下输入以下代码,确认新用户的账户余额有所增长
eth.getBalance(eth.accounts[0])
一
这里写图片描述
第六步
使用智能合约的在线编译器https://ethereum.github.io/browser-solidity/编译以下代码
合同编译
{
地址创建者;
字符串问候语;
函数hello world(string _问候语)公共
{
creator=msg.sender
问候语=_问候语;
}
函数问候()返回常量(字符串)
{
回复问候;
}
函数设置问候语(字符串_问候语)
{
问候语=_问候语;
}
/**********
标准kill()函数来回收资金
**********/
函数kill()
{
if (msg.sender==creator)
自杀(创作者);//终止此合同,并将剩余资金发送回创建者
}
}
一
2
3
四
5
6
七
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
这里写图片描述
第七步
编译器生成的代码如下
var _ helling=/* var类型的字符串在这里*/;
var helloworldcontrol=web 3。eth。contract([{'constant':false,' inputs':[],' name':'kill ',' outputs':[],' payable':false,' type':'function'},{ ' constant ' : false,' inputs ' :[{ ' name ' 3: ' _ new helling ',' type ' 3: ' string ' }),' name
你好世界=你好世界控制。新(
_问候语,
{
from: web3.eth.accounts[0],
数据: ' 606060405260405161044 e 38038061044 e 833981016040528080518201919060200150505050505 b 3360006006101000 a 81548173 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
gas: 4700000
},函数(e,合同){
console.log(e,contract);
if (typeof contract.address!=='undefined') {
控制台日志('合同被挖掘!地址: '合同。地址“事务哈希:”合同。事务散列);
}
})
一
2
3
四
5
6
七
8
9
10
11
12
13
14
设置显示的字符串以及减少费用(气体)
var _ Hello=' Hello World
gas: 300000
一
2
第九步
将修改完的代码复制到第四步的窗口中,如果出现
错误:帐户被锁定未定义
错误的话,则使用
私人的。解锁帐户(eth。帐户[0],'密码')
命令将用户解锁。
这里写图片描述
第十步
等候一段时间之后,geth窗口就会出现合同布雷!地址.表明合约代码发布成功
这里写图片描述
第十一步
使用helloworld.greet()命令来运行该合约
这里写图片描述
总结
本文介绍了一个简单的以太坊智能合约的开发过程。
28
2021-08
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06