Hyperledger fabric Hyperledger结构:如何向现有Hyperledger Composer单组织结构网络添加新组织和对等组织?

Hyperledger fabric Hyperledger结构:如何向现有Hyperledger Composer单组织结构网络添加新组织和对等组织?,hyperledger-fabric,Hyperledger Fabric,我不熟悉Hyperledger结构 我能够使用一个教程来: 安装前提条件和hyperledger composer开发工具 创建结构网络 安装/部署业务网络 创建一个有角度的前端 但是,创建的结构网络只有一个组织和一个对等网络。对于我的POC,我需要三个组织,每个组织有一个对等组织 如何在现有结构网络中添加其他组织和对等方?步骤 A)安装先决条件 (Run in dir - dev5@ubuntu:~$) 1) 您可以从更新和升级包管理器开始 2.安装旋涡 sudo apt-get insta

我不熟悉Hyperledger结构

我能够使用一个教程来:

  • 安装前提条件和hyperledger composer开发工具

  • 创建结构网络

  • 安装/部署业务网络

  • 创建一个有角度的前端

  • 但是,创建的结构网络只有一个组织和一个对等网络。对于我的POC,我需要三个组织,每个组织有一个对等组织

    如何在现有结构网络中添加其他组织和对等方?

    步骤

    A)安装先决条件

    (Run in dir - dev5@ubuntu:~$)
    
    1) 您可以从更新和升级包管理器开始

    2.安装旋涡

    sudo apt-get install curl
    
    3检查卷曲版本

    curl --version
    
    4安装Go语言

    $ cd $HOME/
    wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
    $ tar -xvf go1.8.1.linux-amd64.tar.gz
    $ mkdir $HOME/gopath
    $ export GOPATH=$HOME/gopath
    $ export GOROOT=$HOME/go
    $ export PATH=$PATH:$GOROOT/bin
    $ go version
    
    5使用以下命令下载必备文件\

    curl -O https://hyperledger.github.io/composer/latest/prereqs-ubuntu.sh
    
    6安装libltdl-dev

    apt-get install libltdl-dev
    
    7打开preres-ubuntu.sh文件以供参考。从文件中获取以下命令。检查它们是否匹配。如果没有,则使用文件中的一个

    8此命令位于字符串“支持的版本数组”处。运行它

    9更新将来使用的代码名变量

    if [ -z "$1" ]; then
        source /etc/lsb-release || \
            (echo "Error: Release information not found, run script passing Ubuntu         version codename as a parameter"; exit 1)
        CODENAME=${DISTRIB_CODENAME}
    else
        CODENAME=${1}
    fi
    
    10检查是否支持该版本

    if echo ${versions[@]} | grep -q -w ${CODENAME}; then
        echo "Installing Hyperledger Composer prereqs for Ubuntu ${CODENAME}"
    else
        echo "Error: Ubuntu ${CODENAME} is not supported"
        exit 1
    fi
    
    11更新包管理器

    sudo apt-get update
    
    12安装Git

    sudo apt-get install -y git
    
    13安装nvm依赖项

    sudo apt-get -y install build-essential libssl-dev
    
    14执行nvm安装脚本

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
    
    15在不重新启动外壳的情况下设置nvm环境

    export NVM_DIR="${HOME}/.nvm"
            [ -s "${NVM_DIR}/nvm.sh" ] && . "${NVM_DIR}/nvm.sh"
            [ -s "${NVM_DIR}/bash_completion" ] && . "${NVM_DIR}/bash_completion"
    
    16安装节点

    nvm install --lts
    
    17配置nvm以使用版本6.9.5

    nvm use --lts
    nvm alias default 'lts/*'
    
    18安装最新版本的npm

    npm install npm@latest -g
    
    19将Docker存储库密钥添加到APT密钥链

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    20 APT将搜索Docker软件包的更新

    echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
    ${CODENAME} stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list
    
    21更新包裹清单

    sudo apt-get update
    
    22验证APT是否从正确的存储库中提取

    sudo apt-cache policy docker-ce
    
    23安装Docker

    sudo apt-get -y install docker-ce
    
    24安装docker compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.13.0/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose
        sudo chmod +x /usr/local/bin/docker-compose
    
    25如果需要,安装python v2

    set +e
    COUNT="$(python -V 2>&1 | grep -c 2.)"
    if [ ${COUNT} -ne 1 ]
    then
       sudo apt-get install -y python-minimal
    fi
    
    26安装解压,需要安装hyperledger结构

    sudo apt-get -y install unzip
    
    27需要升级docker compose,因为>=1.18

    sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-    compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    
    28从github克隆结构样本

    git clone https://github.com/mahoney1/fabric-samples.git
    
    B安装hyperledger composer开发工具
    (磨合方向-dev5@ubuntu:~$)

    1安装CLI工具-

        composer-cli    npm install -g composer-cli
        composer-rest-server    npm install -g composer-rest-server
        generator-hyperledger-composer  npm install -g generator-hyperledger-composer
        Yeoman  npm install -g yo
    
    2设置您的IDE

        https://code.visualstudio.com/download
    
    Open VSCode, go to Extensions, then search for and install the Hyperledger Composer extension from the Marketplace. 
    
    C运行结构网络

    (Run in dir - dev5@ubuntu:~$ fabric-samples)
    
    1将目录更改为fabric samples

    cd fabric-samples
    
    2使用此命令下载平台二进制文件,包括cryptogen(bash命令需要三个参数):

    3要使用当前结构级别,请运行以下命令

    git checkout multi-org
    
    4检查下载的二进制文件。将目录更改为bin

    cd bin
    ls
    
    5更改为第一个网络目录

    cd ../
    cd first-network
    ls
    
    6为您的第一个网络生成所需的证书和文章

    ./byfn.sh -m generate
    
    7开始织物

    sudo ./byfn.sh -m up -s couchdb -a
    
    On error - "Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?"    
    
    检查docker是否处于活动状态

    sudo systemctl is-active docker
    
    如果未激活,则
    sudo docker图像 sudo usermod-aG docker$(whoami) sudo usermod-a-G docker$USER sudo docker--版本

    要启动docker,请运行

    sudo service docker restart     
    
    8重新开始织物

    $ sudo ./byfn.sh -m up -s couchdb -a
    
    9如果网络仍然无法启动,则重新启动通道

    sudo ./byfn.sh -m restart -c mychannel
    
    D运行结构网络

    *Organization Org1 is represented by Alice  
    Organization Org2 is represented by Bob*    
    
    1创建一个临时工作目录(和子目录),以管理Composer连接配置文件和密钥/证书文件

    mkdir -p /tmp/composer/org1
    mkdir -p /tmp/composer/org2
    
    2创建一个基本连接配置文件,用于描述可提供给
    爱丽丝和鲍勃
    转到/tmp/composer

    cd /
    cd tmp
    cd composer
    
    Open editor and copy paste the contents of byfn-network.json sheet in the editor and save it as byfn-network.json   
    
    nano
    
    3打开byfn-network.json并用ORG1对等节点的CA证书替换文本INSERT_ORG1_CA_CERT的所有实例

    composer card import -f PeerAdmin@byfn-network-org1.card --card PeerAdmin@byfn-network-org1
    
    [磨合方向-dev5@ubuntu:~$fabric示例/第一个网络]

    3.1运行命令并从生成的.pem文件中获取证书,以便将其嵌入上述连接配置文件中

    3.11转到第一个网络文件夹
    光盘/ cd home/dev5 cd结构示例/第一网络

    3.12执行命令生成/tmp/composer/org1/ca-org1.txt

    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt > /tmp/composer/org1/ca-org1.txt
    
    3.13开放式ca-org1

    3.14复制文件/tmp/composer/org1/ca-org1.txt的内容,并替换.json文件中的文本INSERT_org1_ca_CERT

    4在同一.json文件中-您需要将文本INSERT_ORG2_CA_CERT的所有实例替换为ORG2对等节点的CA证书

    composer card create -p /tmp/composer/org2/byfn-network-org2.json -u PeerAdmin -c /tmp/composer/org2/Admin@org2.example.com-cert.pem -k /tmp/composer/org2/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org2.card
    
    4.1运行命令并从生成的.pem文件中获取证书,以便将其嵌入上述连接配置文件中

    4.11执行命令生成/tmp/composer/org1/ca-org2.txt

    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt > /tmp/composer/org2/ca-org2.txt
    
    4.12开放式ca-org2

    4.13复制文件/tmp/composer/org1/ca-org2.txt的内容并替换文本

    INSERT_ORG2_CA_CERT in the .json file   
    
    INSERT_ORDERER_CA_CERT with the CA certificate for the orderer node 
    
    5替换文本的所有实例

    INSERT_ORG2_CA_CERT in the .json file   
    
    INSERT_ORDERER_CA_CERT with the CA certificate for the orderer node 
    
    5.1运行命令并从生成的.pem文件中获取证书,以便将其嵌入上述连接配置文件中

    5.11执行命令生成/tmp/composer/org1/ca-order.txt

    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt > /tmp/composer/ca-orderer.txt
    
    5.12打开ca-order.txt

    5.13复制文件/tmp/composer/org1/ca-order.txt的内容,并替换.json文件中的文本INSERT_order_ca_CERT

    6将此文件另存为/tmp/composer/byfn network.json
    此连接配置文件现在描述了结构网络设置、网络中的所有对等方、订购方和证书颁发机构,它定义了参与网络的所有组织,还定义了此网络上的通道。{{site.data.conrefs.composer_full}}只能与单个通道交互,因此只能定义一个通道

    7自定义Org1的连接配置文件

    In the connection profile /tmp/composer/byfn-network.json between the version property and just before the channel property, add this block that specifies the organization that alice belongs to, in a client section with optional timeouts. Save the connection profile file as a NEW file called byfn-network-org1.json in /tmp/composer/org1/      
    
    "client": {
        "organization": "Org1",
        "connection": {
            "timeout": {
                "peer": {
                    "endorser": "300",
                    "eventHub": "300",
                    "eventReg": "300"
                },
                "orderer": "300"
            }
        }
    },
    
    composer network install --card PeerAdmin@byfn-network-org1 --archiveFile trade-network.bna
    
    8自定义Org2的连接配置文件
    在version属性和channel属性之间的connection profile/tmp/composer/byfn-network.json中,在具有
    composer card create -p /tmp/composer/org1/byfn-network-org1.json -u PeerAdmin -c /tmp/composer/org1/Admin@org1.example.com-cert.pem -k /tmp/composer/org1/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org1.card
    
    composer card create -p /tmp/composer/org2/byfn-network-org2.json -u PeerAdmin -c /tmp/composer/org2/Admin@org2.example.com-cert.pem -k /tmp/composer/org2/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org2.card
    
    composer card import -f PeerAdmin@byfn-network-org1.card --card PeerAdmin@byfn-network-org1
    
    composer card import -f PeerAdmin@byfn-network-org2.card --card PeerAdmin@byfn-network-org2
    
    composer network install --card PeerAdmin@byfn-network-org1 --archiveFile trade-network.bna
    
    composer network install --card PeerAdmin@byfn-network-org2 --archiveFile fta-fab-net.bna
    
    The endorsement policy you have just created states that both Org1 and Org2 must endorse transactions in the business network before they can be committed to the blockchain. If Org1 or Org2 do not endorse transactions, or disagree on the result of a transaction, then the transaction will be rejected by the business network.   
    
    composer identity request -c PeerAdmin@byfn-network-org1 -u admin -s adminpw -d alice
    
    composer identity request -c PeerAdmin@byfn-network-org2 -u admin -s adminpw -d bob
    
    composer network start -c PeerAdmin@byfn-network-org1 -n fta-fab-net -V 0.1.14 -o endorsementPolicyFile=/tmp/composer/endorsement-policy.json -A alice -C alice/admin-pub.pem -A bob -C bob/admin-pub.pem
    
    composer card create -p /tmp/composer/org1/byfn-network-org1.json -u alice -n fta-fab-net -c alice/admin-pub.pem -k alice/admin-priv.pem
    
    composer card import -f alice@fta-fab-net.card
    
    composer network ping -c alice@fta-fab-net
    
    composer card create -p /tmp/composer/org2/byfn-network-org2.json -u bob -n fta-fab-net -c bob/admin-pub.pem -k bob/admin-priv.pem
    
    composer card import -f bob@fta-fab-net.card
    
    composer network ping -c bob@fta-fab-net
    
    http://localhost:3000/explorer