以太坊私有网络环境部署与实践

若是想要试试在以太坊上的操做,能够直接在官网下载个客户端,而后选择网络为私有网络便可。git

此时,你就能够经过客户端建立帐户、挖矿、转帐、部署智能合约、调用智能合约等等。github

若是但愿命令行部署,能够接着往下看。notice:下面内容讲的是geth钱包部署。json

系统环境ubuntu

Mac10.10.5(ubuntu系统下相似)网络

安装方式:spa

1、经过Homebrew安装命令行

brew tap ethereum/ethereum
brew install ethereum
能够经过brew install ethereum --devel命令安装开发分支。

2、经过源码安装3d

首先,下载项目:git clone https://github.com/ethereum/go-ethereum
安装所需依赖:brew install gmp go
最后构建geth:
cd go-ethereum
make geth

geth --help 查看是否成功安装blog

3、经过geth运行以太坊ip

1. 建立一个私有网络的目录,并进入该目录

mkdir test-geth

cd test-geth

2. 在私有网络目录下新建一个文件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": { } }

 将此内容拷如genesis.json中。

里面的数据尚未所有搞清楚,能够试着修改一下。 

3. 执行初始化命令,生成初始化数据。

geth --datadir data0 init genesis.json,数据在data0目录中,

4. 启动私有网络,geth --datadir ./data0 --networkid 11 --rpc --rpcaddr 99.1.187.159 --rpcport 8545 console,这里的参数能够本身根据须要指定。我在后续用sdk的过程当中发现不指定地址链接不到,还不知道为何,就先指定了。

好了,如今私有网络就启动了    :(  go的版本好低。。。  

4、使用geth尝试以太坊

1. 查看已有帐户

eth.accounts,固然,如今尚未帐户

2. 新建帐户

personal.newAccount(),连续输入两次相同密码就成功建立了一个帐户,展现的就是对外地址

那么私钥在哪?在data0/keystore目录下,格式为

3. 查询帐户余额

eth.getBalance(eth.accounts[0]),刚建立的帐户,余额为0

4. 挖矿,给帐户挣钱

miner.start(2); admin.sleepBlocks(1); miner.stop();

这里须要说明一下,miner.start(2)是两个cpu挖矿的意思,admin.sleepBlocks(1)是指挖了一个矿就停下,图里面有一个锤子🔨,miner.stop()是指中止挖矿。若是是第一次执行,那么须要等待DAG建立的过程,比较漫长,等待100percents就能够了,中间不要随便退出。在此查询余额就发现你的帐户里已经有钱了。

5. 转帐

新建一个帐户,并给他转钱。

eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[1], value:100})

是的,如图所示,出错了,显示帐户锁定了,这是由于他有密码,不能随便转,那咱们先打开它。

personal.unlockAccount(eth.accounts[0])

再转一次就成功了

你在查询余额的时候可能发现仍是没变化,那是由于尚未挖矿打包区块,因此再挖一次矿就能够了。

而后你能够多试试geth的命令,熟悉一下了。

相关文章
相关标签/搜索