区块链(二)windows 以太坊私有链搭建连接多节点

连接到其他节点

所有的节点创建都是一样的。

创建节点二:

geth --datadir data1 init genesis.json

启动节点二

geth --identity "TestNode2" --datadir "data1" --rpc --rpcapi "db,eth,net,web3" --rpcaddr "127.0.0.1" --ipcpath "data1\geth\geth.ipc" --rpcport "8487" --port "30305" --networkid "29382" console

3. 给新节点创建一个账户,否则无法启动挖矿

>personal.newAccout(“123”)

连接节点:

可以通过 admin.addPeer() 方法连接到其他节点,两个节点要要指定相同的 chainID。

假设有两个节点:节点一和节点二,chainID 都是 29382 ,通过下面的步骤就可以从节点一连接到节点二。

首先要知道节点二的 enode 信息,在节点二的 JavaScript console 中执行下面的命令查看 enode 信息:

>admin.nodeInfo.enode

"enode://0ce4dc3066664bd2de57bd5c9eec8e002d21079c133394884517f5a8c24e77ef6ef3c80eb9ad628e3b93a114d7db638e8b16c60198ed703912cb9700f8ddba1a@192.168.1.3:30305"

>

注意:此处不能使用显示的IP,需要用启动私有链时候指定的IP(127.0.0.1)才行

然后在节点一的 JavaScript console 中执行 admin.addPeer(),就可以连接到节点二:

>admin.addPeer("enode://0ce4dc3066664bd2de57bd5c9eec8e002d21079c133394884517f5a8c24e77ef6ef3c80eb9ad628e3b93a114d7db638e8b16c60198ed703912cb9700f8ddba1a@127.0.0.1:30305")

true

>

addPeer() 的参数就是节点二的 enode 信息,注意要把 enode 中的 [::] 替换成节点二的 IP 地址。连接成功后,节点二就会开始同步节点一的区块,同步完成后,任意一个节点开始挖矿,另一个节点会自动同步区块,向任意一个节点发送交易,另一个节点也会收到该笔交易。

挖矿的时候,哪个节点的矿工启动了,它的账户就会增加eth,链块数据会同步到其他节点。

同时开两个命令行工具可以看到两个工具同时在进行链块同步。

>eth.blockNumber 查阅两个节点的块个数,是一样的,完成同步

通过 admin.peers 可以查看连接到的其他节点信息,通过 net.peerCount 可以查看已连接到的节点数量。

除了上面的方法,也可以在启动节点的时候指定 --bootnodes 选项连接到其他节点。

注意:

​ 1、对于操作过程中存在的问题网上基本上都有解决方法,可以参考错误信息自己解决

​ 2、如果使用的服务器或者虚拟机需要注意防火墙和端口的配置

上面转账动作发生在同一个节点内,下面完成跨节点的账户转账动作。

在节点二而新建账户:

>personal.newAccount("123456")

"0x9b78c5766ddbb55c4414ff5f441b4cea0c7a72a4"

查询新账户余额

>eth.getBalance("0x9b78c5766ddbb55c4414ff5f441b4cea0c7a72a4")

0

在节点一的accounts[0]向外给节点二的账户转5个。

转账之前的余额

> eth.getBalance(eth.accounts[0])

370000000000000000000

解锁账户

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

Unlock account 0x781ea3fbf05476db5d259c833347705d6ca770f2

Passphrase:

true

定义5个ether

> amount = web3.toWei(5,'ether')

"5000000000000000000"

转账给节点二

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

INFO [07-31|12:48:20.509] Submitted transaction                    fullhash=0x298d16ec44cdfe0df81a73fd14c1d649789e3d6ce6806bbae50bc021654b5180 recipient=0x9b78C5766DdbB55C4414ff5F441B4cEa0C7a72a4"0x298d16ec44cdfe0df81a73fd14c1d649789e3d6ce6806bbae50bc021654b5180"

没有矿工工作,数据仍然在交易池中卫待确认交易,需要启动矿工,在哪个节点启动都可以。本例在节点二中启动。

> eth.getBalance(eth.accounts[0])

370000000000000000000

节点而启动矿工以后,自动同步到节点一的新区块数据

> INFO [07-31|12:48:43.918] Imported new chain segment              blocks=1  txs=1 mgas=0.021 elapsed=5.004ms  mgasps=4.197 number=87 hash=1026c6…285caa cache=21.65kB

INFO [07-31|12:48:44.843] Imported new chain segment              blocks=1  txs=0 mgas=0.000 elapsed=4.002ms  mgasps=0.000 number=88 hash=1b3798…934171 cache=22.04kB

INFO [07-31|12:48:45.009] Imported new chain segment              blocks=1  txs=0 mgas=0.000 elapsed=6.004ms  mgasps=0.000 number=89 hash=68059b…dff0ae cache=22.43kB

INFO [07-31|12:48:47.123] Imported new chain segment              blocks=1  txs=0 mgas=0.000 elapsed=5.004ms  mgasps=0.000 number=90 hash=a8cf3e…7a64ba cache=22.83kB

查询节点一的账户余额,已经减少,

> eth.getBalance(eth.accounts[0])

364999622000000000000

同时节点二的余额已经增加。

注意:

每个节点可以管理多个账户。

账户之间余额也是相互独立的

总结:

到目前为止,大家应该对以太坊如何转账有了清楚的了解,本教程是基于同一条私链的两个节点之间进行的转账。转账过程中有几点需要注意:

(1)两节点要加入同一条私链,即这两个节点初始化的创世区块必须要一模一样。

(2)两个节点转账前,需要确定两个节点之间的网络是否能够互通。

(3)A节点在添加B节点的enode字符串时需要手动将enode字符串中的ip地址设为B节点的IP地址,因为命令admin.nodeInfo获取的enode字符串中ip地址不一定是正确的。

(4)想要实现转账,私链网络中至少要有一个节点在挖矿。

(5)以太坊api中输入的最小单位都是wei,1ether=1000000000000000000wei。

至此我们的节点钱包里有不少eth,可惜是私有链上的。

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

推荐阅读更多精彩内容