美文网首页Dapp开发
转载—DAPP实战:从0到1全过程(5)

转载—DAPP实战:从0到1全过程(5)

作者: 03e9c48218c1 | 来源:发表于2018-08-07 09:32 被阅读47次

转载微信订阅号(区块链之录)文章:

DAPP实战:从0到1全过程(5)

前面几篇文章着重讲解了下智能合约的基本语法、开发、编译以及调试方法,本章将为大家讲解下如何搭建以太坊私链。

01

以太坊私链

智能合约运行在以太链的虚拟机上面,合约编译通过之后会首先部署到以太链上,前几章讲解中合约的运行环境使用了Remix内置的javascirpt VM,方便调试验证合约。当合约开发和业务进行联调时,需要部署于一个正式的环境中,可以选择测试公链和部署私链,下面介绍常用的私链:testrpc和geth。

testrpc是在本地机器内存中模拟的一个以太坊环境,它在执行交易时是实时返回,而不等待默认的出块时间,这样就可以很快的验证所写的合约是否ok,当出现错误时,也能得到及时反馈,对于合约的开发调试来说更为方便快捷;geth是Go Ethereum开源项目的简称,它是使用Go语言编写且实现了Ethereum协议的客户端软件,也是目前用户最多,使用最广泛的客户端,通过geth客户端与以太坊网络进行连接和交互可以实现账户管理、合约部署、挖矿等众多有趣且实用的功能。

02

testrpc

testrpc是在本地机器内存中模拟的一个以太坊环境,它在执行交易时是实时返回,关于testrpc的文档请参考:

https://github.com/0xProject/testrpc

1. 安装

npm install -g ethereumjs-testrpc

testrpc的安装非常简单,前提是需要首先安装nodejs。

2. 运行

在命令行中输入testrpc 即可,启动后会有如下界面展示:

testrpc启动后会自动创建10个内置账户,此时我们可以使用这10个账户进行合约的测试(导入账号私钥即可,后面会具体讲解导入方法)。

还有一些其他经常使用的参数如下:

-p/--port:指定端口,默认是8545

-g/--gasPrice:指定gas price,默认是20000000000

-l/--gasLimit:指定gas limit,默认是0x47E7C4

-i/--network-id:指定networkId

-a/--accounts:指定启动时创建的账户个数,默认10

注意:testrpc是在内存中运行的以太坊环境,重启testrpc或者电脑都会导致里面存储数据丢失。

03

geth

下面介绍是用geth搭建以太链。

1. 安装

(1)下载预编译好的安装包

https://geth.ethereum.org/downloads

(2) 基于源码编译

https://github.com/ethereum/go-ethereum

下面介绍centeros系统安装以太链:

wget https://codeload.github.com/ethereum/go-ethereum/tar.gz/v1.8.11

tar -xzvf v1.8.11

cd go-ethereum-1.8.11

make

cd build/bin

安装好后就可以输入geth --help命令来验证是否安装成功。

2. 运行

以太坊支持自定义创世区块,要运行私链,我们就需要自定义创世区块,可以保存在一个json文件中,内容如下:

上面我们设置了一个和主链不同的chainId,主链的chainId为1。在启动私链之前呢,我们还需要创建一个目录用来存储数据,本文中创建了一个private-geth目录用来存储数据,现在可以初始化我们的私链了。

 私链初始化之后,会在数据目录下自动创建geth和keystore目录,这两个目录分别用来存储区块数据和账户数据。

输入上面的命令即可启动一个私链,上面的console参数表示启动一个可交互的命令窗口,networkid的值一定要和创建创世区块json文件中的chainId保持一致。此时可以在命令行窗口中输入各种命令了。

常用参数如下:

--datadir: 指定数据文件存放位置

--rpcport: 指定rpc端口,默认8545

--rpccorsdomain: 指定一个可以接收请求来源的以逗号分隔的域名列表(浏览器访问的话,要强制指定该选项)

--rpc: 启动HTTP-RPC服务

--port:网络监听端口,默认30303

--rpcapi: 指定需要调用的HTTP-RPC API接口,默认只有eth,net,web3

--networkid: 网络识别号,默认1

--keystore: 账号文件存放位置,默认放数据文件目录里

console: 启动一个console

3. 常用命令

上面我们创建了一个新账户,此时在keystore文件下会生成对应的账户文件,此文件也可以作为账户导入到钱包中。

本章为大家介绍了两个以太坊运行环境的安装和运行,下章将会为大家讲解truffle工具的使用。

相关文章

网友评论

    本文标题:转载—DAPP实战:从0到1全过程(5)

    本文链接:https://www.haomeiwen.com/subject/aicovftx.html