Hyperledger Fabric网络快速启动

2023-11-11

目录

1、网络服务配置

2、关联的docker-compose-base.yaml

各Peer节点容器设置如下信息。

3、被关联的Peer-base.yaml

4、启动网络

2、完成通道的创建

2.1将节点加入应用通道

 更新锚节点

 2.为什么要创建节点并将其加入应用通道中?


1、网络服务配置

        由于要启动多个网络节点,Hyperledger Fabric采用了容器技术,所以需要一个简化的
方式来集中化管理这些节点容器。我们使用docker-compose这个工具来实现一步到位的节
点容器管理,而且只需要编写相应的配置文件即可。
        Hyperledger Fabric同样提供了docker--compose工具的示例配置文件,该配置文件在
fabric-samples/first-network目录下,文件名称为docker-compose-.cli.yaml,打开这个配置文
件可以看到如下完整内容:

# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

version: '2'

volumes:
  orderer.example.com:
  peer0.org1.example.com:
  peer1.org1.example.com:
  peer0.org2.example.com:
  peer1.org2.example.com:

networks:
  byfn:

services:

  orderer.example.com:
    extends:
      file:   base/docker-compose-base.yaml
      service: orderer.example.com
    container_name: orderer.example.com
    networks:
      - byfn

  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer0.org1.example.com
    networks:
      - byfn

  peer1.org1.example.com:
    container_name: peer1.org1.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer1.org1.example.com
    networks:
      - byfn

  peer0.org2.example.com:
    container_name: peer0.org2.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer0.org2.example.com
    networks:
      - byfn

  peer1.org2.example.com:
    container_name: peer1.org2.example.com
    extends:
      file:  base/docker-compose-base.yaml
      service: peer1.org2.example.com
    networks:
      - byfn

  cli:
    container_name: cli
    image: hyperledger/fabric-tools:$IMAGE_TAG
    tty: true
    stdin_open: true
    environment:
      - GOPATH=/opt/gopath
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      #- CORE_LOGGING_LEVEL=DEBUG
      - CORE_LOGGING_LEVEL=INFO
      - CORE_PEER_ID=cli
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
      - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: /bin/bash
    volumes:
        - /var/run/:/host/var/run/
        - ./../chaincode/:/opt/gopath/src/github.com/chaincode
        - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
        - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/
        - ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts
    depends_on:
      - orderer.example.com
      - peer0.org1.example.com
      - peer1.org1.example.com
      - peer0.org2.example.com
      - peer1.org2.example.com
    networks:
      - byfn

        由以上配置信息可以看出,该配置文件指定了网络中各个节点容器(共计6个容器,即1个Orderer、属于2个Orgs组织的4个Peer、1个CLI)的信息。仔细观察会发现,Orderer与各Peer容器都设置了container_name与networks信息;其他信息都由extends指向了base/docker--compose-base.yaml文件。
        CLI容器指定了所代表的Peer节点(CORE_PEER_ADDRESS=peero.orgl.example.
com:7051),通过volumes指定了将系统中的链码、组织结构及证书、生成的配置文件映射
到容器中指定的目录下,且通过depends_on属性指定了所依赖的相关容器。

2、关联的docker-compose-base.yaml

在docker-compose-.cli.yaml配置文件中,由extends.file指向了一个base/docker-compose-
base.yaml的配置文件,该配置文件指定了Orderer节点与Peer节点的主要配置信息。
Orderer节点容器设置如下信息。
1)environment:该部分主要关注如下核心配置信息。

  • ORDERER GENERAL GENESISFILE:指定在Orderer容器中初始区块的所在路径,由volumes中的/channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block指定主机到Docker的映射。
  • ORDERER GENERAL LOCALMSPID:指定当前Orderer容器的唯一MSPID.
  • ORDERER GENERAL LOCALMSPDIR:指定当前Orderer容器的MSP所在路径。
  • ORDERER GENERAL_TLS_ENABLED:是否开启TLS验证。
  • ORDERER GENERAL TLS PRIVATEKEY:指定私钥所在路径。
  • ORDERER GENERAL TLS CERTIFICAT:指定证书所在路径。
  • ORDERER GENERAL TLS ROOTCAS:指定受信任的CA根证书所在路径。

2)working_dir:进入容器后的默认工作目录。
3)volumes:指定系统中的初始区块配置文件、MSP、TLS目录映射到Docker容器中的指定路径下。
4)pots:指定当前节点的监听端口。

