以太坊-搭建私有链(Mac、Windows双节点)

网上虽然有很多资料了,但本文仅是作为学习笔记,况且自己也要敲一遍,就记录自己在学习路上的点点滴滴吧。。。

下载钱包

点击链接,找到对应的钱包文件,Mac就选Ethereum-Wallet-macosx-0-11-1.dmg,这是官方的,不用考虑安全问题了,下载安装即可。

创世区块文件

创建一个json文件,内容如下:

{
    "nonce": "0x0000000000000042",     
    "timestamp": "0x00",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "0x00",     
    "gasLimit": "0x8000000",     
    "difficulty": "0x400",
    "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "coinbase": "0x3333333333333333333333333333333333333333",     
    "alloc": {
     },
     "config": {
        "chainId": 666,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    }
}
参数 描述
nonce 64位随机数
timestamp 时间戳
parentHash 上一个区块的hash值,创世区块就是第一个,所以是0
extraData 附加信息,我把它理解成备注
gasLimit 代表用户愿意花费在gas上的钱的最大值,并不是实际值,这个在以前的文章有写过
difficulty 难度值,代表挖矿的难度
mixhash 与随机数nonce一起用于挖矿,具体参见“PoW(工作量证明)”
coinbase 矿工的账号,代表这个区块是哪个矿工挖出来的
alloc 用来预置账号以及账号的以太币数量
chainId 链的ID,networkid 参数需要与 chainId 的值一致,可用来防止replay attack重发攻击:恶意重复或拖延正确数据传输的一种网络攻击手段
homesteadBlock Homestead 硬分叉区块高度
eip155Block EIP 155 硬分叉高度
eip158Block EIP 158 硬分叉高度
  • Homestead是以太坊发展蓝图中的一个阶段。第一阶段是以太坊区块链面世,代号为frontier,第二个阶段即为当前阶段,代号为Homestead(家园),第三阶段为Metropolis(大都会),大都会又细分为两个小阶段,第一个是Byzantium(拜占庭)硬分叉(引入新型零知识证明算法以及pos权益证明共识算法),第二个是Constantinople(君士坦丁堡)硬分叉(以太坊正式应用pow和pos混合链,解决拜占庭引发的问题)。最后一个阶段代号Serenity(宁静),最终版本的以太坊稳定运行。
  • EIPs(Ethereum Improvement Proposals),是以太坊更新改善的一些方案,对应后面的数字就是以太坊github源码issue的编号,其中EIP155主要内容是让不同的链定义不同的chainId, 防止同一笔交易在不同的共有链上进行两次交易,防止重放攻击

初始化创世区块

geth --datadir "/Users/apple/Desktop/ETH/" init Genesis.json
其中--datadir是指定数据存放的目录,/Users/apple/Desktop/ETH/是我电脑上json文件的路径,Genesis.json是上一步的创世区块文件名

启动私有链

geth --datadir "/Users/apple/Desktop/ETH/" --networkid 666 --identity "node" --port 30303 --rpc --rpcport 8545 --rpcapi "db,eth,eth,net,web3,admin" --rpccorsdomain "*" --nodiscover --verbosity 4 console

参数 描述
networkid 与Genesis.json中的chainId一致
identity 设置节点ID
port 节点端口,默认是30303
rpc 启用 rpc 服务
rpcport rpc 服务端口,默认是8545
rpcapi rpc的api
rpccorsdomain “*”是允许通过任意域名访问,相当于域名白名单
nodiscover 关闭节点自动发现
verbosity 日志等级:0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (默认是3)
console 进入控制台

如果设置的是默认值的话可以省略参数,启动成功会进入控制台,在控制台下可以使用eth.getBlock(区块号)查看区块信息等命令,以后可以通过geth console命令再次进入控制台,这里也有个坑,默认用geth console命令进入的是第一步我们安装的以太坊钱包的控制台,如果需要进入我们刚才创建的控制台需要使用geth --datadir "/Users/apple/Desktop/ETH/" console

创建账号

personal.newAccount("Steven")创建的账号密码为Steven

查看信息

