Hyperledger Fabric网络快速启动

2023-11-02

目录

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网络快速启动 的相关文章

  • python Fabric是否支持动态设置env.hosts?

    我想动态更改 env hosts 因为有时我想先部署到一台机器 检查是否正常 然后部署到多台机器 目前我需要先设置 env hosts 如何在方法中设置 env hosts 而不是在脚本启动时全局设置 是的 你可以设置env hosts动态
  • Fabric + DigitalOcean:不可见的环境变量?

    我在 DigitalOcean 上有服务器 我使用 Fabric 来部署我的代码 我的代码依赖于环境变量 烧瓶配置 我今天遇到了一个奇怪的麻烦 在服务器上 root bashrc我已经添加了下一行 export CONFIG path to
  • 在不使用命令行工具的情况下使用 Python Fabric (fab)

    尽管 Fabric 文档提到了一种使用该库进行 SSH 访问而不需要 fab 命令行工具和 或任务的方法 但我似乎无法管理一种方法来做到这一点 我想运行这个文件 示例 py 通过仅执行 python 示例 py env hosts exam
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本
  • Linux终端常见用法总结

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

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 2024年金三银四网络安全考试试题

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

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 服务器VPS是什么意思?一文了解其含义与重要性

    在今天的数字时代 服务器扮演着至关重要的角色 它们是网站 应用程序和在线业务的基石 但是 你是否听说过VPS 本文将深入探讨什么是服务器VPS 以及为什么它在今天的互联网世界中如此重要 什么是服务器VPS 服务器的基本概念 在我们深入探讨V
  • UI自动化测试之Jenkins配置

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

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • 【无标题】

    大家都知道该赛项的规程和样题向来都是模棱两可 从来不说具体的内容 导致选手在备赛时没有头绪 不知道该怎么训练 到了赛时发现题目和备赛的时候完全不一样 那么本文将以往年信息安全管理与评估赛项经验来解读今年2023年国赛的规程 帮助选手们指明方
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学
  • 导入错误:没有名为“fabric.contrib”的模块

    Fabric 2 0 1 运行调用 fabfile py 的项目时出错 我使用的是 Python 3 5 1 有谁知道为什么会发生这种情况 Traceback most recent call last File bootstrap pex
  • Python Fabric:如何响应键盘输入?

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

    我有一个命令service app start demo需要我输入sudo service app start demo在命令行中 I used sudo service app start demo and sudo sudo servi
  • 如何对项目的 cron 作业进行版本控制? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一堆项目 我用 git 和 fab 推送到服务器 它们是 Django 站点的负载 其中一些站点有 cron 作业 我希望处于这样的境地 通

