美文网首页区块链
以太坊测试网络Ropsten部署智能合约

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

作者: 逍遥子_ | 来源:发表于2018-03-26 10:59 被阅读1551次

    前言

    相信看到这篇文章的筒子们,已经知道怎么在本地搭建一个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部署智能合约

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