eth.accounts查看账号
eth.getBalance(eth.accounts[0])查看第0个账户的余额,可以将eth.accounts[0]进行传值调用
eth.blockNumber查看当前区块总数
eth.getBlock(6)通过区块号查看区块
eth.getTransaction("0xdc9d03b5f8798b4c29648fafb26b9bc0d03f141c876a182a6e4c32bfac64911d")通过哈希值来查看交易,没有交易会返回null
net.listening查看是否在监听
net.peerCount查看peer数量
admin.peers查看peer信息
admin.nodeInfo查看自己的网络信息

发送交易

personal.unlockAccount(eth.accounts[0])发送交易前要先解锁,解锁一段时间后也会自动再锁上
eth.sendTransaction({from:address1,to:address2,value:amount})address1给address2发送amount个以太坊

挖矿

miner.start() 开始挖矿
miner.stop() 停止挖矿
miner.setEtherbase(eth.accounts[1])指定挖矿的奖励给哪个账户,默认给第0个
miner.start(1);admin.sleepBlocks(1);miner.stop();挖出一个区块就停止挖矿

添加节点

admin.addPeer("enode://key@ip:port")添加静态节点可加快同步速度,key/ip/port需要替换

还有个小坑不知道该怎么写,网上也有解决办法,我记录在另一篇文章里了。今天就到这,接下来开始智能合约了。


上面是Mac节点,现在更新下Windows节点(Win10的虚拟机)

下载钱包

点击链接,找到对应的钱包文件,这里我选的是Mist-win64-0-11-1.zip,这是官方的,不用考虑安全问题了,下载点击Mist.exe安装即可。

为了方便使用geth,将其加入环境变量中

我的电脑右键属性-左侧高级系统设置-环境变量-Path-新建将geth的路径粘贴进去,由于用户不同,路径不一样,我的是C:\Users\steven\AppData\Roaming\Mist\binaries\Geth\unpacked

复制json文件-初始化创世区块-启动私有链(cd到该路径下执行geth --datadir "./" console)-添加节点

同mac,注意替换路径即可,添加节点成功会返回true,然后会自动同步数据,通过查询,区块数量一样,这样就创建了两个节点的私链了,在两个节点上创建账号,挖矿,发送交易也都没问题,相互会自动同步,就是虚拟机上挖矿比较慢。


再次更新:由于终端的geth和客户端的geth并不是一个,所以在终端用的没问题,打开客户端就连到主链上去了,走了很多弯路就不说了,直接说解决方法(Mac):
通过命令"/Applications/Ethereum Wallet.app/Contents/MacOS/Ethereum Wallet" --rpc /Users/apple/Desktop/ETH/geth.ipc启动客户端即可,需要注意我 装的是Ethereum Wallet,不是Mist其中/Users/apple/Desktop/ETH/geth.ipc这个是前文中我写的私链的路径,放个截图庆祝一下:

Windows:
Mist-win64-0-11-1\Mist.exe --rpc \\.\pipe\geth.ipc路径终端会显示, 只有一个路径是geth.ipc

版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,999评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,102评论 1 302
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,709评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,439评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,846评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,881评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,062评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,783评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,517评论 1 248
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,762评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,241评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,236评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,145评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,941评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,965评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,802评论 2 275

推荐阅读更多精彩内容

  • 虽然以太坊是一个公有链系统,但是我们可以通过设置一些参数来运行自己的私有链节点,在自己的私有链上进行开发和测试不需...
    duanyu阅读 6,772评论 2 26
  • 1.前言 以太坊作为区块链技术应用的龙头,需要对该项目深入的学习,才好在工作中更好的使用区块链来解决实际的问题。 ...
    zerowood阅读 781评论 0 1
  • 【读经】 撒上24章 【金句】 跟随的人对大卫说:“耶和华曾应许你说:‘我要将你的仇敌交在你手里,你可以任意待他。...
    chanor阅读 121评论 0 0
  • 1去六旗玩一次 2去蹦极or跳伞 3完成考试 4按顺序看完漫威、以及收藏的欧美电影、和纪录片,结合笔记! 5每周看...
    Yina_af26阅读 196评论 1 0
  • 2017年4月1日 星期六 农历三月初五 晴 愚人节要上班,这可真够愚弄人的,可是,事实就是如此…不过想来,中国哪...
    朱砂紅塵阅读 671评论 0 1