第二篇:以太坊环境搭建
Posted 静思浅行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二篇:以太坊环境搭建相关的知识,希望对你有一定的参考价值。
一、下载并安装以太坊客户端geth
https://github.com/ethereum/go-ethereum/releases/
(为方便geth命令使用,建议把geth地址配置到系统环境变量path中。)
二、配置自己的创世文件
配置创世文件为了区分公有链和私有链,同一个网络中创世区块必须相同否则无法连通。
创建一个文件genesis.json并复制下面内容。
"config":
"chainId":15,
"homesteadBlock":0,
"eip155Block": 0,
"eip158Block": 0
,
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": ,
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "PICC GenesisBlock",
"gasLimit":"0xffffffff"
三、启动私有链
执行以下命令创建数据存放地址并初始化创世块
geth --datadir "%cd%\\chain" init genesis.json
注:geth常用命令
- eth:包含一些跟操作区块链相关的方法
- net:包含以下查看p2p网络状态的方法
- admin:包含一些与管理节点相关的方法
- miner:包含启动&停止挖矿的一些方法
- personal:主要包含一些管理账户的方法
- txpool:包含一些查看交易内存池的方法
- web3:包含了以上对象,还包含一些单位换算的方法
说明 | 命令 |
---|---|
创建用户 | personal.newAccount("密码") |
解锁账户 | personal.unlockAccount("账户") |
全部账户 | eth.accounts |
账户余额 | eth.getBalance("账户") |
转账 | eth.sendTransaction(from:my, to:other, value:10000) |
如何在私有链上创建节点集群
1.创建一个私有连并启动改私有连
geth --datadir ./data/01 init ./genesis.json
geth --datadir ./data/00 --networkid 314590 --ipcdisable --port 61910 --rpcport 8200 console 获取节点的地址 admin.nodeInfo.enode
启动另一个终端,初始化第二个节点
geth --datadir ./data/01 --networkid 314590 --ipcdisable --port 61911 --rpcport 8101 --bootnodes "上一个节点地址" console
注:以太坊网络节点能够互连需要满足条件:
1.相同的版本号, 2.相同的networkid(启动节点时通过geth命令中的--networkid指定)
使用geth搭建以太坊私有网络,这一次则要在私有网络中建立多个node组成的集群,并互相发现,产生交易.
为了在本地网络运行多个以太坊节点的实例,必须确保一下几点:
- 每个实例都有独立的数据目录(--datadir)
- 每个实例运行都有独立的端口.(eth和rpc两者都是)(--port 和 --rpcprot)
- 在集群的情况下, 实例之间都必须要知道彼此.
- 唯一的ipc通信端点,或者禁用ipc.
错误:执行miner.start()报错
ERROR[03-15|11:36:38] Cannot start mining without etherbase err="etherbase must be explicitly specified" Error: etherbase missing: etherbase must be explicitly specified at web3.js:3143:20 at web3.js:6347:15 at web3.js:5081:36 at <anonymous>:1:1
出现上面的错误需要设置一个挖矿的账号。 miner.setEtherbase("账户")
windows环境下安装truffle
1、确认当前系统以及安装了nodejs,未安装请下载安装 地址:https://nodejs.org/en/download/
2、打开命令窗口 输入命令 npm install -g truffle
truffle部署时报错:
Error: authentication needed: password or unlock 原因是账户未解锁 显示为账户没有解锁,需要给账户解锁。
首先停止挖矿
miner.stop() true 检查挖矿是否已经停止,eth.mining 输出为false时表示挖矿已经停止 eth.mining false
查看当前用户
eth.accounts
给用户解锁,这里是给第一个账户解锁
user1=eth.accounts[0]
personal.unlockAccount(user1)
重新部署智能合约,不会报错
解锁之后一直启动挖矿
miner.start()
以上是关于第二篇:以太坊环境搭建的主要内容,如果未能解决你的问题,请参考以下文章