BlockChain-在一台电脑上部署多个节点

这里分享的是关于在是在私有链中,用一台电脑去创建多个节点,并进行节点链接

1. 准备创世块文件

自己创建一个创世块文件或是称为根节点是为了区分公有链和私有链。同一个网络下只有一个创世块,而且只有处于相同的创世块才可以正常进行通信。创世块文件是一个json文件。格式如下:

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

其中:

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

timestamp:创世块的时间戳

parentHash: 上一个节点的hash值,由于是创世块,为第一个节点,所以他不存在parent节点

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

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

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

mixhash:与nonce配合使用,用于挖矿

coinbase:矿工的账号信息

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

首先,创建一个节点目录,在目录下创建一个json文件,比如:genesis.json。然后把上面的内容复制,根据自己的需求修改相应的参数。

cd到这个json所在的目录,运行:

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

 运行之后,会在当前文件夹下生成geth 和 keystore两个文件夹。keystore里存放的就是你后续创建账号的信息

2. 启动节点

初始化节点后,需要启动这个节点。

geth --datadir "./" --nodiscover console 2>>geth.log

这里就启动了改节点,默认的启动端口是 30303.启动之后,输入admin.nodeInfo 查看节点信息:

{
  enode: "enode://2ef126e63de43500ae36fd1783251919a1f94ce0a3ee79d008530750efc3a1996[email protected][::]: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里就是节点的address 

3. 创建第二个节点  

单独的一个节点,是可以创建不同的账号的,之后可以用不同的账号进行交易。如果要实现多个节点,那就需要再重新创建节点。

1) 首先创建一个空的文件夹作为第二个节点,把第一个节点的json文件拷贝到第二个节点的文件夹目录下

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

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

3) 用下面的命令启动第二个节点

geth --datadir "./" --nodiscover --port 30304 console 3>>geth.log

 如果这里不指定 port ,那么默认的port是 30303,就会出现端口被第一个占用的情况,所以这里需要指定一个不同的端口号启动。

4. 把两个节点连接起来

通过admin.addPeer(“节点的enode”)添加。如上面第一个节点和第二个节点连接

admin.addPeer("enode://2ef126e63de43500ae36fd1783251919a1f94ce0a3ee79d008530750efc3a1996[email protected][::]:30303?discport=0")

控制台会返回一个true

这个时候,随便在哪个节点的控制台上,输入 admin.peers() 就可以查看链信息了

5.验证是否连接成功

随便在哪个节点上进行挖矿操作,看另外一个节点是否会同步信息。比如我这里再第一个节点上进行挖矿操作。注意:要进行挖矿一定要先有账号。我们上面提到的所有的操作都只是节点操作,没有涉及到账号的操作。

首先用命令创建一个账号:

personal.newAccount("xxx")

xxx是表示该账号的密码,后面再进行交易的时候需要用到。

创建账号后,就可以进行挖矿处理了。

miner.start()

在挖矿的过程中如何查看是否有进行同步操作呢?

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

tail -f geth.log

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

  

  

  

 

时间: 2024-11-10 10:57:24

BlockChain-在一台电脑上部署多个节点的相关文章

在同一台电脑上部署多个tomcat服务器

因为在写一些小的项目的时候,需要另外用到一台图片服务器,所以不得不开启多个tomcat了. 在这里我用的是tomcat 9.0,一个是正常时的tomcat,一个是图片服务器,在这里我就用tomcat1和tomcat2来说明. 首先要配置环境变量.至于配置环境,不会的可以自己百度下怎么配置,相信大家在配置jdk的时候都会了. 在环境变量中都要配置两台服务器,便于使用 通过图片,可以看出有一个是为图片服务器而特制的. 还在要Path下面配置,两个服务器都要配置. 配置好环境变量后,还要去tomcat

如何在同一台电脑上同时运行2个tomcat

前段时间做的项目,由于是给手机客户端做服务器,所以客户端在开发过程中需要访问我的服务器. 问题是我也在开发,并且没有加入热部署,那么势必会造成服务器频繁重启,这也对客户端开发会产生一定的影响. 此时就需要跑两个tomcat了,一个我开发用,一个给客户端用.那么问题来了,如何在同一台电脑上同时运行2个tomcat呢? 如果什么都不配置,我们来运行两个tomcat试试: 出错了,提示我们端口号8005被占用.tomcat默认使用8005端口来监听关闭tomcat的请求 所以该端口号不能重复,那么我们

