创建以太坊私链

ethereum-logo-1.png
提醒:本文章可能不完整。

最近币圈一片哀嚎,受到BTC/ETH走势影响,整个虚拟货币市场都似乎陷入一潭死水。
不过有很多空投、糖果币却在不断推销,尽管许多人都知道这些币没什么价值,可是还是不断去成为底层的韭菜。
本教程仅为最初级的以太坊私链创建教程,你需要有至少两台VPS去运行ETH程序。
本教程环境采用Ubuntu16.04 x64系统,请首先保证你的系统处于最新且安装必备程序。

sudo apt-get -y install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
sudo apt-get install -y ethereum

接下来创建创世文件 genesis.json

{
 "alloc": {},
 "config": {
   "chainID": 233335433,
   "homesteadBlock": 0,
   "eip155Block": 0,
   "eip158Block": 0
 },
 "nonce": "0x395f0923d7cbdf50",
 "difficulty": "0x8000",
 "mixhash": "0x2a3ee2fb4bfb076d76092bd36af364e89fb492d898d7ca7b7bd5bf4bf1d3a360",
 "coinbase": "0x0000000000000000000000000000000000000000",
 "timestamp": "0x1517680924",
 "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
 "extraData": "0x292be9676f8772ac1ce15460abb554421c215f2e2658aeebd26c851843dcc7b5",
 "gasLimit": "0xffffffff"
}

下面解释具体参数的作用

  • nonce:16位随机数
  • difficulty: 区块计算难度
  • mixhash:64位随机数
  • coinbase: 矿工账号,随便填写。
  • timestamp: 设置创世块的时间戳。
  • parentHash: 上一个区块的hash值,因为是创世块,所以这个值是0。
  • extraData: 附加信息,随便填,可以填你的个性信息,必须为十六进制的字符串。
  • gasLimit: 该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为是私有链,所以填最大。
geth --datadir path/to/custom/data/folder init genesis.json
geth --datadir path/to/custom/data/folder --nodiscover console 2>>geth.log

链创建成功,开始运行

geth --identity "MJJ" --rpc --rpccorsdomain "*"  --port 30303 --rpcapi "db,eth,net,web3" --networkid 23333456 --rpcport 8080 console

各参数作用如下

参数名称参数含义
identity区块链的标示,随便填写,用于标示目前网络的名字
init指定创世块文件的位置,并创建初始块
datadir设置当前区块链网络数据存放的位置
port网络监听端口
rpc启动rpc通信,可以进行智能合约的部署和调试
rpcapi设置允许连接的rpc的客户端,一般为db,eth,net,web3
networkid设置当前区块链的网络ID,用于区分不同的网络,是一个数字
console启动命令行模式,可以在Geth中执行命令

启动第二台VPS,使用同一创世文件完成以上操作
在第一台VPS中的ETH命令行中创建账户

personal.newAccount('123456')

其中123456为用户密码

eth.accounts

即可获得当前用户的地址

Last modification:April 17th, 2018 at 06:31 pm

One comment

  1. loc

    这两天开始搞着玩玩,开始先从你这教程入手~ 谢谢loc大佬分享~OωO

Leave a Comment