文章目录

  • 搭建 私有链节点
    • 安装 geth:节点指令工具
      • 操作
    • 初始化:节点启动准备
      • 操作
    • 零点:配置 创世区块
      • 作用
      • 操作
      • 解释
      • 结构
  • 玩转 私有链节点
    • 创世:写入创世区块
      • 操作
    • 入世:启动节点
      • 操作
    • 交互:账户查询
      • 操作
    • 交互:账户转账
      • 操作
  • 参考

搭建 私有链节点

安装 geth:节点指令工具

操作

# Mac OS
brew tap ethereum/ethereum
brew install ethereum
geth --help # 检查是否安装成功

其他系统的 geth 安装操作:点击此处

初始化:节点启动准备

操作

# 创建节点工程, data0 存放区块链数据
mkdir $HOME/Desktop/private_chain
mkdir $HOME/Desktop/private_chain/data0# 创建两个账户, 因测试,密码可为 123
geth --datadir $HOME/Desktop/private_chain/data0 account new
geth --datadir $HOME/Desktop/private_chain/data0 account new

我们得到两个公钥。例如 公钥1公钥2

零点:配置 创世区块

作用

作为区块链的起始区块,其他区块直接或间接引用到创世区块。因此要运行以太坊私有链,需要定义自己的创世区块,创世区块信息写在一个 JSON 格式的配置文件中。

操作

将下面的内容保存到一个 json 文件中,例如 genesis.json。保存在 $HOME/Desktop/private_chain/

{"config": {"chainId": 10,"homesteadBlock": 0,"eip155Block": 0,"eip158Block": 0},"alloc"      : {"公钥1": {"balance": "20000000000000000000"},"公钥2": {"balance": "0"}}, "coinbase"   : "0x0000000000000000000000000000000000000000","difficulty" : "0x20000", "extraData"  : "","gasLimit"   : "0x2fefd8", "nonce"      : "0x0000000000000042","mixHash"    : "0x0000000000000000000000000000000000000000000000000000000000000000","parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000","timestamp"  : "0x00"
}

解释

├── config: 链配置,新区块的出块规则依赖链配置。
├────── chainId: 即区块链网络 id,用于连接其他节点,不同 id 网络的节点无法相互连接。以太坊公网 id 为 1。
├── alloc: 即分配,创世初始账户的资产配置,直接将账户资产写入区块中。
├── coinbase: 即「生成交易」中的 from。
├── difficulty: 挖矿难度系数,与出块速度成负相关。
├── extraData: 额外数据。
├── gasLimit: 十六进制,燃料上限。
├── nonce: 随机数。
├── parentHash: 母区块的哈希值。
└── timestamp: UTC 时间戳。

结构

此时的目录结构应该是这样的:

private_chain
├── data0
└── genesis.json

玩转 私有链节点

创世:写入创世区块

操作

# 进入工程目录
cd $HOME/Desktop/private_chain# 写入创世区块
geth --datadir data0 init genesis.json

返回的信息中看到 Successfully wrote genesis state,写入创世区块成功。

入世:启动节点

操作

# 启动节点并进入交互式控制台
geth --datadir data0 --networkid 10086 console

返回的信息中看到 Welcome to the Geth JavaScript console!,启动节点成功。

交互:账户查询

操作

# 交互式控制台中# 查询账户
> eth.accounts# 查询账户余额
> eth.getBalance(eth.accounts[0])
> eth.getBalance(eth.accounts[1])

查询到第一个账户有余额 20000000000000000000,第二个账户有余额 0

交互:账户转账

操作

# 交互式控制台中# 向第二个账户转账 5000 wei。报错 authentication needed: password or unlock。
eth.sendTransaction({'to': eth.accounts[1], 'from': eth.accounts[0], 'value': 5000})# 转账前解锁
personal.unlockAccount(eth.accounts[0])# 再转账则成功
eth.sendTransaction({'to': eth.accounts[1], 'from': eth.accounts[0], 'value': 5000})# 开启挖矿对交易进行打包。打包一个区块之后就停止挖矿。
miner.start(1);admin.sleepBlocks(1);miner.stop();

经过上述操作,查看第二个账户余额,就会发现为 5000,即转账成功。

参考

  • 如何搭建以太坊私有链
  • 以太坊私有链搭建指南

