IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Geth搭建Ethereum私链 -> 正文阅读

[区块链]Geth搭建Ethereum私链

Centos7 搭建以太坊私链

阿里云,centos7

Geth环境安装

目录说明

/root/opt/install-package: 存放上传/下载的安装包
/root/opt/nodejs: node.js安装位置
/root/opt/cmake: cmake安装位置
/root/opt/go: golang安装位置
/root/opt/go-ethereum: geth安装位置
/root/opt/myChain: 私链存放位置

安装golang

下载

cd /root/opt/install-package
#下载
wget https://studygolang.com/dl/golang/go1.16.3.linux-amd64.tar.gz
#解压
tar -zxvf go1.16.3.linux-amd64.tar.gz -C /root/opt

配置环境变量

vim /etc/profile
export GO_HOME=/root/opt/go
export PATH=$PATH:$GO_HOME/bin

# 配置文件生效
source /etc/profile

配置Golang环境变量

# 开启mod模式
go env -w GO111MODULE=on
#配置代理
go env -w GOPROXY=https://goproxy.io,direct

安装node.js

web3.js 依赖node.js

下载

cd /root/opt/install-package

# 下载压缩包
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz
xz -d node-v10.16.3-linux-x64.tar.xz 

#解压
tar xvf node-v10.16.3-linux-x64.tar -C /root/opt

#目录重命名
cd  /root/opt
mv node-v10.16.3-linux-x64/ nodejs

配置环境变量

#配置环境变量
vim /etc/profile
export NODE_HOME=/root/opt/nodejs
export PATH=$PATH:$NODE_HOME/bin

# 配置文件生效
source /etc/profile

# 查看版本
node -v
npm -v

npm 换源

# 查看配置
npm config ls

#换源
# 淘宝
npm config set registry https://registry.npm.taobao.org/

# 官方
npm config set registry http://www.npmjs.org

安装 gcc-c++

下载

 yum install gcc-c++ 

安装cmake

下载

cd /root/opt/install-package

#下载
wget https://cmake.org/files/v3.15/cmake-3.15.2.tar.gz
tar -zxvf cmake-3.15.2.tar.gz -C /root/opt

#更改目录名
cd /root/opt
mv cmake-3.15.2/ cmake

安装

#安装
cd /root/opt/cmake
./bootstrap
gmake
gmake install

# 查看版本
cmake --versionS

安装NTP

# 下载安装
yum install ntp

#开启网络时间同步(rpc需要)
systemctl enable ntpd 
systemctl start ntpd

安装Geth

下载官网:https://geth.ethereum.org/downloads/

下载

mkdir -p  /root/opt/go-ethereum/
# 解压到 /root/opt/go-ethereum/
tar zxvf geth-linux-amd64-1.10.8-26675454.tar.gz -C /root/opt/go-ethereum/

# 重命名
cd /root/opt/go-ethereum/
mv geth-v1_10_8 bin

配置环境变量

# 配置环境变量
vim /etc/profile
export GETH_HOME=/root/opt/go-ethereum/
export PATH=$PATH:$GETH_HOME/bin

# 配置文件生效
source /etc/profile

# 查看版本
geth version

搭建私链

POA 私链

数据目录创建

#数据目录
mkdir -p /root/opt/myChain/poa
# 日志文件目录
mkdir /root/opt/myChain/poa/logs
#日志文件
touch /root/opt/myChain/poa/logs/outputs.log

创建私链并启动

非rpc

geth --datadir /root/opt/myChain/poa --dev console 2>/root/opt/myChain/poa/logs/outputs.log

rpc

# 端口默认8545
geth --datadir /root/opt/myChain/poa --networkid 15 --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcapi "db,eth,net,web3" --dev --allow-insecure-unlock console 2>/root/opt/myChain/poa/logs/outputs.log

# --dev 没有交易不会挖矿
# --dev.period 自动挖矿
# --dev.period value  开发者模式下挖矿周期 (0 = 有pending状态交易时进行挖矿) (默认: 0)
#  --dev.period 1 --mine

查看日志(再开一个窗口)

tail -f /root/opt/myChain/poa/logs/outputs.log

查看余额

#单位wei(poa自带一个开发账号,余额有不少)
eth.getBalance(eth.accounts[0])

MetaMask远程连接

在这里插入图片描述

转账测试

# MetaMask上有一个账户 0xd67c9e6183B58E256908C0627d170CF036C2A31A
# from:eth.accounts[0] 开发账户
eth.sendTransaction({from:eth.accounts[0], to:"0xd67c9e6183B58E256908C0627d170CF036C2A31A", value:web3.toWei(10, 'ether')})

在这里插入图片描述

POW私链

创建目录

# 创建数据目录
mkdir -p /root/opt/myChain/pow
# 创建日志目录
mkdir /root/opt/myChain/pow/logs
# 创建日志文件
touch /root/opt/myChain/pow/logs/outputs.log

创建创世信息文件

vi  /root/opt/myChain/pow/genesis.json
{
  "config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "ethash": {}
  },
  "difficulty": "2000",
  "gasLimit": "2100000",
  "alloc": {
        "d67c9e6183B58E256908C0627d170CF036C2A31A":{"balance":"30000000000000000000"}, 
        "9FD09364145Ef2D6b4fa8e08c6a53EE62aC2BBa9":{"balance":"30000000000000000000"}
    }
}
networkid: 区块链id, 不要与主网,测试网相冲
alloc: 指定的账户

初始化

geth --datadir /root/opt/myChain/pow init /root/opt/myChain/pow/genesis.json

启动

非rpc

# 本机启动
geth --datadir /root/opt/myChain/pow console 2>/root/opt/myChain/pow1/outputs.log

htpp启动

geth --networkid 15 --datadir /root/opt/myChain/pow --http --http.port 8545 --http.addr "0.0.0.0" --port 30303 --http.corsdomain "*" --http.api "eth,net,web3,personal,miner" console 2>/root/opt/myChain/pow/logs/outputs.log

rpc启动

# network 15要和设置的一致
geth --datadir /root/opt/myChain/pow --networkid 15 --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcapi "db,eth,net,web3" --allow-insecure-unlock console 2>/root/opt/myChain/pow/logs/outputs.log

日志查看

tail -f /root/opt/myChain/pow/logs/outputs.log

rpc 测试-postman

http://ip:8545
{
    jsonrpc: "1.0",
    method: "eth_getLuck",
    params: [],
    id: 15
}

在这里插入图片描述

查看测试:

eth.getBalance("d67c9e6183B58E256908C0627d170CF036C2A31A")
eth.getBalance("9FD09364145Ef2D6b4fa8e08c6a53EE62aC2BBa9")

在这里插入图片描述

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:11:36  更:2021-09-18 10:13:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/11 20:12:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码