以太坊环境搭建(Winodws版)1

话说在最前,区块链是P2P的,因此没有谁是主服务器,每个点都是平等的。

自己动手搭建以太坊开发环境,可能版本也比较多,总没有一个能成功到底的,所以自己写了一个。

参考文献:

https://blog.csdn.net/weixin_34402090/article/details/91700963

1、Geth安装

主要讲解Windows 环境下的Geth安装,下载Windows-Geth安装包直接安装即可:

https://geth.ethereum.org/downloads/

不知道为什么有个遮罩层,用F12,display=none去掉,就可以点击了

下载后双击安装,安装完成后Geth会自己配置环境变量,

如果没有设置成功,我安装确实没有设置成功,可以手动设置,path增加:D:\Program Files\Geth(安装的根路径)

在命令行中执行 geth version  查看到版本即安装成功,如下:

2、使用Geth创建以太坊私有链

1、新建创世块文件

    新建工作目录文件夹,例如:Gth,在此文件下新建创世块文件:genesis.json,内容如下:

{

"config": {

"chainId":4528989,

"homesteadBlock": 0,

"eip150Block": 0,

"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"eip155Block": 0,

"eip158Block": 0,

"byzantiumBlock": 0,

"constantinopleBlock": 0,

"petersburgBlock": 0,

"istanbulBlock": 0,

"ethash": {}

},

"nonce": "0x0",

"timestamp": "0x5ddf8f3e",

"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",

"gasLimit": "0x47b760",

"difficulty": "0x00002",

"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"coinbase": "0x0000000000000000000000000000000000000000",

"alloc": { }

},

"number": "0x0",

"gasUsed": "0x0",

"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"

}

chainId : 以太坊区块链网络Id,ethereum主链是1,私有链只用不要与主链冲突即可。

alloc : 预留账户,如下

  "alloc":{

   "0x0000000000000000000000000000000000000001":{"balance":"121312321"},

   "0x0000000000000000000000000000000000000002":{"balance":"121312321"},

  }

Coinbase: 旷工账户

Difficulty: 挖矿难度,0x400,这个是简单。

extraData:相当于备注

gasLimit:最小消耗gas

nonce : 64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊黄皮书中的要求

parentHash : 上一个区块的Hash值,因为是创世块,石头里蹦出来的,没有在它前面的,所以是0

  Timestamp : 时间戳

2、新建第一个账户

命令行cd到genesis.json所在目录,我为了方便,放在Geth目录下了

命令行执行初始化客户端:

初始化:

geth --datadir data0 init genesis.json

启动客户端:

geth --identity "TestNode1" --datadir "data0" --rpc --rpcapi "db,eth,net,web3,admin,personal" --rpcaddr "127.0.0.1" --ipcpath "data0\geth\geth.ipc" --rpcport "8486" --port "30304" --networkid "4528989"--allow-insecure-unlock console

没有error就是成功了

这里可能出现的错误要么就是datadir冲突,要么就是端口冲突,自己改改。

如果networkid没有和创世块一致,可能就没有连到本机私有链,最明显的问题就是转账是会提示余额不足

执行命令创建账户

// 新建账户,括号里是交易密码

> personal.newAccount("123456")

// 列出客户端上的账户

> eth.accounts

["0xc47420632c4ae1bc4d7954a24b804720ad02fcc0"]

// 显示账户余额

eth.getBalance(eth.accounts[0])

0

// 解锁

personal.unlockAccount(eth.accounts[0])

// 转账, 需要创建第2个账户才能交易

eth.sendTransaction({from:eth.accounts[0],to:"0x32bcf0bf330fdfca200d5def003bc5fcac646f90",value:"100"})

开启挖矿

// 开启挖矿

miner.start()

// 停止挖矿

miner.stop()

// 挖到后再查看余额,余额会增加

eth.getBalance(eth.accounts[0])

18000000000000

这样我们就创建好第一个账户了

3、新建第二个账户

我们再创建一个账户

// 初始化客户端

> geth --datadir data1 init genesis.json

// 

> geth --identity "TestNode2" --datadir "data1" --rpc --rpcapi "db,eth,net,web3,admin, personal" --rpcaddr "127.0.0.1" --ipcpath "data1\geth\geth.ipc" --rpcport "8487" --port "30305" --networkid "4528989" --allow-insecure-unlock console

// 新建账户,括号里是交易密码,密码可以相同

> personal.newAccount("123456")

// 解锁账号

> personal.unlockAccount(eth.accounts[0])

// 查看enode

admin.nodeInfo.enode

"enode://cb42a93bc5378357d30f3598942e43f7b7ec69716f42d7789f840e144d57f78c203c1a78d18ff9637fcb76b12da1639010dbfe2ce1c8b1f0d53b02d2a9432a6f@221.232.139.254:30305"

然后在第一个客户端上附加这个节点, encode就是之前记录的

> admin.addPeer("enode://cb42a93bc5378357d30f3598942e43f7b7ec69716f42d7789f840e144d57f78c203c1a78d18ff9637fcb76b12da1639010dbfe2ce1c8b1f0d5

3b02d2a9432a6f@221.232.139.254:30305")

true

此时,我们可以使用命令号转账了

//客户端2上输入eth.accounts查看账号id

> eth.accounts

["0x5e0bbf69fbcfbe730c6d1c972b541f97a549f5d0"]

//现在从第一个客户端账户向第2个客户端账户划点钱,to就是账号2的id,,这里的钱单位我不太确定

> eth.sendTransaction({from:eth.accounts[0],to:"0x5e0bbf69fbcfbe730c6d1c972b541f97a549f5d0",value:"100"})

转账后必须开启挖矿才能传输上去,双方都可以开起来挖矿

// 开启挖矿

miner.start()

// 停止挖矿

miner.stop()

// 显示余额

eth.getBalance(eth.accounts[0])

可以明显看到,少了100

这样我们就完成了2个客户端的交互与转账

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

推荐阅读更多精彩内容