当前位置:   article > 正文

以太坊学习笔记:私有链搭建操作指南

怎么在私有链上存储数据

虽然以太坊是一个公有链系统,但是我们可以通过设置一些参数来运行自己的私有链节点,在自己的私有链上进行开发和测试不需要同步公有链数据,也不需要花钱来买以太币,节省存储空间和成本,而且很灵活很方便。本文介绍使用geth客户端搭建私有链的操作步骤,同时会解释在这个过程中用到的各个命令及选项的含义和作用,最后会介绍geth的Javascript Console中的一些常用功能。

系统和软件

搭建私有链

一、准备创世区块配置文件

以太坊支持自定义创世区块,要运行私有链,我们就需要定义自己的创世区块,创世区块信息写在一个json格式的配置文件中。首先将下面的内容保存到一个json文件中,例如genesis.json。

  1. {
  2. "coinbase" : "0x0000000000000000000000000000000000000000",
  3. "difficulty" : "0x400",
  4. "extraData" : "0x0",
  5. "gasLimit" : "0x2fefd8",
  6. "nonce" : "0xdeadbeefdeadbeef",
  7. "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  8. "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  9. "timestamp" : "0x00",
  10. "alloc" : {}
  11. }

二、初始化:写入创世区块

准备好创世区块配置文件后,需要初始化区块链,将上面的创世区块信息写入到区块链中。首先要新建一个目录用来存放区块链数据,假设新建的数据目录为~/privatechain/data0,genesis.json保存在~/privatechain中,此时目录结构应该是这样的:

  1. privatechain
  2. ├── data0
  3. └── genesis.json

接下来进入privatechain中,执行初始化命令:

  1. $ cd privatechain
  2. $ geth --datadir data0 init genesis.json

上面的命令的主体是geth init,表示初始化区块链,命令可以带有选项和参数,其中--datadir选项后面跟一个目录名,这里为data0,表示指定数据存放目录为data0genesis.jsoninit命令的参数。

运行上面的命令,会读取genesis.json文件,根据其中的内容,将创世区块写入到区块链中。如果看到以下的输出内容,说明初始化成功了。

I0322 10:52:44.585282 cmd/geth/chaincmd.go:131] successfully wrote genesis block and/or chain rule set: b240e0678c2a8f87cf350225b528e3d97688aad6d4d84ee84e405c7fc9e37e4e

初始化成功后,会在数据目录data0中生成geth和keystore两个文件夹,此时目录结构如下:

  1. privatechain
  2. ├── data0
  3. │   ├── geth
  4. │   │   └── chaindata
  5. │   │   ├── 000002.log
  6. │   │   ├── CURRENT
  7. │   │   ├── LOCK
  8. │   │   ├── LOG
  9. │   │   └── MANIFEST-000003
  10. │   └── keystore
  11. └── genesis.json

其中geth/chaindata中存放的是区块数据,keystore中存放的是账户数据。

三、启动私有链节点

初始化完成后,就有了一条自己的私有链&#x

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/608480
推荐阅读
相关标签
  

闽ICP备14008679号