geth 搭建 私有链节点相关推荐

  1. 以太坊搭建私有链(非常详细!!!)(一)

    我的系统:CentOS7 64位 环境需要:Go 1.9以上版本 geth工具 WARN [11-04|09:34:47.411] System clock seems off by -10h15m4 ...

  2. 利用geth搭建私链

    利用geth搭建私链 OS:ubuntu 18.04 需要有go环境!! 下载go-ethereum源码 # /usr/local/目录下: git clone https://github.com/ ...

  3. 区块链实践(一) 以太坊网络+geth搭建私有网络实战

    一.以太网网络  理解以太坊 PrivateNetwork 先要理解以太坊的两种官方网络, 目前以太坊官方提供了两种网 生产环境网络 测试网络 TestNet **  1 以太坊生产网络 以太坊的生产 ...

  4. 区块链学堂(7):Geth 搭建私有网络-实战

    在本章中我们将实战如何使用Geth,如何搭建以太坊的私有网络. 之前说过Geth是三种实现以太坊协议的工具之一,由于Geth是官方推崇的以及个人精力有限,对于另外两种工具的搭建私有网络,请参考网上资料 ...

  5. 区块链 - Geth 搭建私有网络-实战

    2019独角兽企业重金招聘Python工程师标准>>> 参考原帖:http://www.ethchinese.com/?p=659 https://my.oschina.net/ic ...

  6. 【Get 以太坊技能】CentOS 7 Geth 搭建私链

    前言 CentOS Linux release 7.4.1708 (Core) geth Version: 1.8.17-stable ([Get 以太坊技能]CentOS 7 Geth安装) 为啥搭 ...

  7. 利用geth创建私有链

    在geth安装完成的情况下,我们就可以利用geth来创建我们的私有链或是同步公链上的数据.具体如何操作请看下文: 目录 创建私有链 准备工作 初始化 常用参数说明 启动私链 创建私有链 准备工作 创建 ...

  8. etherum 常用命令及搭建私有链

    Etherum 启动脚本常用命令 通过 geth console 来快速启动一个快速同步的node, console 表示同时打开一个 js 交互接口. 如果在启动时,没加 console ,也可以通 ...

  9. 如何搭建以太坊私有链

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 如何搭建以太坊私有链1 今天讲一下如何搭建以太坊私有连,当然了在你阅读这篇文章的时候,最好是有一定基础,比如知道什么是以 ...

  10. 区块链开发之搭建以太坊私有链

    (一)区块链开发之搭建以太坊私有链 本文链接:https://blog.csdn.net/rwdxll/article/details/82929417 1.安装ethereum/Go client( ...

最新文章

  1. ECCV2020 oral | 基于语义流的快速而准确的场景解析
  2. SSH与VMware的Linux虚拟机链接
  3. c语言编程取模运算ppt,c语言的取模运算
  4. 关于OUTLOOK 2007邮件无法打印的问题解决方法
  5. linux下的trap命令
  6. Nhibernate 对view 查询的几种方法
  7. EA与Rose UML建模工具比较
  8. Linux 后台开发运维人员常用的Linux命令汇总
  9. VMWare NSX安全生产和DMZ用例的详细设计指南
  10. python唯美壁纸_Python爬虫教程爬取5K分辨率超清唯美壁纸源码
  11. 单片机函数:_crol_和_cror_
  12. 打印机驱动无法安装到计算机是,解决方法:Win7无法安装打印机,也找不到核心驱动程序包。...
  13. Spring源码分析三:Bean标签解析之BeanDefinition
  14. 有T2 表中的数据,求出NAME中每组累加 / 每组总数的比例大于0.6 的id 和name
  15. 使用cython加速代码运行
  16. Invoking “make -j1“ failed
  17. 国产充电宝有哪些,国产充电宝哪个牌子的质量好?
  18. vim 打开文件默认回到上次编辑的地方
  19. meta标签详解(meta标签的作用)///////////////////////////转
  20. 网络里面计算机这么解除权限,电脑上软件的权限怎么关闭

热门文章

  1. ps软件与计算机不兼容怎么办,ps版本不兼容怎么办,ps怎么解决版本兼容问题
  2. 云服务器安全组设置后,依然无法访问端口(已解决)
  3. 【感悟】参加公司首届黑客马拉松有感
  4. win10安装Adobe 2022全新体验安装教程 你觉得到底香不香
  5. MTK-EIS电子防抖-gyro校准
  6. macos安装盘第三方工具制作_制作 macOS Mojave U盘USB启动安装盘方法教程 (全新安装 Mac 系统)...
  7. 阿里云ACA试题——云安全
  8. 如何看待IT培训这件事情?IT培训出来的人都一无是处吗?
  9. 编译 firefox linux,Linux下面Firefox 8.0.1的编译安装
  10. 无约束一维极值——黄金分割法