今天成功搭建了一个私链并进行挖矿和转账做个简单记录,明天写详细教程!
在文件夹内新建一个txt输入以下代码:
-
在geth命令行中键入
-
点击回车后会出现
账户创建成功后會在命令下方以绿色字符列明创建账户的地址,也即账户的公钥
-
我们可以先查下账户余额在geth命令行中键入:
my=eth.accounts[0],此句的目的是将我们刚创建的账户地址赋值给my变量这样可以简化后续账户地址输入。其中eth.accounts记录了本机上所有账户地址由于我们第一次创建账户,所以目前电脑仩只有一个账户所以这里我们用eth.accounts[0]提取第一个账户地址。eth.getBalance函数用来获得账户余额参数填入账户地址。这里的my变量记录的就是第一个账户嘚地址
- 执行结果如下:
可以看到此时账户里没钱。在以太坊上转账、发布合约、执行合约都需要费钱而钱来自挖矿,下面我们先挖矿賺些钱
目前的以太坊使用POW(Proof of Work)共识机制来激励人们去维护账本记账。此机制的核心是系统出一道题让全网有意记账节点来求解,第一个求解出题目答案的节点会获得新区块的记账权并获得eth作为奖励其中有意记账的节点叫做矿工节点。下面我们在我们的私链上挖矿赚一些钱便于我们后续的转账实验
- 继续在geth命令行键入如下命令开始挖矿:
-
点击回车后会看见客户端开始挖矿,命令行里不断显示出块进度
由于是私链目前就一个节点在挖矿不存在竞争。所以开挖若干秒即可停止挖矿挖得得钱已经可以进行后续实现。
- 此时再次查看我们的账户余額
会看到我们的余额多了一大笔钱显示的余额以以太坊货币单位wei来计算。关于wei到eth的换算表参见
下面我们尝试下在我们自己创建的私链上進行转账
- 先创建第二账户继续在geth命令行键入如下命令
将第二账户地址赋值给other变量,便于后续输入
- 在转账前需要对转出账户进行解锁继續在geth命令行键入如下命令
由于目前是my账户中有钱,other账户没钱所以这里解锁我们的转出账户my
-
回车后会提示输入密码,我这个账户的密码为123输入后回车即可解锁
-
开始转账,在geth命令行键入
其中from为转出账户这里我们输入记录了第一个账户地址的my变量
to为转入账户,这里我们输入記录额第二个账户地址的other变量
value指定了转出金额单位为wei,这里我们转出10000wei
-
键入后结果如下
可以看到转账请求已经提交
-
此时我们再次查看两个賬户的余额
-
查询余额结果如下:
此时会发现一个奇怪现象前面的转账请求已经提交,为什么两个账户的余额没有发生任何变化?回想刚才我們讲到的以太坊使用POW共识激励矿工记账,而由于我们创建的是私链目前只有我们一个节点所以此时并没有其它节点参与记账。所以我們需要通过挖矿把这笔转账记录到块中 -
继续挖矿,在geth 控制台中键入
再次查询,发现转账已到位
到此本节教程结束,此教程我主要介绍了如何搭建一个以太坊开发实验环境创建私链及在私链上挖矿转账。