区块链开发(二)Mac平台搭建基于以太坊的区块链开发环境

2018-02-05 10:29:33来源:http://blog.csdn.net/cuiran/article/details/79243415作者:小崔的博客人点击

分享
(点击上方公众号快速关注,不错过更多技术文章)

微信公众号:帝都小崔Cayden


如有问题或建议,请公众号留言


背景

区块链是什么?一句话,它是一种特殊的(非关系型)分布式数据库,这种数据库只能做插入和查找操作,并且没有管理员。


首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。


其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。


软件安装与配置

在命令终端执行


brew tap ethereum/ethereum brew install ethereum

执行第二个命令时间会稍微长一点,耐心等待即可


编译安装

git clone https://github.com/ethereum/go-ethereum


sudo apt-get install -y build-essential golang


cd go-ethereum


make geth


创世区块
cd ~ mkdir -p ethereum cd ethereum

初始化创世区块

在目录ethereum目录下创建文件 genesis.json


文件内容为:


{ “nonce”: “0x0000000000000042”, “difficulty”: “0x020000”, “mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”, “coinbase”: “0x0000000000000000000000000000000000000000”, “timestamp”: “0x00”, “parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”, “extraData”: “0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa”, “gasLimit”: “0x4c4b40”, “config”: { “chainId”: 15, “homesteadBlock”: 0, “eip155Block”: 0, “eip158Block”: 0 }, “alloc”: { } }

下面对上面参数进行解释


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的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。

在终端操作如图所示:




cuiran@cuiran:~/ethereum$ geth --datadir data init genesis.json
WARN [02-02|07:03:18] No etherbase set and no accounts found as default
INFO [02-02|07:03:18] Allocated cache and file handles database=/Users/cuiran/ethereum/data/geth/chaindata cache=16 handles=16
INFO [02-02|07:03:18] Writing custom genesis block
INFO [02-02|07:03:18] Successfully wrote genesis state database=chaindatahash=611596…424d04
INFO [02-02|07:03:18] Allocated cache and file handles database=/Users/cuiran/ethereum/data/geth/lightchaindata cache=16 handles=16
INFO [02-02|07:03:18] Writing custom genesis block
INFO [02-02|07:03:18] Successfully wrote genesis state database=lightchaindatahash=611596…424d04
cuiran@cuiran:~/ethereum$ find data
data
data/geth
data/geth/.DS_Store
data/geth/chaindata
data/geth/chaindata/000001.log
data/geth/chaindata/CURRENT
data/geth/chaindata/LOCK
data/geth/chaindata/LOG
data/geth/chaindata/MANIFEST-000000
data/geth/lightchaindata
data/geth/lightchaindata/000001.log
data/geth/lightchaindata/CURRENT
data/geth/lightchaindata/LOCK
data/geth/lightchaindata/LOG
data/geth/lightchaindata/MANIFEST-000000
data/keystore
启动节点

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台