主页 > imtoken钱包2023最新版 > 以太坊在一台电脑上部署多个节点

以太坊在一台电脑上部署多个节点

imtoken钱包2023最新版 2023-03-24 07:52:48

我这里分享的是用电脑在私有链中创建多个节点,并将它们链接起来

1.准备创世块文件

创建一个创世块文件或根节点来区分公链和私链。 同一个网络下只有一个创世块,只有同一个创世块才能正常通信。 创世块文件是一个 json 文件。 格式如下:

{
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x0",
  "gasLimit": "0x80000000",
  "difficulty": "0x1",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {     }
}

矿工自己搭建以太坊矿池教程_以太坊全节点搭建_以太坊经典和以太坊

在:

nonce:64位随机数,用于判断合格区块

时间戳:创世块的时间戳

parentHash:前一个节点的hash值,由于是创世块,是第一个节点以太坊全节点搭建,所以没有父节点

extraData:附加信息,可以添加个性信息等

gasLimit:gas消耗总量限制,限制一个区块可以包含的交易信息总和

difficulty:区块难度,这个值设置越大,挖矿难度越大

mixhash:与nonce结合使用进行挖矿

coinbase:矿工账户信息

alloc:用于预置账户和账户的以太币数量

首先,创建一个 genesis.json 文件。 然后复制上面的内容,根据自己的需要修改相应的参数。

cd到json所在目录,运行:

geth --datadir "node1/" init genesis.json

矿工自己搭建以太坊矿池教程_以太坊全节点搭建_以太坊经典和以太坊

运行后会在该目录下生成一个node1文件夹,在node1文件夹下会生成geth和keystore两个文件夹。 密钥库存储您后续创建帐户的信息

2.启动节点

节点初始化完成后,需要启动它。

geth --identity "node1" --rpc --rpcport 8000 --rpccorsdomain "*" --datadir "./" --port 30303 --rpcapi "db,eth,net,web3" --networkid 999 控制台 2> >geth.log

修改后的节点在这里启动,默认启动端口为30303,启动后输入admin.nodeInfo查看节点信息:

{
  enode: "enode://2ef126e63de43500ae36fd1783251919a1f94ce0a3ee79d008530750efc3a19962f6c06cb92c397586d41a444fd1667190acf035e3a45c816fe0a4b904b9727a@[::]:30303?discport=0",
  id: "2ef126e63de43500ae36fd1783251919a1f94ce0a3ee79d008530750efc3a19962f6c06cb92c397586d41a444fd1667190acf035e3a45c816fe0a4b904b9727a",
  ip: "::",
  listenAddr: "[::]:30303",
  name: "Geth/v1.5.9-stable-a07539fb/darwin/go1.8",
  ports: {
    discovery: 0,

以太坊全节点搭建_矿工自己搭建以太坊矿池教程_以太坊经典和以太坊

listener: 30303 }, protocols: { eth: { difficulty: 1, genesis: "0x6099b65e564bd511f49e8f39ba27b6a68b6b78fd1481592257f06bbf93abe624", head: "0x6099b65e564bd511f49e8f39ba27b6a68b6b78fd1481592257f06bbf93abe624", network: 1 } } }

enode是节点的地址

3.创建第二个节点

以太坊经典和以太坊_以太坊全节点搭建_矿工自己搭建以太坊矿池教程

单个节点可以创建不同的账户,然后使用不同的账户进行交易。 如果要实现多个节点,则需要重新创建节点。

1) cd到genesis.json目录

2)运行相同的初始化命令

geth --datadir "node2/" init genesis.json

3)使用以下命令启动第二个节点

geth --identity "node2" --rpc --rpcport 8001 --rpccorsdomain "*" --datadir "./" --port 30306 --rpcapi "db,eth,net,web3" --networkid 999 控制台 2> >geth.log

rpc 端口和节点端口必须与第一个节点不同。 节点端口默认为30303,rpc默认端口为8545。如果node2节点的rpc端口或者节点端口的采样默认值,会出现该端口为第一个占用的情况。

4.连接两个节点

通过admin.addPeer("node's enode")添加。同上,第一个节点连接到第二个节点

admin.addPeer("enode://2ef126e63de43500ae36fd1783251919a1f94ce0a3ee79d008530750efc3a19962f6c06cb92c397586d41a444fd1667190acf035e3a45c816fe0a4b904b9727a@[::]:30303?discport=0")

控制台将返回 true

此时在任意节点的控制台输入admin.peers查看链信息

以太坊全节点搭建_矿工自己搭建以太坊矿池教程_以太坊经典和以太坊

5.验证是否连接成功

在任意一个节点上进行挖矿操作,看是否有其他节点同步信息。 比如我这里是在第一个节点上进行挖矿操作。 注意:要挖矿,您必须先有一个帐户。 我们上面提到的所有操作都只是节点操作以太坊全节点搭建,不涉及账户操作。

首先使用命令创建一个帐户:

personal.newAccount("xxx")

xxx为账户密码,后面交易中会用到。

创建账户后,就可以开始挖矿了。

miner.start()

如何查看挖矿过程中是否有同步操作?

第一次挖矿期间,cd到第二个节点目录,执行

tail -f geth.log

如果在控制台看到block信息不断更新,就说明连接成功了。

注意:这里的创世块文件必须使用同一个,否则虽然addPeer成功返回,但是没有admin.peers视图。