各Peer节点容器设置如下信息。


1)extends:基本信息来源于哪个文件。
2)environment:指定容器的D、监听地址及端口号、本地MSPID,大体与Orderer中的environment部分相同。
3)volumes:将系统的msp及tls目录映射到容器中的指定路径下。
4)ports:指定当前节点的监听端口。
配置文件信息如下:

# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

version: '2'

services:

  orderer.example.com:
    container_name: orderer.example.com
    image: hyperledger/fabric-orderer:$IMAGE_TAG
    environment:
      - ORDERER_GENERAL_LOGLEVEL=INFO
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
      # enabled TLS
      - ORDERER_GENERAL_TLS_ENABLED=true
      - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
      - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
      - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: orderer
    volumes:
    - ../channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
    - ../crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/var/hyperledger/orderer/msp
    - ../crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/:/var/hyperledger/orderer/tls
    - orderer.example.com:/var/hyperledger/production/orderer
    ports:
      - 7050:7050

  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    extends:
      file: peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
    volumes:
        - /var/run/:/host/var/run/
        - ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
        - ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
        - peer0.org1.example.com:/var/hyperledger/production
    ports:
      - 7051:7051
      - 7053:7053

  peer1.org1.example.com:
    container_name: peer1.org1.example.com
    extends:
      file: peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer1.org1.example.com
      - CORE_PEER_ADDRESS=peer1.org1.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
    volumes:
        - /var/run/:/host/var/run/
        - ../crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp
        - ../crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls
        - peer1.org1.example.com:/var/hyperledger/production

    ports:
      - 8051:7051
      - 8053:7053

  peer0.org2.example.com:
    container_name: peer0.org2.example.com
    extends:
      file: peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer0.org2.example.com
      - CORE_PEER_ADDRESS=peer0.org2.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051
      - CORE_PEER_LOCALMSPID=Org2MSP
    volumes:
        - /var/run/:/host/var/run/
        - ../crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
        - ../crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
        - peer0.org2.example.com:/var/hyperledger/production
    ports:
      - 9051:7051
      - 9053:7053

  peer1.org2.example.com:
    container_name: peer1.org2.example.com
    extends:
      file: peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer1.org2.example.com
      - CORE_PEER_ADDRESS=peer1.org2.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051
      - CORE_PEER_LOCALMSPID=Org2MSP
    volumes:
        - /var/run/:/host/var/run/
        - ../crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp
        - ../crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls
        - peer1.org2.example.com:/var/hyperledger/production
    ports:
      - 10051:7051
      - 10053:7053

3、被关联的Peer-base.yaml

        在base/docker--compose-base.yaml配置文件中,由extends.file指向了一个peer-base.
yaml的配置文件,该配置文件设置了所有Peer容器的基本的共同信息,其核心配置信息
如下。

  • CORE PEER_TLS_ENABLED:指定是否开启TLS验证。
  • CORE PEER GOSSIP_USELEADERELECTION:指定使用选举方式。
  • CORE PEER GOSSIP ORGLEADER:指定是否将当前节点设定为Leader.
  • CORE PEER TLS CERT FILE:指定TLS证书所在路径。
  • CORE_PEER TLS_KEY FILE:指定密钥所在路径。
  • CORE PEER TLS ROOTCERT FILE:指定受信任的CA根证书所在路径。

配置文件完整内容如下:

# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

version: '2'

services:
  peer-base:
    image: hyperledger/fabric-peer:$IMAGE_TAG
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      # the following setting starts chaincode containers on the same
      # bridge network as the peers
      # https://docs.docker.com/compose/networking/
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_byfn
      - CORE_LOGGING_LEVEL=INFO
      #- CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_PROFILE_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: peer node start

4、启动网络

        所有有关Hyperledger Fabric网络环境所需文件创建且配置完成之后(组织结构及身份证书、初始区块文件、通道交易配置文件及锚节点更新配置文件),就可以启动网络。

下面使用已安装的docker-.compose工具,通过其命令来方便地启动Hyperledger Fabric网络的所有节点:

sudo docker-compose -f docker-compose-cli.yaml up -d

sudo docker-compose -f docker-compose-cil.yaml up -d 是一个命令行指令,用于在使用Docker Compose管理容器化应用程序时启动服务。

