基于Win10的Geth环境配置和MetaMask钱包的应用
前言
感谢由区块链Bi站文章的醍醐灌顶。
目录
- 安装geth
- 基于geth创建创世区块
- 安装MetaMask插件,以及私钥文件
- 挖矿
安装 Geth
基于Geth创建【创世区块】
创建一个项目目录,任你创建.然后新建一个genesis.json文件,粘贴下面的json配置代码。
{
"config": {
"chainId": 8434,
"homesteadBlock": 1,
"eip150Block": 2,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 3,
"eip158Block": 3,
"byzantiumBlock": 4,
"alien": {
"period": 2,
"epoch": 300,
"maxSignersCount": 5,
"minVoterBalance": 100000000000000000000,
"genesisTimestamp": 1536136198,
"signers": [
"0x393faea80893ba357db03c03ee73ad3e31257469",
"0x30d342865deef24ac6b3ec2f3f8dba5109351571",
"0xd410f95ede1d2da66b1870ac671cc18b66a97778"
]
}
},
"nonce": "0x0",
"timestamp": "0x5b8f92c2",
"extraData": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x47b760",
"difficulty": "0x1",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": {
"cbfc29c31a31c869f9eb59a084d9019965978a7e": {
"balance": "0x31d450f18af132720000000"
},
"393faea80893ba357db03c03ee73ad3e31257469": {
"balance": "0xd3c21bcecceda1000000"
},
"30d342865deef24ac6b3ec2f3f8dba5109351571": {
"balance": "0xd3c21bcecceda1000000"
},
"d410f95ede1d2da66b1870ac671cc18b66a97778": {
"balance": "0xd3c21bcecceda1000000"
},
"a25dc63609ea7ea999033e062f2ace42231c0b69": {
"balance": "0xd3c21bcecceda1000000"
}
},
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
之后打开cmd/powershell,切换到json文件的目录。
geth --datadir data2 init .\genesis.json #data2是一个输出目录参数。
启动创世区块,如果是最开始创建的创世区块,就使用以下命令。
geth --http --http.api "db,eth,net,web3,personal" --datadir data2 --networkid 1997 console 2 >> .log #data2是上一个命令的输出参数,.log是日志文件参数。
否则使用:
geth --http --http.api "db,eth,net,web3,personal" --datadir data2 --networkid 1997 console
唯一的区别就是不在重定向到日志输出了。
之后,这个区块链就算是启动起来了。我们到输出目录(在这里是data2)里面的keyStore里面进行查看,里面是空的。
验证节点信息:admin.nodeInfo
查看已存在账号:eth.accounts
之后输出一个[]表示里面是空的。
然后,创建账号personal.newAccount()
输入密码,用于测试。
届时,会在输出目录/keystore里面产生一个密钥文件。
可以通过以下命令来查看对应账户的余额:
eth.accounts[0]
//查看第一个账号地址
eth.getBalance(eth.accounts[0])
eth.getBalance(“0x7326bc89fe5a1d593afb5fa02479974be776a081”)
//括号内也可以直接填地址
可见余额为0
安装MetaMask插件,以及私钥文件
MetaMask是一个浏览器的插件,可以直接手动搜索并进行安装。
在这里,输入刚刚keystore中的密钥。这里有一个小漏洞,就是直接将本地私钥导入会导致崩溃。
退而求其次,我们反向推演。
将私钥文件以文本方式保存,粘贴到输出目录的keystore中。
之后切换到我们刚刚启动节点的控制台,输入:geth account import +你的私钥文件路径
输入在geth控制台设置的那个密码,发现生成的账户就是metamask的账户。
输入geth account list
可查看新导入的账户
挖矿
命令 | 描述 |
---|---|
miner.start(x) | 开始挖矿,x为线程数 |
eth.coinbase | 挖矿所得的奖励会进入矿工的账户 |
miner.setEtherbase(账号) | 设置挖矿账号 |
eth.getBalance(账号) | 获取当前账号余额 |
miner.stop() | 停止挖矿 |
geth在这里面就相当于是一个server(矿工的服务站),附带这一个MetaMask钱包,将其私钥(矿工的钱包账户)与geth做绑定,之后开启挖矿,所产生的收益都将进入到所指定的钱包里面去。