之前用python实现了区块链的基本构造,但是想要部署智能合约的话并没有找到很好的解决方案。在搜集资料后,发现了以太坊。就去了解了一下用法,虽然网上的教程很多,但在自己操作的过程中还是遇到了很多的问题。在这里记录一下。
0x01 Windows下的Geth安装
首先给下下载地址,提取码:xk3x
网上都是关于在Ubuntu下的安装过程,安装十分方便,在Windows下找了好久的安装包,最后翻墙出去才下下来。双击安装即可。Windows下会自动将路径添加到环境变量中。安装完毕后直接终端下输入 geth -help,出现如下的界面即代表安装完成。
0x02 Geth创建创世区块
首先创建自己的私有链。
首先创建一个新的文件夹,在该目录下创建文件 genesis.json 并写入以下内容。
{
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00000000",
"gasLimit":"0xffffffff",
"config":{
"chainId": 666,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
}
}
这里网上有很多的版本,最终这个成功。如果遇到错误:Fatal1,就是没有添加如上的 “config” 参数。
在命令行中cd到该目录下,输入指令:
geth --datadir "./" init genesis.json
出现如下的界面,证明成功。
0x03 创建私有链
接着输入命令:
geth --datadir "./" --nodiscover console 2>>geth.log
以上的参数含义分别为
datadir:数据的存放目录 ./代表当前目录
--nodiscover:不对外公开,即在自己的私有网络进行测试
console 2:进入到Geth的命令行模式,可以通过命令对Geth进行操作
>>geth.log: 将Geth的活动存储到日志
出现如下界面代表成功:
接下来就可以写入Geth命令进行操作了。想要退出可以输入 exit
0x04 创建用户
输入命令,eth.accounts 查看当前用户列表。此时为空 []
接着使用 personal.newAccount("xxxx")来创建用户 其中xxxx为该用户的密码
0x05 挖矿开始
在命令行中执行命令 miner.start()
, 开始在我们的区块链上进行挖矿
0x06 挖矿结果
acc0 = eth.accounts[0]
eth.getBalance(acc0)
通过以上两条命令查看结果,不为0即成功
关于Geth的使用就先介绍到这里,接下来打算学习智能合约的平台 Remix。