单台电脑上启动多个Modelsim图形环境窗口的简单办法(windows)

1 http://blog.21ic.com/user1/3128/archives/2010/73447.html 单台电脑上启动多个Modelsim图形环境窗口的简单办法(windows) Modelsim由于License限制,一般一个PC机只能启动一个窗口程序,打开第二个时候就会出错退出,很不方便调试使用.后来发现,结合一个叫zDesk的软件使用可以很好的解决这个问题.这个软件有点像linux下的多窗口,切换到第二个窗口下,就可以打开一个新的Modelsim图形环境.软件可以启动很多个窗

在一台服务器上部署多个Tomcat

在一台服务器上配置多个Tomcat的方法: 这几天由于在研究OGSA-DQP,但是其网站上只提供了在Linux下的安装文档,而且需要在一天服务器上配置两个Tomcat,但是我一直没有弄懂怎么在Windows下实现. 如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题.只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了! 下面我们把配置的详细过程写在下面,以供参考:(此例以配置两个Tomcat为例) 1. 下载

一台电脑上配置多个tomcat

很多时候我们要配置多个tomcat 但是启动时候就会好多错误和冲突 要么startup的时候就把两个tomcat全给起了...不好控制 下面给出解决方案 一台电脑同时运行多个tomcat配置方法: 1.使用压缩版的tomcat不能使用安装版的. 2.第一个tomcat的配置不变. 3.增加环境变量CATALINA_HOME2,值为新的tomcat的地址. 4.修改新的tomcat中的startup.bat,把其中的CATALINA_HOME改为CATALINA_HOME2. 5.修改新的tomc

限制在同一台电脑上只允许有一个用户登录系统

在web应用系统中,出于安全性考虑,经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制.具体一点就是: 1.在同一台电脑上一次只允许有一个用户登录系统,2.一个用户在同一时间只允许在一个客户端登录. 我最近做的一个系统就遇到了这样的问题,本来系统已经开发完成了,但是安全测评没有通过,就是因为没有做这两个限制.怎么来做这样的限制呢?我在网上找了很久,发现问这个问题的人很多,但是没有找到特别清楚的答案.后来自己摸索着,看了一些书,终于找到解决办法了. 要解决这个问题实际上不难,

在同一台电脑上同时安装Python2和Python3

目前Python的两个版本Python2和Python3同时存在,且这两个版本同时在更新与维护. 到底是选择Python2还是选择Python3,取决于当前要使用的库.框架支持哪个版本. 例如:HTMLTestRunner.locustio支持Python2,但是不支持Python3. 所以很多时候,一台电脑上需要同时安装Python2和Python3. 本篇内容主要讲一下,在同一台电脑上如何同时安装Python2和Python3,且均可以正常使用pip. 一.安装Python2(以及pip)

在一台电脑上运行两个或多个tomcat

在一台电脑上运行多个tomcat 在本例中,使用两个tomcat做示例 工具/原料 tomcat 安装好jdk,并且配置好环境变量 方法/步骤 首先去apache下载一个tomcat,下载解压版的,比较方便 把这个tomcat,解压两次,为了方便显示,我把解压出来的tomcat重命名成tomcat11111和tomcat22222 修改其中一个tomcat中的某些参数,为了避免启动tomcat时出现冲突,编辑bin/startup.bat, 在文件第一行添加如下两行 SET JAVA_HOME=

复制虚拟机到另一台电脑上

1.鼠标放在虚拟机上,会自动显示该虚拟机的存储位置.  2.找到该文件夹,直接将其复制到另外一台电脑上,然后点击打开虚拟机,找到.VMX文件打开即可使用. 3.最后你复制过去的虚拟机可能无法上网,只需要将之前的网络适配器移除,然后再添加一个新的网络适配器,这样就可以上网了. 原文地址:https://www.cnblogs.com/nsw0419/p/11616950.html