以太坊创建私有联发布ERO20合约

1.搭建自己的以太坊网络

目前以太坊官方提供了两种网络:线上生产网络、测试网络。

以太坊生产网络就是真正有价值的 的以太币运行的网络。我们使用的以太币进行转账、支付都是在生产网络上进行,每一个操作都需要消耗实实在在的ETH。智能合约也是部署在生产网络上,智能合约代码的执行调用都清晰可查,并且可供所有开发者调用。

以太坊的测试网络也是官方提供专供用户来开发、调试和测试的。但是测试网络的节点也是全球化的,现在测试网络的区块数量也很大,执行速度较慢,不便于开发、调试。

---
> 开始

下面我们使用Geth安装自己的以太坊私有网络 PrivateNetwork。

下载对应 go-ethereum 使用go语言开发

Geth安装可以直接到官网下载对应的版本,进行安装:https://ethereum.github.io/go-ethereum/downloads/ 


版本1.8.1


> 配置创世币


配置创世块来创建私有链。同一个网络中,创世块必须是一样的,否则无法联通。创建eth目录,在该目录下新建创世块文件 gen.json
```
{
"config":{
    "chainId":9999,
    "homesteadBlock":0,
    "eip155Black":0,
    "eip158Black":0
    },


    "nonce":"0x0000000000000042",
    "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "difficulty": "0x4000",
    "alloc": {},
    "coinbase":"0x0000000000000000000000000000000000000000",
    "timestamp": "0x00",
    "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "",
    "gasLimit":"0xffffffff"
}


```
| 字段名    | 类型 |
| :-: | :-: | 
|mixhash|与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意他和nonce的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。.||
|nonce|nonce就是一个64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。
|difficulty|设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度
|alloc|用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。
|coinbase|矿工的账号,随便填
|timestamp|设置创世块的时间戳
|parentHash|上一个区块的hash值,因为是创世块,所以这个值是0
|extraData|附加信息,随便填,可以填你的个性信息
|gasLimit|该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。


---


> init 执行


然后执行命令初始化节点 


geth --datadir "./" init gen.json


可以看到将节点数据写入了对应的文件夹中,此时当前目录下面会新增出两个文件夹geth和keystore


geth中用以保存区块链的相关数据


keystore中保存的是用户数据


> 创建私有联 


输入命令:


geth --datadir "./" --nodiscover console


当看到Welcome to the Geth JavaScript console!的提示,说明已经启动成功


> 在私有链上创建账户


输入命令:personal.newAccount("123456")


"123456"表示此账号的密码.


0x71e71645f6f999a5b723f862fd2d8a590ca961c3


输入命令eth.accounts可以查看新账户


这样,通过这两个命令可以创建出多个用户出来


若输入命令:personal.newAccount()


则系统会提示你输入账号密码,并确认,最后会显示一个新生成的账号


> 挖矿


输入命令:miner.start() 或者miner.start(1) 


后者表示只使用一个线程工作,这样系统不会太卡


> 查看主账户中以太币的数量


输入命令: eth.getBalance(eth.accounts[0]) 结果不为0,说明挖矿成功


----
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值