这个命令的不同部分解释如下:

  • sudo: 这是一个Linux或Unix系统上的特权命令,用于以超级用户(root)的身份执行后续的命令。它可能需要管理员权限才能运行。
  • docker-compose: 这是一个命令行工具,用于通过一个配置文件(通常是docker-compose.yaml或类似的文件)定义和管理多个Docker容器组成的应用程序。它简化了容器编排和部署过程。
  • -f docker-compose-cil.yaml: 这是一个选项,用于指定要使用的 Docker Compose 配置文件的路径。在这个例子中,配置文件名为 docker-compose-cil.yaml
  • up: 这是一个docker-compose命令,用于启动应用程序中定义的服务。它会根据配置文件创建和启动相应的容器。
  • -d: 这是一个选项,表示在后台运行容器。即使您关闭了终端窗口,容器也会继续运行。

所以,sudo docker-compose -f docker-compose-cil.yaml up -d 命令会读取 docker-compose-cil.yaml 配置文件,并根据其中定义的服务启动相应的容器。这些容器将在后台运行,以便可以继续进行其他操作而不影响它们的运行。

 使用docker ps 命令,查看到6个节点都启动了。

2、完成通道的创建

概念:通道,是将一个大的网络划分成不同的私有“子网”,划分之后的多个子网可以称为多通道。

作用:通道提供一种通信机制,能够将Peer和Orderer连接在一起,形成一个具有保密性的通信链路(虚拟),从而实现对分布式账本数据的隔离。

要加入通道,每个节点都要有自己的通过MSP获得的身份标识。

具体步骤:

1、进入通过docker-compose-cli.yaml配置文件指定的CLI容器

执行如下Docker命令进入指定的CLI容器中(后续操作都在该CLI容器中执行):

sudo docker exec -it cli bash

  • sudo: 它是一个 Linux/Unix 系统中的命令,用于以超级用户权限运行后续的命令。如果当前用户没有足够的权限执行 Docker 相关操作,可以使用 sudo 命令来获取临时的超级用户权限。

  • docker: 这是 Docker 引擎的命令行客户端工具。它用于与 Docker 守护进程通信,并执行与容器和镜像相关的操作。

  • exec: 这是 Docker 命令行客户端的一个子命令,用于在运行中的容器中执行命令。

  • -it: 这是 docker exec 命令的选项之一,用于指定交互式终端和标准输入流(stdin)连接到容器的 TTY(终端)。

  • cli: 这是容器的名称或 ID。cli 在这里代表要执行命令的目标容器。

  • bash: 这是要在容器中执行的命令。bash 是一个常见的 Unix/Linux 命令行解释器,通过执行 bash 命令,我们可以在容器内启动一个交互式的命令行 shell。

如果命令执行成功,则命令提示符会变为如下类似内容(代表成功进人CLI容器):

其中,@符号后面的内容根据不同的设备会显示不同的内容。
2、创建应用通道

  1. 检查环境变量是否正确设置:
echo $CHANNEL_NAME

        2.设置环境变量

export CHANNEL_NAME=mychannel

注意:设置的通道名称必须与创建通道交易配置文件时指定的通道名称相同。

        3.创建通道

peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile  /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

下面是对该命令中各部分的解释:

  • peer: 这是 Hyperledger Fabric 的命令行客户端工具,用于与 Fabric 网络进行交互并执行相应操作。

  • channel create: 这是 peer 命令的子命令,用于在 Fabric 网络中创建一个新的通道。

  • -o orderer.example.com:7050: 这是指定要连接的排序服务节点(orderer)的地址和端口号。在这个例子中,使用的是 orderer.example.com 地址和 7050 端口。

  • -c $CHANNEL_NAME: 这是指定要创建的通道的名称。$CHANNEL_NAME 是一个变量,表示通道名称可以根据实际情况进行替换。

  • -f ./channel-artifacts/channel.tx: 这是指定通道配置文件的路径和文件名。channel.tx 文件包含了有关通道的配置信息,例如组织、锚节点等。

  • --tls: 这是启用 TLS(传输层安全)连接的选项。通过使用 TLS,可以保证通信的安全性。

  • --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: 这是指定用于验证通信的 TLS CA(证书颁发机构)文件的路径和文件名。在这里,使用 /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem 文件进行验证。

2.1将节点加入应用通道

应用通道所包含组织的成员节点可以加入通道中:

peer channel join -b mychannel.block

 参数说明:

  • join —— 将当前Peer节点加入应用通道中。
  • -b —— 指定当前节点要加入/连接至哪个应用通道。

 成功后界面如下:

 更新锚节点

