eth搭建私链(区块链之以太坊搭建私有链)

  eth搭建私链(区块链之以太坊搭建私有链)

文章引言

  

以太坊私有链搭建,可以给想接触和玩的新手提供一个入门体验,你们真正感受下区块链的魅力。还有就是在测试环境中也可以的,以太坊主网数据同步始终都是一个硬伤,硬盘消耗太大而且国内同步一般很难完全实现的了,下面的文章就是为了更大家提供一定的方便,详细的讲解里面的步骤。

  


  

实战案例

新建创世文件


  

新建以太坊工程目录

  

mkdir -p /home/ubuntu/data/eth_data

新建创世配置文件

  

vim genesis。json


  

配置内容如下参考,具体根据情况修改。

  

# genesis。json{ ";nonce";! ";0x0000000000000042";, ";timestamp";! ";0x0";, ";parentHash";! ";0x0000000000000000000000000000000000000000000000000000000000000000";, ";mixhash";! ";0x0000000000000000000000000000000000000000000000000000000000000000";, ";extraData";! ";0x";, ";gasLimit";! ";0x80000000";, ";difficulty";! ";0x3";, ";coinbase";! ";0x3333333333333333333333333333333333333333";, ";config";!{ ";chainId";! 55, ";homesteadBlock";! 0, ";eip155Block";! 0 }, ";alloc";! {}}

参数设置:

  

  • nonce:64位随机数,用于挖矿
  • timestamp:创世块的时间戳
  • parentHash:上一个区块的hash值,因为是创世块,所以这个值是0
  • mixhash:与 nonce 配合用于挖矿,由上一个区块的一部分生成的 hash。
  • extraData:附加信息,任意填写
  • gasLimit :对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们就测试链,所以随意填写。
  • difficulty:难度值,越大越难
  • coinbase:矿工账号,第一个区块挖出后将给这个矿工账号发送奖励的以太币
  • alloc: 预设账号以及账号的以太币数量,测试链挖矿比较容易可以不配置
  • chainId 指定了独立的区块链网络 ID,不同 ID 网络的节点无法互相连接。

初始化创世区块

geth --datadir=/home/ubuntu/data/eth_data init /home/ubuntu/data/eth_data/genesis。json

启动网络节点

geth --identity ";TestNode"; --rpc --rpcapi web3,eth,net,db,personal,admin --rpcaddr 0。0。0。0 --rpcport ";8545"; --datadir=/home/ubuntu/data/eth_data --port ";30303"; --ws --wsaddr 0。0。0。0 --wsport ";8546"; --wsorigins=";*"; --nodiscover console


  

参数说明

  

  • datadir, 设置当前区块链网络数据存放的位置
  • init,初始化,生成创世区块
  • identity, 自定义的节点名字
  • rpc , 允许 HTTP-RPC 访问
  • rpcport , HTTP_RPC的访问端口,默认为8545
  • port , 网络监听端口,默认为30303
  • datadir, 设置当前区块链网络数据存放的位置
  • console, 启动命令行模式,可以在Geth中执行命令
  • nodiscover, 私有链地址,不会被网上看到


  

  

开始挖矿

# 创建一个新账号,密码为123456personal。newAccount(";123456";)# 查看所有账号eth。accounts# 开始挖矿miner。start(1)# 停止挖矿miner。stop()# 查看节点admin。nodeInfo。enode# 加入节点admin。addPeer(";enode!//b753493071f1983fe7017425713dea2ef6a963db52d73b0ae6f0bc3a88f18bbe874237069c1d72f270a3213ce6f892b6c7b10524984051e2e556c63bad9ec387@192。168。1。126!30303";)# 查看节点连接net。peerCountadmin。peers# 查看账户金额web3。fromWei(eth。getBalance(eth。accounts[0]), ";ether";)# 查看区块高度eth。blockNumber# 查看第10个区块的细节eth。getBlock(10)


  

转账交易

开始转账

  


  

转账前先解锁账户

  

eth。sendTransaction({from!eth。accounts[0],to!eth。accounts[1],value!web3。toWei(30,";ether";)})


  

解锁账号

  

personal。unlockAccount(eth。accounts[0])


  

查看区块内容

  

eth。getBlock(11)


  

返回结果:

  

{ difficulty! 131072, extraData! ";0xd88301080c846765746888676f312e31302e33856c696e7578";, gasLimit! 2124527304, gasUsed! 21000, hash! ";0x68495bf329e886a8043d1af74d145a870ae6aa2d4e42134499b3730e5c35d4fe";, logsBloom! ";0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";,比特币走势 miner! ";0x9cac40f650e2cbe459dcb32c7c23103497134467";, mixHash! ";0xbbf5053e0409cded11f0c8f1059cad389d366723cb2f6c077d6c71c36d31a254";, nonce! ";0x3cc35610dc92f143";, number! 11, parentHash! ";0x819037bcc65eb789eca82fcc3d6c686852ab8297df6396cffa6cfffeaffbcd88";, receiptsRoot! ";0x170861bbc9f17f29b4c8ef046f44fa7435c3ad3a54e752591c87050345c29d31";, sha3Uncles! ";0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347";, size! 653, stateRoot! ";0x6e44fbe836ebf62523a37bbbb1beaad0c0802be9ff5c4e7b19c16a1eb4c50112";, timestamp! 1529972844, totalDifficulty! 1444675, transactions! [";0x8d6d1eb3c1c82be1f419d8f772048644361c41362fd8de27f8252470f975d6bb";], transactionsRoot! ";0x98881bb99ed82df9a69726705fb2ac2d1371e9ba992c52ed3b4cd3ee50762d38";, uncles! []}


  

其他总结


  

转换单位

以太坊单位换算公式

  

Wei = 10^0 WeiAda = 10^3 WeiBabbage = 10^6 WeiShannon = 10^9 WeivSzabo = 10^12 WeiFinney = 10^15 WeiEther = 10^18 WeiEinstein = 10^21 WeiDouglas = 10^42 Wei

参考文献

  • 以太坊私有链搭建指南

关于我们

为程序员提供优质博文、实战笔记、开发资源、学习资料内容包括:区块链、架构、Golang、Vuejs、Python、Nodejs、C/C++函数库等等。并不定期奉送各种福利。

  

欢迎订阅:极客笔记Geeknr

  

我的名言:梦想还是要有的,万一实现了呢?

  

原文链接:http!//blog。geeknr。com/index。php/archives/24/

  

更多信息请点击下方【阅读原文】里面内容随时更新。

  

","content_hash"!"d20766a5

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论