主页 > 怎样下载imtoken > 区块链开发(一)基于以太坊搭建私有链环境介绍

区块链开发(一)基于以太坊搭建私有链环境介绍

怎样下载imtoken 2023-05-02 07:01:33

Windows上安装ubuntu系统搭建私链步骤

前提是geth已经安装好了,可以参考上一节的解释

第 1 步:创建目录和 genesis.json

以命令行方式创建目录,例如geths,其中geths目录任意命名。

命令:mkdir geths

然后在 ubuntu 目录中会出现一个 geths 文件夹。

继续进入文件夹目录,创建文件genesis.json,文件名也可以任意。

genesis.json 文件内容:

区块链 以太坊 区别

(注意,如果版本复制过早,操作会出现错误,内容可以适当更改)

   {
  "config": {
        "chainId": 666,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

第二步:执行命令创建创世块

切换回命令行,执行命令,创建创世块

进入geths目录区块链 以太坊 区别,执行命令

geth --datadir "./" 初始化 genesis.json

区块链 以太坊 区别

此时,将在当前geths目录下新增两个文件夹geth和keystore。

geth中存储的数据是区块链的相关数据

keystore 将用户信息保存在链中

第三步:创建自己的私有链

geth --datadir "./" --nodiscover 控制台 2>>geth.log

请注意,此输出将日志打印到日志文件

区块链 以太坊 区别

第四步:在自己的私链上创建用户

输入命令eth.accounts,我们会发现返回值为[],这是因为此时虽然已经创建了以太坊的私链,但是还没有账户。

输入命令 personal.newAccount("xxx") ,该命令将创建一个密码为 xxx 的新用户。当然用户也可以把xxx改成123,或者123456,或者任意密码

再次输入命令eth.accounts区块链 以太坊 区别,我们会发现已经创建了一个新用户,也就是说我们已经创建了一个账户,我们可以通过re-personal.newAccount()ð.accounts创建多个账户

第五步:最重要的一步到这里,开始挖矿

在命令行执行命令 miner.start() 开始在我们的区块链上挖矿

区块链 以太坊 区别

等到 100%。这条以太坊私链将正式上线,以太坊将持续产生。

当心:

1. 挖矿挖出的以太币会默认保存在第一个账户,即eth.acccounts[0]。

2. 挖矿是执行智能合约的基础。如果你停止挖矿,不仅以太币将停止生成,而且所有智能合约调用都将无法正常工作。

3. 如果真的要停止挖矿,可以执行命令 miner.stop() 停止挖矿

4. 根据上面的命令,应该可以挖到以太坊了。如果没有,可能存在之前存在的链,此时应该删除之前的数据。也就是说,删除 ~/.ethash 文件夹和其中的文件。

区块链 以太坊 区别

5. 通常有人会出现miner.start()返回null,并没有刷新屏幕的信息,一直停留在null,原因回到第3步你把输出结果打印到日志,所以无法显示,exit 退出,再次运行 geth --datadir "./" --nodiscover console 即可。

Step6:挖矿开始后,查看主账户中的以太币数量

acc0 = eth.accounts[0]

eth.getBalance(acc0)

只要结果不为0,就说明挖矿成功!

退出挖矿:miner.stop()

退出当前geth,执行:exit

重新运行geth,直接进入第3步,无需执行前两步。