使用Org1的管理员身份更新锚节点配置:

peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org1MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

 使用Org2的管理员身份更新锚节点配置:

CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
root@ac15c364fb7f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org2MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

 2.为什么要创建节点并将其加入应用通道中?

        创建应用通道交易配置文件,可以指定创建的应用通道中可以有哪些组织加入及指定相应的权限;网络上的每个交易都需要在一个指定的通道中执行;在通道中,交易必须通过通道的认证和授权。要加入一个通道的每个节点都必须有自己的通过MSP获得的身份标识,用于鉴定每个节点在通道中的是什么节点和服务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hyperledger Fabric网络快速启动 的相关文章

  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • Linux终端常见用法总结

    熟悉Linux终端的基础用法和常见技巧可以极大提高运维及开发人员的工作效率 笔者结合自身学习实践 总结以下终端用法供同行交流学习 常 见 用 法 1 快捷键 1 1 Alt 在光标位置插入上一次执行命令的最后一个参数 1 2 Ctrl R
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • 用户数据中的幸存者偏差

    幸存者偏差 Survivorship bias 是一种常见的逻辑谬误 意思是没有考虑到筛选的过程 忽略了被筛选掉的关键信息 只看到经过筛选后而产生的结果 先讲个故事 二战时 无奈德国空防强大 盟军战机损毁严重 于是军方便找来科学家统计飞机受
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问

    文章目录 1 前言 2 Imagewheel网站搭建 2 1 Imagewheel下载和安装 2 2 Imagewheel网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar临时数据隧道
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 揭秘网络世界的幕后密码——Wireshark网络协议分析软件

    在我们日常生活中 计算机和互联网已经成为不可或缺的一部分 然而 很少有人真正了解网络背后复杂的工作原理和通信协议 幸运的是 有一款强大而实用的软件 Wireshark 可以帮助我们深入了解网络世界的幕后密码 Wireshark是一款免费的网
  • 国外拨号VPS指南:开启你的全球网络之旅

    在当今数字化时代 互联网已经成为了我们生活的一部分 而要在全球范围内畅通无阻地访问互联网 拥有一个可靠的国外拨号VPS是非常重要的 无论您是为了工作 学习还是娱乐 国外拨号VPS都可以为您提供更广泛的网络体验 本文将为您提供国外拨号VPS的
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 服务器中E5和I9的区别是什么,如何选择合适的配置

    随着科技的进步 服务器处理器的性能在不断攀升 其中 Intel的E5和I9系列处理器在业界具有广泛的影响力 而当我们在选择服务器的时候会有各种各样的配置让我们眼花缭乱不知道该怎么去选择 下面我跟大家分享一下E5跟I9有什么区别 方便我们在选
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学
  • Python Fabric:如何响应键盘输入?

    我想自动响应某些程序提示的某些问题 例如 mysql 提示输入密码 或者 apt 询问 是 或 当我想使用 manage pyrebuild index 重建我的干草堆索引时 对于 MySQL 我可以使用 password 开关 并且我确信
  • 如何发现 Python Fabric 中的当前角色

    这是一个非常Fabric http docs fabfile org具体问题 但更有经验的 python 黑客可能能够回答这个问题 即使他们不了解 Fabric 我试图根据命令运行的角色来指定不同的行为 即 def restart if S

