以太坊智能合约测试环境搭建

搭建基于以太坊go-ethereum的私有链环境

ubuntu下安装命令

打开命令行窗口,或通过快捷键CTL+ALT+T,依次输入以下命令,即可安装成功:

sudo apt-get install software-properties-common

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo add-apt-repository -y ppa:ethereum/ethereum-dev

sudo apt-get update

sudo apt-get install ethereum

安装测试

安装完成之后在命令行输入:

geth--help

如果现实出命令行各种参数提示信息,则说明安装成功。

geth同步以太坊节点请参考https://github.com/ethereum/go-ethereum

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

下载mist工具

https://github.com/ethereum/mist/releases

查看ubuntu位数 sudo uname --m

wget https://github.com/ethereum/mist/releases/download/v0.9.3/Mist-linux64-0-9-3.zip

unzip  Mist-linux64-0-9-3.zip

cd linux-unpacked/


教程:http://www.ethchinese.com/?p=659

genesis.json 来源:http://www.jianshu.com/p/3445ff08229a


Step 1: 建立目录和genesis.json

    {

        "config": {

            "chainId": 15,

            "homesteadBlock": 0,

            "eip155Block": 0,

            "eip158Block": 0

        },

        "difficulty": "10000",

        "gasLimit": "2100000",

        "alloc": {

            "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },

            "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }

        }

    }


Step 2: 执行命令,创建创世区块

geth --datadir "./" init genesis.json

#geth --datadir path/to/custom/data/folder init genesis.json

geth中保存的是区块链的相关数据

keystore中保存的是该链条中的用户信息

将来在这个数据目录下运行geth将使用你已经定义的创世块

#geth --datadir path/to/custom/data/folder --networkid 15


Step 3:创建自己的私有链条

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


Step 4:在自己的私有链条上创建用户

personal.newAccount("xxx")      创建账号,xxx为密码

eth.accounts                    列出账号清单


Step 5: 输出区块链的Log

新的终端执行命令 tail -f geth.log


Step 6: 最重要的一步来了,开始挖矿!

miner.start()

1.挖矿挖到的ether币会默认保在第一个账户中,即eth.acccounts[0]

2.挖矿是执行智能合约的基础。如果停止挖矿的话,不仅以太币会停止生成,所有智能合约的调用也会不起作用。

3.如果真的要停止挖矿,可以执行命令miner.stop()来停止挖矿

4.按上面的命令,应该是可以实现以太坊挖矿的。如果不行的话,有可能就是之前有存在的链,此时应该删除之前的数据


Step 7: 查看挖矿日志

#~!!#!T)&*&()*_)*()&*

Step 8: 挖矿启动后,查看主账户的以太币数量

acc0 = eth.accounts[0]

eth.getBalance(acc0)



连接别人的私链


geth --datadir "./" init genesis.json

vi genesis.json

vi static-nodes.json

geth --identity "lqp" --rpc --rpcport 8889 --rpccorsdomain "*" --datadir "/home/pdd/ntest" --port "30333" --rpcapi "db,eth,net,web3" --networkid 98880 console 2>>geth.log

你可能感兴趣的:(以太坊智能合约测试环境搭建)