创建自己的区块链网络 一

前言

上次我们跑通了官方的byfn.sh的官方文档,当然官方的文档是远远满足不了我们的业务需求,所以我们需要创建一个属于我们自己的区块链网络,那么接下来我会从零开始一步步的创建这个项目,首先大家要把自己的环境配置好,这个之前的文章写过了,这里就不过多赘述了,大家可以去看我之前的文章。链接如下:

文章链接
1、搭建虚拟机点击此处
2、创建root用户点击此处
3、搭建网络环境点击此处
4、运行官方byfn.sh跑通网络点击此处

那么确保这些都没问题我们就可以着手开始开发属于我们自己的项目了。

系列文章直通车

名称链接
创建自己的区块链网络 一点击此处
创建自己的区块链网络 二点击此处
创建自己的区块链网络 三点击此处
创建自己的区块链网络 四点击此处
创建自己的区块链网络 五点击此处

一、创建目录

任何一个项目都要创建一个项目目录,可是这个目录我们要创建在哪里呢?
这里我们创建目录需要创建在gopath里面的src中,这样我们可以引用项目目录的文件。

1、切换至gopath/src

cd /home/work/go/src/

在这里插入图片描述
我这里是配置了goroot,你们可以放到gopath的src中。

2、创建文件夹

mkdir work-test
cd work-test
mkdir application chaincode deploy
#然后ls查看是否创建好
ls
cd application/
mkdir blockchain controller lib public util

到了这里我们的一整个项目目录就搞定了,就完成了第一步。

二、复制官方文件

接下来我们需要把官方的文件复制过来,我们可以直接用鼠标右键复制也可以用cp命令复制,那么我接下来用cp命令复制过来

1、首先切换至deploy

cd deploy

2、复制必要文件

cp -a /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/base/ /home/work/go/src/work-test/deploy/
#这里需要注意下路径,如果不行就使用鼠标右键 文件在你们fabric-samples下面的first-network里面
#接下来复制其他文件
cp -a /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/scripts/ /home/work/go/src/work-test/deploy/
cp -a /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/byfn.sh /home/work/go/src/work-test/deploy/
cp -a /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/eyfn.sh /home/work/go/src/work-test/deploy/
cp -a /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config.yaml /home/work/go/src/work-test/deploy/
cp -a /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/configtx.yaml /home/work/go/src/work-test/deploy/
cp -a /usr/local/go/src/github.com/hyperledger/fabric-samples/first-network/docker-compose-cli.yaml /home/work/go/src/work-test/deploy/

到这里我们所需要的文件就全部复制过来了。接下来我们需要修改官方的文件

三、修改crypto-config.yaml文件

接下来我们需要更改这个文件,这个文件是用来干嘛的呢?我们首先要搞清楚这个问题。
这个文件是用来指定整个网络中相关组织的详细信息的。是与组织结构以及身份证书相关联的配置文件,可以理解为组织结构以及身份证书都是通过整个配置文件来生成的,所以这一步非常重要就相当于高楼大厦的地基,那么接下来我们来修改这个文件。

1、确定几组织几成员

首先我们需要确定这个网络的有几个组织,一个组织里面有几个成员,只有确定好了我们才能够更好的修改配置文件。那么我这里确定的组织成员如下:

组织成员
Orderer1个用户成员
Organization11个用户成员
Organization21个用户成员
Organization31个用户成员

2、修改文件

那么修改过后的文件就是这样的。

OrdererOrgs:
  # ---------------------------------------------------------------------------
  # Orderer
  # ---------------------------------------------------------------------------
  - Name: Orderer #Order的名称
    Domain: slzce.com #域名,这里如果要修改那么后面的很多地方也要修改,但是我们很多情况都要修改
    EnableNodeOUs: true
    Specs:
      - Hostname: orderer #Hostname+Domain构成了Orderer节点的完整域名
        #OrderOrgs组织下的一个Orderer组织
PeerOrgs:
  # ---------------------------------------------------------------------------
  # Org1
  # ---------------------------------------------------------------------------
  - Name: Organization1
    Domain: organization1.slzce.com #与上面的Orderer节点的域名相对应
    EnableNodeOUs: true #这个的作用会在组织的下面的msp目录下生成config.yaml这个我们需要
    # ---------------------------------------------------------------------------
    Specs:
      - Hostname: node1
      - Hostname: node2
    Users:
      Count: 1

    #        我们使用这种方法,这里注意缩进
    # ---------------------------------------------------------------------------
#    Template:
#      Count: 2
#  我们不使用这种方法
  - Name: Organization2
    Domain: organization2.slzce.com #与上面的Orderer节点的域名相对应
    EnableNodeOUs: true #这个的作用会在组织的下面的msp目录下生成config.yaml这个我们需要
      # ---------------------------------------------------------------------------
    Specs:
      - Hostname: node1
      - Hostname: node2
    Users:
      Count: 1

  - Name: Organization3
    Domain: organization3.slzce.com #与上面的Orderer节点的域名相对应
    EnableNodeOUs: true #这个的作用会在组织的下面的msp目录下生成config.yaml这个我们需要
    # ---------------------------------------------------------------------------
    Specs:
      - Hostname: node1
      - Hostname: node2
    Users:
      Count: 1
#直接拷贝注意缩进还有修改name以及Domain

结语

为了大家的阅读体验,这个我会分作几篇文章来写,敬请期待。
创作不易,多多支持!

在这里插入图片描述

区块链网络层节点是区块链系统中的基本组成部分,负责维护整个网络的数据传输和区块链的同步。在区块链网络中,节点主要有以下几种类型: 1. 全节点(Full Node):全节点是存储完整区块链数据的节点,它们参与验证交易和区块,并维护整个区块链的副本。全节点负责验证和传播区块,确保区块链的一致性和安全性。任何新加入网络的节点都会从全节点那里下载区块链数据。 2. 轻节点(Light Node):轻节点不存储整个区块链的数据,而是只存储少量网络信息,比如区块头信息。轻节点依赖于全节点来验证交易的有效性。由于轻节点不存储所有区块链数据,它们节省了存储空间和带宽,但需要信任全节点提供的信息。 3. 矿工节点(Mining Node):矿工节点是参与区块创建和验证的节点。它们利用计算资源解决复杂的数学难题,来创建新的区块,并通过网络广播,其他节点验证后将其加入区块链。矿工节点通常也是全节点,因为它们需要验证交易和区块的正确性。 4. 超级节点(Super Node):超级节点是一种特殊的全节点,通常拥有更高的性能和更多的资源,如更快的处理速度、更大的带宽和更高的存储能力。超级节点可以处理更多的交易,并为其他节点提供数据同步服务,提高网络的整体性能。 区块链网络层节点的功能和角色对于整个网络的运行至关重要,它们共同确保了交易的安全、数据的准确性和网络的健康。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

患孤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值