主页 > 以太坊imtoken > Windows 10下搭建以太坊私链环境
Windows 10下搭建以太坊私链环境
2021-05-31
通过网上的资料,结合自己搭建的eth环境,希望对大家搭建区块链环境有所帮助。 下面开始进入准备工作。
本次搭建Windows环境下的私有链环境,需要做以下准备工作:
1. win10系统(家庭版),64位
2.以太坊钱包Ethereum-Wallet-win64-0-10-0(我用的是0.10.0版本)
3.以太坊geth客户端(我用的是1.4.11版本)
1.1 安装geth
Windows 需要 64 位系统。 从官网下载编译好的win64客户端。 下载解压后只有一个Geth.exe,运行安装即可。
安装完成后,使用cmd命令打开命令行,进入你安装geth的目录,输入geth –help命令。 如果如下图输出geth的信息,则安装成功。
D:\Study\geth>geth -帮助
名称:
geth - go-ethereum 命令行界面
用法:
geth [选项] 命令 [命令选项] [参数...]
版本:
1.4.11-稳定版
1.1.1 配置创世块
配置自己的创世块的目的是为了区分公链。 在同一个网络中,创世块必须相同,否则无法连接。 将名为genesis.json的初始创世块文件放在刚才的Geth安装目录下,文件内容如下:
{
“配置”:{
“链号”:7878,
“家园块”:0,
“eip155块”:0,
“eip158块”:0
},
“难度”:“200”,
“gasLimit”:“4294967295”,
“分配”:{
“7df9a875a174b3bc565e6424a0050ebc1b2d1d82”:{“余额”:“300000”},
“f41c74c9ae680c1aa78f42e5647a62f353b7bdde”:{“余额”:“400000”}
}
}
参数说明:
准备
1.1.2 初始化私有链节点
执行geth的init命令初始化私有链节点:
D:\Study\geth>geth --datadir .\data init private.json
I0301 22:59:16.676485 ethdb/database.go:82] 为 data\chaindata 分配了 16MB 缓存和 16 个文件句柄
I0301 22:59:16.717405 cmd/geth/main.go:299] 成功写入创世块和/或链规则集:f26adf7a562fc8c4cc60e31d2ac6dad88d57e52c4b38e9fd7337b580e90f025c
这将在当前目录下创建一个数据目录,用于保存区块数据和账户信息。
1.1.3 启动私链节点
执行以下命令:
D:\Study\geth>geth --rpc --datadir .\data --networkid 7878 控制台
D:\Study\geth>geth --rpc --rpcapi "eth,net,web3,personal" --datadir .\data --networkid 7878 控制台
I0301 22:59:41.986822 ethdb/database.go:82] 为 data\chaindata 分配了 128MB 缓存和 1024 个文件句柄
I0301 22:59:42.044666 ethdb/database.go:169] 关闭 db:data\chaindata
I0301 22:59:42.044666 cmd/utils/flags.go:592] 警告:没有设置 etherbase,也没有找到默认帐户
I0301 22:59:42.046660 ethdb/database.go:82] 为 data\chaindata 分配了 128MB 缓存和 1024 个文件句柄
I0301 22:59:42.066609 eth/backend.go:621] 升级数据库日志布隆箱
I0301 22:59:42.066609 eth/backend.go:629] 升级在 0 完成
I0301 22:59:42.066609 ethdb/database.go:82] 为 data\dapp 分配了 16MB 缓存和 16 个文件句柄
I0301 22:59:42.074587 eth/backend.go:172] 协议版本:[63 62],网络 ID:7878
I0301 22:59:42.074587 eth/backend.go:201] 区块链数据库版本:3
I0301 22:59:42.074587 core/blockchain.go:206] 最后一个标头:#0 [f26adf7a…] TD=200
I0301 22:59:42.075584 core/blockchain.go:207] 最后一个区块:#0 [f26adf7a ...] TD=200
I0301 22:59:42.075584 core/blockchain.go:208] 快速块:#0 [f26adf7a ...] TD=200
I0301 22:59:42.076581 p2p/server.go:313] 启动服务器
I0301 22:59:44.140065 p2p/discover/udp.go:217] Listening, enode://c33036ee5e687263b037973b8e0a2839ae7a6c8152fd952ad52d058c3c16875bdd8310adff378435b60fdba46d8cfdaf39fba8e4c8e8fd43554df2b727a2f390@100.94.99.164:30303
I0301 22:59:44.141062 p2p/server.go:556] 监听 [::]:30303
I0301 22:59:44.143057 node/node.go:296] IPC 端点打开:\\.\pipe\geth.ipc
I0301 22:59:44.150040 node/node.go:366] HTTP 端点打开::8545
I0301 22:59:44.198928 p2p/nat/nat.go:111] 映射网络端口 udp:30303 -> 30303(以太坊发现)使用 UPNP IGDv1-IP1
I0301 22:59:44.214865 p2p/nat/nat.go:111] 映射网络端口 tcp:30303 -> 30303 (ethereum p2p) 使用 UPNP IGDv1-IP1
欢迎使用 Geth JavaScript 控制台!
实例:geth/v1.4.11-stable/windows/go1.6.2
模块:admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
参数说明:
1.1.4 账户管理
l 创建一个新帐户
在 geth 控制台中,使用个人对象的 newAccount() 方法使用您选择的密码创建一个新帐户。
> personal.newAccount('11111111')
“0x059d9cfef0ea9f8bffff395f436d7bb342858047”
> personal.newAccount('22222222')
“0x9d7aad5c92db134e58620260da9f923ccf78b7e9”
输出的是新创建的账户地址(公钥),你的输出不会和上面的例子一样。 geth 将被保存到数据目录中的密钥库文件中。 自己记住密码,稍后您将需要它。
l 查询账户
> eth.accounts
[“0x059d9cfef0ea9f8bffff395f436d7bb342858047”以太坊钱包手机版,“0x9d7aad5c92db134e58620260da9f923ccf78b7e9”]
l删除账号
Geth没有提供直接删除以太坊账户的命令,但是可以通过删除本地文件来删除以太坊账户,因为每个以太坊账户对应一个文件
D:\>cd D:\Study\geth\data\keystore
2019/03/01 22:48 .
2019/03/01 22:48 ..
2019/03/01 22:48 491 UTC--2019-03-01T14-48-27.614861000Z--465f228819aa4f6b271ccbad6b60d472bbf34149
2019/03/01 22:48 491 UTC--2019-03-01T14-48-44.969795100Z--4b7254d0c7e7fec9a7e459fad506f7c8ef506129
l 查看账户余额
> eth.getBalance(eth.accounts[0])
l 矿业
没有钱的账户什么都做不了,需要挖矿才能赚到钱。操作方法是在geth控制台执行miner对象的start()方法开始挖矿。 命令执行如下
> miner.start(1)
I0301 23:01:24.884233 miner/miner.go:119] 开始挖矿操作(CPU=1 TOT=2)
I0301 23:01:24.884233 miner/worker.go:573] 用 0 个 txs 和 0 个叔块在块 1 上提交新工作。 拿了0
I0301 23:01:24.885229 eth/backend.go:454] ethash DAG ON 自动预生成(ethash 目录:C:\Users\45014\AppData\Ethash)
I0301 23:01:24.888222 ethash.go:259] 为纪元 0 生成 DAG(大小 1073739904)(000000000000000000000000000000000000000000000000000000000000000000)
tI0301 23:01:24.888222 eth/backend.go:461] 检查 DAG(ethash 目录:C:\Users\45014\AppData\Ethash)
后悔
> I0301 23:01:25.878153 ethash.go:276] 为纪元 0 生成 DAG,耗时 989.9318 毫秒
I0301 23:01:28.413715 miner/worker.go:339] 开采区块 (#1 / 9386c990)。 等待 5 个区块确认
I0301 23:01:28.413715 miner/worker.go:573] 用 0 个 txs 和 0 个叔叔在区块 2 上提交新工作。 拿了0
I0301 23:01:28.414718 miner/worker.go:573] 用 0 个 txs 和 0 个叔叔在区块 2 上提交新工作。 拿了0
I0301 23:01:29.496834 miner/worker.go:339] 开采区块 (#2 / 56bc0db5)。 等待 5 个区块确认
I0301 23:01:29.496834 miner/worker.go:573] 用 0 个 txs 和 0 个叔叔在区块 3 上提交新工作。 拿了0
I0301 23:01:29.497846 miner/worker.go:573] 用 0 个 txs 和 0 个叔叔在区块 3 上提交新工作。 拿了0
I0301 23:01:30.054354 miner/worker.go:339] 开采区块 (#3 / 2c125710)。 等待 5 个区块确认
几分钟后,查看账户余额:
> eth.getBalance(eth.accounts[0])
75000000000000000000
> eth.getBalance(eth.accounts[1])
执行miner对象的stop()方法停止挖矿:
> miner.stop()
l 查看块数
> eth.blockNumber
15
l 查看区块信息
伦理。 获取区块(5)
l 解锁账户
部署合约需要解锁帐户。 在geth控制台,使用personal对象的unlockAccount()方法解锁指定账号。 参数为账户地址和账户密码(创建账户时指定的密码):
> personal.unlockAccount(acc0)
解锁账户 0x059d9cfef0ea9f8bffff395f436d7bb342858047
密码:
真的
>
l转账操作
acc0 = eth.accounts[0]
acc1 = eth.accounts[1]
金额 = web3.toWei(0.01)
个人的。 解锁帐户(acc0)
eth.sendTransaction({from: acc0, to: acc1, value: amount})
查看交易状态:
> txpool.status
{
待定:1,
排队:0
}
执行挖矿:
miner.start()
停止挖矿:
矿工。 停止()
查询账号1:
> eth.getBalance(acc0)
169677500000000000000
> eth.getBalance(acc1)
10000000000000000
> txpool.status
{
待定:0,
排队:0
}
结论:转账操作必须在开始挖矿后才能生效,切记! ! ! !
1.2 以太坊钱包 1.2.1 启动钱包
打开ethwallet文件夹,运行Ethereum-Wallet.exe以太坊钱包手机版,如果右上角出现“PRIVATE-NET”,则证明钱包客户端已连接到我们的私有节点。
点击“启动应用程序”
进入钱包主页面
分类:
技术要点:
相关文章: