geth 搭建 私有链节点
文章目录
- 搭建 私有链节点
- 安装 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 搭建 私有链节点相关推荐
- 以太坊搭建私有链(非常详细!!!)(一)
我的系统:CentOS7 64位 环境需要:Go 1.9以上版本 geth工具 WARN [11-04|09:34:47.411] System clock seems off by -10h15m4 ...
- 利用geth搭建私链
利用geth搭建私链 OS:ubuntu 18.04 需要有go环境!! 下载go-ethereum源码 # /usr/local/目录下: git clone https://github.com/ ...
- 区块链实践(一) 以太坊网络+geth搭建私有网络实战
一.以太网网络 理解以太坊 PrivateNetwork 先要理解以太坊的两种官方网络, 目前以太坊官方提供了两种网 生产环境网络 测试网络 TestNet ** 1 以太坊生产网络 以太坊的生产 ...
- 区块链学堂(7):Geth 搭建私有网络-实战
在本章中我们将实战如何使用Geth,如何搭建以太坊的私有网络. 之前说过Geth是三种实现以太坊协议的工具之一,由于Geth是官方推崇的以及个人精力有限,对于另外两种工具的搭建私有网络,请参考网上资料 ...
- 区块链 - Geth 搭建私有网络-实战
2019独角兽企业重金招聘Python工程师标准>>> 参考原帖:http://www.ethchinese.com/?p=659 https://my.oschina.net/ic ...
- 【Get 以太坊技能】CentOS 7 Geth 搭建私链
前言 CentOS Linux release 7.4.1708 (Core) geth Version: 1.8.17-stable ([Get 以太坊技能]CentOS 7 Geth安装) 为啥搭 ...
- 利用geth创建私有链
在geth安装完成的情况下,我们就可以利用geth来创建我们的私有链或是同步公链上的数据.具体如何操作请看下文: 目录 创建私有链 准备工作 初始化 常用参数说明 启动私链 创建私有链 准备工作 创建 ...
- etherum 常用命令及搭建私有链
Etherum 启动脚本常用命令 通过 geth console 来快速启动一个快速同步的node, console 表示同时打开一个 js 交互接口. 如果在启动时,没加 console ,也可以通 ...
- 如何搭建以太坊私有链
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 如何搭建以太坊私有链1 今天讲一下如何搭建以太坊私有连,当然了在你阅读这篇文章的时候,最好是有一定基础,比如知道什么是以 ...
- 区块链开发之搭建以太坊私有链
(一)区块链开发之搭建以太坊私有链 本文链接:https://blog.csdn.net/rwdxll/article/details/82929417 1.安装ethereum/Go client( ...
最新文章
- ECCV2020 oral | 基于语义流的快速而准确的场景解析
- SSH与VMware的Linux虚拟机链接
- c语言编程取模运算ppt,c语言的取模运算
- 关于OUTLOOK 2007邮件无法打印的问题解决方法
- linux下的trap命令
- Nhibernate 对view 查询的几种方法
- EA与Rose UML建模工具比较
- Linux 后台开发运维人员常用的Linux命令汇总
- VMWare NSX安全生产和DMZ用例的详细设计指南
- python唯美壁纸_Python爬虫教程爬取5K分辨率超清唯美壁纸源码
- 单片机函数:_crol_和_cror_
- 打印机驱动无法安装到计算机是,解决方法:Win7无法安装打印机,也找不到核心驱动程序包。...
- Spring源码分析三:Bean标签解析之BeanDefinition
- 有T2 表中的数据,求出NAME中每组累加 / 每组总数的比例大于0.6 的id 和name
- 使用cython加速代码运行
- Invoking “make -j1“ failed
- 国产充电宝有哪些,国产充电宝哪个牌子的质量好?
- vim 打开文件默认回到上次编辑的地方
- meta标签详解(meta标签的作用)///////////////////////////转
- 网络里面计算机这么解除权限,电脑上软件的权限怎么关闭
热门文章
- ps软件与计算机不兼容怎么办,ps版本不兼容怎么办,ps怎么解决版本兼容问题
- 云服务器安全组设置后,依然无法访问端口(已解决)
- 【感悟】参加公司首届黑客马拉松有感
- win10安装Adobe 2022全新体验安装教程 你觉得到底香不香
- MTK-EIS电子防抖-gyro校准
- macos安装盘第三方工具制作_制作 macOS Mojave U盘USB启动安装盘方法教程 (全新安装 Mac 系统)...
- 阿里云ACA试题——云安全
- 如何看待IT培训这件事情?IT培训出来的人都一无是处吗?
- 编译 firefox linux,Linux下面Firefox 8.0.1的编译安装
- 无约束一维极值——黄金分割法