随机推荐

  • c语言repeat语句的用法,关于Lua中的repeat...until循环语句的使用教程

    关于Lua中的repeat until循环语句的使用教程 这篇文章主要介绍了Lua中的repeat until循环语句使用教程 是Lua入门学习中的基础教程 需要的朋友可以参考下与for和while循环不同 在循环的顶部测试循环条件 Lua
  • 【JavaWeb】PowerDesigner的使用

    PowerDesigner 数据库设计的工具 01 PowerDesigner概述 02 数据模型 2 1 概念数据模型 2 1 1 PowerDesigner使用之概念数据模型 2 1 2 根据概念模型生成物理模型 2 2 物理数据模型
  • C# 参数中this 表示扩展扩展方法

    怎么使用 public static SlicedHull Slice this GameObject obj Vector3 position Vector3 direction Material crossSectionMaterial
  • IOTCS+Ekuiper搭建物联网边缘计算平台

    背景介绍 IOTCS 是专为物联网平台而设计的工业智能网关 自从 2020 年 10 月以来 我们从需求调研 设计 定型 研发 测试经过漫长的沉淀与孵化 最终顺利实现工业智能网关最初的设想 我们凭借创新设计理念 快捷的安装以及部署 易用的扩
  • pycharm+pyqt5:CreateProcess error=5,拒绝访问

    问题背景 使用pyqt5来做python的图形界面程序开发实验 提前安装并配置了相关环境 弄了一下午 终于弄好了 总体的安装教程就不多说了 说说我遇到的错误叭 问题分析 通过命令行下载好相关工具后 需要使用pycharm的external
  • ant利用正则表达式获取文件夹名

  • wait(),waitpid()函数

    首先我们来了解一下所谓的僵尸进程 僵尸进程就是两个进程 一个父进程 一个子进程 其子进程终止后 0 3G的用户内存被回收 而3 4G的部分内存被回收 但是3 4G内存中的PCB等待父进程回收 若PCB未被父进程回收 我们称这个进程为僵尸进程
  • css/wxss 用伪类实现竖线效果(图片+源码)before、after巧用

    源代码见本文末尾 本文的代码片段用HTML语言书写 适用于网页 微信原生小程序 框架uniapp等 小程序原生开发需要实现这样一个效果 用伪类啊 这个我熟 先讲讲思路 因为用before和after的效果是一样的 所以我们任选一个 选择be
  • 基于OVSDB协议在SDN控制器ONOS开发配置管理OVS API

    为了更好的分享体验 博客搬迁至极客驿站 欢迎查阅 基于OVSDB协议在SDN控制器ONOS开发配置管理OVS API 介绍 准备工作 开发步骤 问题排查 介绍 目前protocol 中ovsdb协议层面已经实现 但是基于ovsdb prot
  • uniapp 点击复制 并有弹窗提示

    click myCopy 要复制的值 uni setClipboardData data delivery id 要被复制的内容 success gt uni showToast title 复制成功
  • 砝码称重——不同算法解决

    1 问题 砝码称重问题 设有1g 2g 3g 5g 10g 20g的砝码各若干枚 其质量 lt 1000g 求出用他们能称出的质量的种类数 不包括质量为0的情况 2 枚举法 算法思路 1 枚举不同砝码的个数 计算总重量 并将总重量对应的标志
  • Java学习总结-IO流的概念理解

    一 Java io流 的概念 流存在的意义 1 数据的传输量很大 2 内存有限 3 带宽有限 而Stream可以1点1点地逐步传输所有数据 这就是Stream存在的根本意义 想想我们是怎样下载1个大文件的 下载软件 例如x雷 并不会占用你内
  • IOS推送总结

    此文主要以证书生成配置为主 实现简单推送 部分截图与内容来自于互联网 若对大家有所帮助 还请给个赞O O 如有误 请指出 一起探讨 一 推送原理 Provider是指某个iPhone软件的Push服务器 APNS 是Apple Push N
  • Java中instanceof关键字的理解

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例 instanceof通过返回一个布尔值来指出 这个对象是否是这个特定类或者是它的子类的一个实例 用法 result object instanceof
  • linux宝塔命令

    安装宝塔 Centos安装脚本 yum install y wget wget O install sh http download bt cn install install sh sh install sh Ubuntu Deepin安
  • Linux中的Chrony时间同步服务

    目录 一 时间同步 1 概念 2 时间同步在运维工作中的作用 3 时间同步完成方法 1 NTP时间服务 centos 6 2 Chrony时间服务 二 Chrony时间服务 1 Chrony介绍 2 Chrony的优点 三 Chrony安装
  • shell脚本中grep时关于变量带双引号的小问题

    今天在写一个shell脚本的时候 有一个操作是使用grep命令在一个文件中搜索指定内容 指定内容存放在文件中 使用一个变量去获取文件中内容 再传到grep命令中去 这段代码如下 for target in cat content txt d
  • java游戏服务器开发需要学习的技术

    一 游戏服务器编程语言的选择 所谓的游戏服务器编程语言其实有很多 基本上任何一种语言都可以作为游戏服务器的编程语言 这需要根据自己游戏的类型和要求加以选择 比如C Java Erlang go等等 目前我用过的只有C 和Java 但是以Ja
  • 查看broker节点信息

    kafka查看broker节点信息可以进入zookeeper客户端中查看 运行zkCli sh进入客户端 输入ls 可以看到相关的节点 输入 ls broker ids 可以看到broker数
  • Hyperledger Fabric网络快速启动

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