以太坊测试网络Ropsten部署智能合约

前言

相信看到这篇文章的筒子们,已经知道怎么在本地搭建一个geth的以太坊测试私有链环境,但我们有时候需要去验证下,如何在一个真实的环境中运行智能合约。查了些资料,终于在本地搭建了个以太坊测试网络ropsten的全节点,并部署了一个测试智能合约。可以参考Medium里的这篇文章Full Stack Hello World Voting Ethereum Dapp Tutorial-Part 2(需翻墙),跟我的稍微有些不同。请注意!本文是基于以太坊golang项目的!

一、环境准备

1、Ethereum的安装

可以参考这篇文章Building Ethereum.

其实就是有个可执行的geth就行了,当然你首先得要有go的运行环境,可以去网上搜下go的安装教程,这里就不赘述了。

2、nodeJS

下载和安装 node,找到对应你系统版本的。安装好以后进入命令行测试npm -v和node -v,测试node是否已经正确安装;

node安装

3、安装Truffle Framework

安装truffle,我们可以利用npm工具。打开命令行终端:

npm install -g truffle

二、以太坊测试网络Ropsten的搭建

打开命令行终端,输入:

geth --testnet --syncmode "fast" --rpc --rpcapi db,eth,net,web3,personal --cache=1024 --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*" --bootnodes "enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303,enode://6ce05930c72abc632c58e2e4324f7c7ea478cec0ed4fa2528982cf34483094e9cbc9216e7aa349691242576d552a2a56aaeae426c5303ded677ce455ba1acd9d@13.84.180.240:30303"

这是同步ropsten的区块,不知道为啥,我这边花了一个星期才同步好,看别人明明一天妥妥的可以同步好呀,尴尬 ̄□ ̄||

同步完成后,应该是如下图所示,图中的number应该是接近最新的区块,可查阅https://ropsten.etherscan.io/

Ropsten测试网络区块同步

三、智能合约的安装和部署

1、智能合约的安装

命令行打开一个文件目录,就是你要放智能合约测试代码的地方。执行命令:

npm install -g webpack

truffle unbox webpack

安装好以后,该目录下应该有类似下图的文件目录:

webpack智能合约项目目录

打开truffle.js文件,修改如下:


truffle.js文件

2、智能合约的部署

a、创建一个测试账户

打开一个新的命令行终端,输入命令:

truffle console

进入truffle控制台,输入命令

web3.eth.accounts

可以看到当前没有任何账户,我们需要创建一个新的测试账户,输入命令:

web3.personal.newAccount('这里输入你的密码')

//执行后你会看到系统给你创建了类似下面的账户

//0xac3cb439751fa6bf0618f2f9ae3ed5cb7b8cf893

web3.eth.getBalance(‘0xac3cb439751fa6bf0618f2f9ae3ed5cb7b8cf893’).toString()

//显示为0,后面会告诉你如何获取这个测试以太币

web3.personal.unlockAccount('0xac3cb439751fa6bf0618f2f9ae3ed5cb7b8cf893','前面你输入的密码',15000)

//true

b、获取ETH

打开火狐浏览器,下载MetaMask插件,网上的安装和使用教程都有,如下图,左上角选择Ropsten Test Net网络,点击BUY,就可以直接索取1eth,很方便的,如果实在嫌麻烦,联系我,我直接转给你。

MetaMask

c、智能合约的编译和部署

再打开一个终端命令行窗口,执行命令:

truffle compile

truffle migrate

如果没有报错,基本就成功的部署在以太坊测试链上了,如果有什么问题可以随时给我留言。

d、智能合约的运行

输入命令:

npm run dev

现在你应该就可以在localhost:8080上看到你的webpack智能合约项目。

注意

对了!智能合约的部署必须要等全部区块同步完毕,而且你的测试账户里必须得有eth!

你可能感兴趣的:(以太坊测试网络Ropsten部署智能合约)