黑马程序员技术交流社区

标题: 【深圳校区】【以太坊傻瓜教程】如何创建私链 [打印本页]

作者: 柠檬leung不酸    时间: 2019-1-9 09:18
标题: 【深圳校区】【以太坊傻瓜教程】如何创建私链
教程简介:
创建私链的目的:
环境搭建:
如何创建私链:创建创世配置文件:

首先需要创建一个“创世”json配置文件,此文件描述了创世区块的一些参数。下面就是文件中的内容:

将上面这段代码复制到一个文本文件里并起名为genesis.json

创世!:

为了不和主链的数据冲突,这里建议建立自己的私链数据文件夹。在我的电脑上在E盘建了一个EthDBSpace作为以太坊实验工作区,并在里面创建了一个PrivChain文件夹作为我的第一个私链的数据存放文件夹
这里为了方便管理将genesis.json放在了EthDBSpace文件夹下

    geth --datadir "E:\EthDBSpace\PrivChain" init "E:\EthDBSpace\genesis.json"

–datadir 选项用来指定我们私链的数据目录。在我的电脑上是E:\EthDBSpace\PrivChain
init 命令为创世命令,后面紧跟着我们的创世配置文件路径。

创建账户:

为了在私链上做实验,我们还需要在私链上建立自己的账户

        geth --datadir "E:\EthDBSpace\PrivChain" console

我们由于已经创世成功所以第二次进入客户端时我们不用再次指定genesis.json文件路径,而是直接–datadir 指明私链数据路径即可。
console命令用来开启geth的命令行。

        personal.newAccount('Your Password')

personal.newAccount 函数用来创建账户,其中参数为账户密码

my=eth.accounts[0],此句的目的是将我们刚创建的账户地址赋值给my变量。这样可以简化后续账户地址输入。其中eth.accounts记录了本机上所有账户地址。由于我们第一次创建账户,所以目前电脑上只有一个账户。所以这里我们用eth.accounts[0]提取第一个账户地址。eth.getBalance函数用来获得账户余额,参数填入账户地址。这里的my变量记录的就是第一个账户的地址。

挖矿赚钱:

目前的以太坊使用POW(Proof of Work)共识机制来激励人们去维护账本记账。此机制的核心是系统出一道题,让全网有意记账节点来求解,第一个求解出题目答案的节点会获得新区块的记账权并获得eth作为奖励。其中有意记账的节点叫做矿工节点。下面我们在我们的私链上挖矿赚一些钱便于我们后续的转账实验。

        miner.start()        miner.stop()    eth.getBalance(my)

会看到我们的余额多了一大笔钱,显示的余额以以太坊货币单位wei来计算。关于wei到eth的换算表参见http://www.ethdocs.org/en/latest/ether.html

转账实验:

下面我们尝试下在我们自己创建的私链上进行转账
- 先创建第二账户,继续在geth命令行键入如下命令

将第二账户地址赋值给other变量,便于后续输入

        personal.unlockAccount(my)

由于目前是my账户中有钱,other账户没钱,所以这里解锁我们的转出账户my

        eth.sendTransaction({from:my, to:other, value:10000})

其中from为转出账户,这里我们输入记录了第一个账户地址的my变量
to为转入账户,这里我们输入记录额第二个账户地址的other变量
value指定了转出金额,单位为wei,这里我们转出10000wei

        miner.start()        miner.stop()

再次查询,发现转账已到位

总结:

到此本节教程结束,此教程我主要介绍了如何搭建一个以太坊开发实验环境,创建私链及在私链上挖矿转账。


文章仅作为分享

转载地址 https://blog.csdn.net/weixin_40401264/article/details/78095222







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2