Windows下以太坊区块链环境搭建

1、Geth是什么?

        Geth 又名Go Ethereum. 是以太坊协议的三种实现之一,由Go语言开发,完全开源的项目。Geth 可以被安装在很多操作系统上,包括Windows、Linux、Mac的OSX、Android或者IOS系统。

        Geth官网:https://geth.ethereum.org/
        Geth的Github地址:https://github.com/ethereum/go-ethereum

       Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等等。

      

2、Geth安装

        主要讲解Windows 环境下的Geth安装,下载Windows-Geth安装包直接安装即可:

https://geth.ethereum.org/downloads/

        下载后双击安装,安装完成后Geth会自己配置环境变量,

在命令行中执行 geth version  查看到版本即安装成功,如下:

C:\Users\Administrator>geth version
Geth
Version: 1.8.3-stable
Git Commit: 329ac18ef617d0238f71637bffe78f028b0f13f7
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.10
Operating System: windows
GOPATH=
GOROOT=C:\go

3、使用Geth启动以太坊私有链

    新建工作目录文件夹,例如:Gth,在此文件下新建创世块文件:genesis.json,内容如下:

{
  "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "coinbase" : "0x0000000000000000000000000000000000000000",
    "difficulty" : "0x40000",
    "extraData" : "",
    "gasLimit" : "0xffffffff",
    "nonce" : "0x0000000000000042",
    "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "timestamp" : "0x00",
    "alloc": { }
}

  切换回命令行,执行命令,制造创世区块

扫描二维码关注公众号,回复: 74119 查看本文章
geth --datadir "./" init genesis.json

 创建以太坊私有链

geth --datadir "./" --nodiscover console 2>>geth.log

4、使用Geth对账户进行操作

//查看账户
eth.accounts    

//新建账户,ruoli为密码
personal.newAccount("ruoli")

//查看以太币数量
acc0 = eth.accounts[0]
eth.getBalance(acc0)

//开始挖矿
miner.start()

//停止挖矿
miner.stop()

5、安装Remix

    强烈建议新手使用Remix来进行开发,Remix是一个基于浏览器的Solidity编译部署环境,就可以不用安装Solidity,在线Remix连接如下:http://remix.ethereum.org

    在线环境由于网络的原因可能打开比较慢,也可以在本地安装Remix,本地源码安装步骤较为复杂,使用源码安装Remix准备工作如下

  • 在Github上下载最新的Geth源码

        https://github.com/ethereum/remix-ide

  • 最新版本Node.js

            http://nodejs.cn/download/

  • 安装最新版本Git

            https://gitforwindows.org/

  • 安装最新版本wget

            https://eternallybored.org/misc/wget/

            查看wget版本:wget -V

  • 安装python 2.7 版本

        https://www.python.org/downloads/

  • 安装 windows-build-tools

        npm install --global --production windows-build-tools

   准备完成后,在Remix源码根目录运行如下命令进行安装:

npm install
npm run build
npm run serve

启动成功后访问:http://localhost:8080 即可看到本地Remix开发环境。

6、Mist安装

        Mist 是以太坊官方提供的浏览器,通过Mist我们可以很方便的连接上我们的私有网络,从而更好的开发、调试、测试我们的智能合约。

        下载地址:https://github.com/ethereum/mist/releases/

       首先启动Geth:

geth --datadir "./" --nodiscover console 2>>geth.log

       然后启动Mist:

'C:\Users\think\Downloads\Ethereum-Wallet-win64-0-10-0\Ethereum Wallet.exe' --rpc "\\.\pipe\geth.ipc"

     

7、Ganache安装与使用

    Ganache是一个测试客户端,是基于本地内存执行的,拥有良好的界面,他能对Transation立即执行,迅速的创建和调用自己编写的智能合约,提升测试效率。

   Ganache 也是一个Javascript编写的Nodejs项目,Linux 系统 安装方式如下:

npm install -g truffle

  windows 环境下可以直接进行下载安装,下载地址如下:

  https://github.com/trufflesuite/ganache/releases

  下载安装后打开,界面如下:

   

8、Truffle安装

       Truffle是现在比较流行的一个Solidity智能合约开发框架,是使用Javascript编写的Nodejs项目。

        安装Truffle需要提前安装最新版本的Nodejs。

        使用如下命令即可安装 Truffle:

npm install -g truffle

        安装完成后,可通过如下命令查看 Truffle 版本

D:\RuoliCode\Truffle\RuoliCoin>truffle version
Truffle v4.1.6 (core: 4.1.6)
Solidity v0.4.21 (solc-js)

        新建Truffle工作目录,在目录中打开命令行输入命令 依次进行操作

truffle init  //初始化 空 Truffle 工程,此处我们使用下面这种方式初始化
truffle unbox webpack//下载metacoin 的示例代码,如果使用这种方法则不用建立空工程

truffle工程构建完成后,修改truffle.js 文件,指定本地 RCP Server 地址(Ganache安装与使用中有),如下:

module.exports = {
    networks: {  
        development: {  
            host: 'localhost',  
            port: '7545',  
            network_id: '*' // Match any network id  
        }  
    } 
};

继续进行solidity代码操作,如下:

truffle compile  //编译
truffle migrate  //部署
truffle test     //测试

  部署与测试可以看到 Ganache中第一个账户的以太币减少,所有的交易操作都可以在Ganache中进行查看。     

如果在执行编译命令时出现  “'module 未定义” 错误,如下图:

   修复方式如下:

  • 找到truffle.cmd文件
  • 备份此文件并且在当前目录下重命名truffle.cmd 为其他名称,例如:truf.cmd
  • 返回Truffle 代码根目录,使用 truf compile  命令进行编译。

 最后使用如下命令启动 刚刚下载webpack 示例代码

npm run dev

猜你喜欢

转载自my.oschina.net/ruoli/blog/1796803