【区块链实战】如何搭建以太网智能合约私网

目录

一、简介

二、知识点

智能合约

以太坊私网

创世区块

部署以太坊私网

启动以太坊节点

三、菜鸟实战

1、配置创世区块

2、数据初始化

3、启动节点


一、简介

私网是由开发者自行组建的网络,不与主网和测试网相通,独立存在,主要用于个人测试或企业项目使用。

二、知识点

  • 智能合约

  • 以太坊私网

  • 创世区块

  • 部署以太坊私网

  • 启动以太坊节点

三、菜鸟实战

实战场景:搭建以太坊智能合约私网。

1、配置创世区块

{
  "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x2",
  "extraData"  : "",
  "gasLimit"   : "0xffffffff",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}

参数说明如下:

参数说明

config

项是定义链配置,会影响共识协议,虽然链配置对创世影响不大,但新区块的出块规则均依赖链配置

config.chainId

网络ID,私网任意配置

coinbase

挖矿后获得奖励的账户地址
difficulty挖矿难度
gasLimit

一个区块所能容纳的 gas 上限

nonce随机值
mixhash256位哈希证明,与 nonce 结合,验证当前区块的有效性
extraData自定义附加信息
parentHash

前一块的 hash 值,因为是创世区块,所以为 0

timestampUTC时间戳
alloc创世中初始账户资产配置。在生成创世区块时,将此数据集中的账户资产写入区块中。 

2、数据初始化

geth init genesis.json --datadir ./data

初始化成功后 data 目录会有一些文件生成,具体如下:

data
├── geth
│   ├── chaindata
│   │   ├── 000001.log
│   │   ├── ancient
│   │   │   ├── bodies.0000.cdat
│   │   │   ├── bodies.cidx
│   │   │   ├── bodies.meta
│   │   │   ├── diffs.0000.rdat
│   │   │   ├── diffs.meta
│   │   │   ├── diffs.ridx
│   │   │   ├── FLOCK
│   │   │   ├── hashes.0000.rdat
│   │   │   ├── hashes.meta
│   │   │   ├── hashes.ridx
│   │   │   ├── headers.0000.cdat
│   │   │   ├── headers.cidx
│   │   │   ├── headers.meta
│   │   │   ├── receipts.0000.cdat
│   │   │   ├── receipts.cidx
│   │   │   └── receipts.meta
│   │   ├── CURRENT
│   │   ├── LOCK
│   │   ├── LOG
│   │   └── MANIFEST-000000
│   ├── lightchaindata
│   │   ├── 000001.log
│   │   ├── ancient
│   │   │   ├── bodies.0000.cdat
│   │   │   ├── bodies.cidx
│   │   │   ├── bodies.meta
│   │   │   ├── diffs.0000.rdat
│   │   │   ├── diffs.meta
│   │   │   ├── diffs.ridx
│   │   │   ├── FLOCK
│   │   │   ├── hashes.0000.rdat
│   │   │   ├── hashes.meta
│   │   │   ├── hashes.ridx
│   │   │   ├── headers.0000.cdat
│   │   │   ├── headers.cidx
│   │   │   ├── headers.meta
│   │   │   ├── receipts.0000.cdat
│   │   │   ├── receipts.cidx
│   │   │   └── receipts.meta
│   │   ├── CURRENT
│   │   ├── LOCK
│   │   ├── LOG
│   │   └── MANIFEST-000000
│   ├── LOCK
│   └── nodekey
└── keystore

6 directories, 44 files

3、启动节点

geth --datadir ./data --networkid 15  --http --http.addr 0.0.0.0 --http.vhosts "*" --http.api "db,net,eth,web3,personal" --http.corsdomain "*" --snapshot  --allow-insecure-unlock  console 2> 1.log
参数说明

datadir

初始化的数据目录文件

networkid

加入的网络ID, 与 config.chainId 值相同

port

节点之间 P2P 通信端口

http

开启远程调用

httpport

rpc 端口,默认 8545

httpcorsdomain

可接受请求来源的域名列表

console

进入管理台

至此,节点启动成功,后续就可以准备智能合约的开发了。

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值