随机推荐

  • swiper-item @touchmove.stop false不好用

    我理解你的问题是说你在使用 Vue js 框架中的 swiper item 组件时 你想禁止它的 touchmove 事件 但是 touchmove stop 这个修饰符却不起作用 首先 touchmove stop 这个修饰符是用来阻止浏
  • 【编译原理】LALR(1)语法分析方法(c++实现)

    前文回顾 编译原理 LR 0 分析方法 c 实现 编译原理 SLR 1 分析方法 c 实现 编译原理 LR 1 分析方法 c 实现 这几个程序的代码大部分是一样的 根据不同算法特点做了部分修改而已 代码 LALR 1 的代码就是在LR 1
  • 元宇宙通证-七、元宇宙外:千行万业的元宇宙化

    七 元宇宙外 千行万业的元宇宙化 元宇宙将会赋能所有行业 激发传统行业的发展新动能 实现行业高质量发展 千行万业的元宇宙化 其中最重要的是经济体系 沉浸感 社交关系的代入 一方面 元宇宙将会赋能现实世界的所有行业领域 基于现有商业模式进行元
  • CTF加密解密—CRYPTO—crypto8

    0x00 考察知识点 这道题和上道Ook的题目同源 直接通过Ook底层的解码进行解码 因为Ook本身就是在brainfuck的基础上完成的 0x01 题目 gt lt gt lt gt lt gt lt gt lt gt lt gt lt
  • Ubuntu系统下《汇编语言》环境配置

    说明 1 系统 Ubuntu codists pc lsb release a No LSB modules are available Distributor ID Ubuntu Description Ubuntu 21 10 Rele
  • C语言实现快速排序与归并排序

    快排 代码如下 include
  • 深度学习框架太抽象?其实不外乎这五大核心组件

    转 http www leiphone com news 201701 DZeAwe2qgx8JhbU8 html 导语 一般深度学习框架都会包括的五大核心组件都有哪些 许多初学者觉得深度学习框架抽象 虽然调用了几个函数 方法 计算了几个数
  • 电阻中联分压电路的计算

    方法一 如下图所示 大概1K 分压1V Vp Vin x R2 R1 R2 3Vx2K 1K 2K 2V 结论 R2增加P增加 R1减小 P增加 方法二 用工具计算 如下图
  • 软件设计师备考——第七章 面向对象

    软件设计师备考 第七章 面向对象 一 面向对象基础 1 面向对象的基本概念 2 类 3 对象 4 消息 二 方法 1 方法重载 2 封装 3 继承 4 多态 5 静态 动态绑定 三 面向对象设计 1 面向对象设计原则 2 面向对象分析 3
  • Git:husky > npm run -s precommit

    git commit前检测husky与pre commit 问题 我是通过vs code 编辑器中进行提交代码 以往都是在勾选上需要提交的文件后 并输入提交描述 点击commit就提交成功了 但是今天点击commit突然报错 思路 先想办法
  • centos red5 添加成为服务并且设置开机自启动

    1 vi etc init d red5 创建tomcat red5 2 在red5中添加如下的内容 一定要在头部添加java环境的引用 否则可能启动不成功 说明 其中的JAVA HOME要设置为本机真实的java路径 RED5 HOME也
  • matlab 画随机数图,怎么用matlab生成100个标准正态分布的随机数并画出直方图

    正态分布是normpdf x mu sigma mu sigma 默认是 0 1例子ez 由热心网友提供的答案1 生成一组随机数 正态分布 data normrnd 0 1 1 500 绘制直方图hist d f normrnd 0 1 1
  • StrongSORT(deepsort强化版)学习体会

    少废话 先做备忘录 StrongSORT deepsort强化版 浅实战 代码解析 参考 https blog csdn net weixin 50862344 article details 127070391 https github
  • 关于angular2路由传参

    在开发一个网站中遇到需要在路由传参的需求 一个示例列表组件 其中每个示例项点击进入均可加载该示例详情页 在路由中传参有3种方法 1 routerLink 单一参数 在 a a 中加routerLink进行跳转 其中 exampledetai
  • SpringBoot3.0都正式发布了,尝鲜之前先搞明白AQS底层再说!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 一 写在前面 上一篇文章聊了一下java并发中常用的原子类的原理和Java 8的优化 具体请参见文章 为什么程序员招聘都要5年经验起 因为他们懂Java8底层优化 这
  • 测试工程师的核心竞争力

    基础能力 1 测试策略设计能力 测试策略设计能力是指 对于各种不同的被测软件 能够快速准确地理解需求 并在有限的时间和资源下 明确测试重点以及最适合的测试方法的能力 例如 测试要具体执行到什么程度 测试需要借助于什么工具 如何运用自动化测试
  • git - 简明指南

    安装 下载 git OSX 版 下载 git Windows 版 Linux自己通过yum apt get等命令安装 创建新仓库 创建新文件夹 打开 然后执行 git init 以创建新的 git 仓库 检出仓库 执行如下命令以创建一个本地
  • SpringBoot使用Slf4j进行日志配置

    首先在resource文件夹下面创建logback spring xml文件
  • eslint+prettier前端代码规范配置

    前端代码规范配置 参考来源 https blog csdn net u013361179 article details 108885859 前言 eslint的作用 eslint作用是按照一定规则 检测代码质量 prettier的作用 p
  • Hyperledger Fabric网络快速启动

    目录 1 网络服务配置 2 关联的docker compose base yaml 各Peer节点容器设置如下信息 3 被关联的Peer base yaml 4 启动网络 2 完成通道的创建 2 1将节点加入应用通道 更新锚节点 2 为什么