エンタープライズ・デプロイメント・ツールを使用したBCOSのデプロイメント


文書ディレクトリ
  • 一、ダウンロードインストール
  • 1、ダウンロード
  • 2、取付
  • 3、取得ノードバイナリ
  • 4、バイナリバージョンの確認
  • 二、ノードグループネットワークトポロジ
  • 三、機器環境
  • 四、関連機構
  • 五、キーフロー
  • 六、アライアンスチェーン初期化
  • 1、初期化チェーン証明書
  • 証明書発行機関で操作し、1つの連盟チェーンが唯一のチェーン証明書ca.crt
  • を持っている.
  • 2、初期化機構A
  • 3、初期化機構B
  • 4、機構Aは配置ファイルを修正する(機構Bは類似の修正を行い、対応する配置をBの配置に変える)
  • 5、機構Aがノード情報を生成して送信する(機構Bが対応する操作を行い、AをBに置き換える)
  • 6、機構A生成グループ1創世ブロック
  • 7、機構Aは所属ノードを生成する(機構Bは類似操作で所属ノードを生成する)
  • エンタープライズ・デプロイメント・ツールの使用
  • FISCO BCOSエンタープライズクラスの導入ツールは、実際の多機関生産環境向けです.機関の鍵のセキュリティを保証するために、エンタープライズ・デプロイメント・ツールは、機関間で連携してアライアンス・チェーンをデプロイメントする方法を提供します.
  • 本稿では、4ノード2メカニズム1グループのグループネットワークモデルを導入し、エンタープライズクラスの導入ツールの使用方法を説明します.パラメータオプションの詳細については、こちらを参照してください.
  • この章は、複数の機関が対等に配置されるプロセスであり、複数の機関が配置され、機関の秘密鍵がイントラネットから出ない場合に適用される.

  • 一、ダウンロードインストール
    1、ダウンロード
    $ cd ~/ && git clone https://github.com/FISCO-BCOS/generator.git
    

    2、取り付け
    この操作にはsudo権限が必要です
    $ cd ~/generator && bash ./scripts/install.sh
    

    インストールに成功したかどうかを確認し、成功したらusage:generator xxxを出力します.
    $ ./generator -h
    

    3、ノードバイナリの取得
    最新fisco-bcosバイナリファイルをmetaに引き抜く
    $ ./generator --download_fisco ./meta
    

    4、バイナリバージョンの確認
    成功すると、FISCO-BCOS Version:x.x.x-xを出力します.
    $ ./meta/fisco-bcos -v
    

    二、ノードグループネットワークトポロジー
    図に示す6ノード3機構2のグループのグループネットワークモード.機構Bおよび機構Cは、それぞれグループ1およびグループ2に位置する.[外部チェーン画像の転送に失敗しました.ソース局には盗難防止チェーンがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-hVRbYa 7 Y-15484456936233)(en-resource://database/737:1)]
    機構Aは、同じくグループ1およびグループ2に属する.
    本稿では,4ノード2機構1群のグループネットワークモードを用いて,6ノード3機構2群のグループネットワークモードを検討する.[外部チェーン画像の転送に失敗しました.ソース局には盗難防止チェーンがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-ObPllglK-1584456936236)(en-resource://database/739:2)]
    三、機械環境
    各ノードのIP、ポート番号は以下の通りです.
    機構
    ノード
    所属グループ
    P 2 Pアドレス
    RPC/channelリスニングアドレス
    機構A
    ノード0
    グループ1
    パブリックip:30300
    イントラネットip:8545/:20200
    ノード1
    グループ1
    パブリックip:30301
    イントラネットip:8546/:20201
    機構B
    ノード2
    グループ1
    パブリックip:30300
    イントラネットip:8545/:20200
    ノード3
    グループ1
    パブリックip:30301
    イントラネットip:8546/:20201
    メモクラウドサーバのvpsサーバの場合、RPCリスニングアドレスは、イントラネットアドレスや127.0.0.1などのネットワークカードの実際のアドレスを書く必要があります.ユーザーがログインしているsshサーバと一致しない可能性があります.
    四、関連機構
    チェーン操作は、次のような複数の機関の協力に関連しています.
  • 証明書発行機関
  • ノードを構築する機構(略称「機構」)
  • 五、重要プロセス
    [外部チェーン画像の転送に失敗しました.ソース局には盗難防止チェーンがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-Xx 90 LRao-154456936237)(en-resource://database/741:1)]
    六、連盟チェーンの初期化
    1、チェーン証明書の初期化
    証明書発行機関で操作し、1つの連盟チェーンが唯一のチェーン証明書ca.crtを持つ
    ubuntu 18.04サーバ、machineA、machineBを2台用意します.ユーザ名はubuntu ipそれぞれmachineA_ip、machineB_ipはmachineAを証明書発行機関とし、機関Aと命名し、machineBが所在する機関を機関Bと命名する
  • チェーン証明書の生成
  • $ cd ~/generator
    
    $ ./generator --generate_chain_certificate ./dir_chain_ca
    
    #      
    $ ls ./dir_chain_ca
    #           、   
    ca.crt  ca.key
    

    2、初期化機構A
    機関A証明書の生成
    $ ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyA
    

    機関証明書および秘密鍵の表示
    $ ls dir_agency_ca/agencyA/
    
    #       #            、    、   
    agency.crt  agency.key  ca.crt
    

    チェーン証明書、機関証明書、機関秘密鍵を機関Aに送信する例は、ファイルコピーにより、証明書授権機関から機関証明書を対応する機関に送信し、機関の作業ディレクトリのmetaサブディレクトリの下に置く
    $ cp ./dir_agency_ca/agencyA/* ~/generator/meta/
    

    チェーン証明書をmachineBに送信
    $ scp -r ./dir_chain_ca ubuntu@machineB_ip:/home/ubuntu/generator/dir_chain_ca
    

    3、初期化機構B
    機関B証明書の生成
    $ ./generator --generate_agency_certificate ./dir_agency_ca ./dir_chain_ca agencyB
    

    機関証明書および秘密鍵の表示
    $ ls dir_agency_ca/agencyB/
    
    #       #            、    、   
    agency.crt  agency.key  ca.crt
    

    チェーン証明書、機関証明書、機関秘密鍵を機関Aに送信する例は、ファイルコピーにより、証明書授権機関から機関証明書を対応する機関に送信し、機関の作業ディレクトリのmetaサブディレクトリの下に置く
    $ cp ./dir_agency_ca/agencyB/* ~/generator/meta/
    

    1つのアライアンスチェーンでは1つのルート証明書ca.crtしか使用できません.マルチサーバの導入時に複数のルート証明書と秘密鍵を生成しないでください.1つのグループに1つのグループしか作成できませんgroup.x.genesis
    4、機構Aは配置ファイルを修正する(機構Bは類似の修正を行い、相応の配置をBの配置に変える)
    $ vim ./conf/node_deployment.ini
    #       :
    [group]group_id=1
    
    [node0]
    ; host ip for the communication among peers.
    ; Please use your ssh login ip.
    p2p_ip=machineA   ip
    ; listen ip for the communication between sdk clients.
    ; This ip is the same as p2p_ip for physical host.
    ; But for virtual host e.g. vps servers, it is usually different from p2p_ip.
    ; You can check accessible addresses of your network card.
    ; Please see https://tecadmin.net/check-ip-address-ubuntu-18-04-desktop/
    ;for more instructions.
    rpc_ip=machineA   ip
    p2p_listen_port=30300
    channel_listen_port=20200
    jsonrpc_listen_port=8545
    
    [node1]
    p2p_ip=machineA   ip
    rpc_ip=machineA   ip
    p2p_listen_port=30301
    channel_listen_port=20201
    jsonrpc_listen_port=8546
    

    5、機構Aは、ノード情報を生成して送信する(機構Bは、対応する操作を行い、AをBに置き換える)
    機構Aは、上記構成のnode_deployment.ini、およびメカニズムmetaフォルダの下のメカニズム証明書と秘密鍵、メカニズムAはノード証明書およびP 2 P接続情報ファイルを生成する.
    $ ./generator --generate_all_certificates ./agencyA_node_info
    

    生成ファイルを表示するには、次の手順に従います.
    $ ls ./agencyA_node_info
    
    #       
    #               A     ,  P2P      (  node_deployment.ini          )
    cert_machineA_IP_30300.crt cert_machineA_IP_30301.crt peers.txt
    

    機構がノードを生成する際には他のノードのノードP 2 P接続アドレスを指定する必要があるため、A機構はノードP 2 P接続アドレスファイルを機構Bに送信する必要がある.送信ノードP 2 P接続アドレスファイル:
    $ scp ./agencyA_node_info/peers.txt ubuntu@machineB_IP:/home/ubuntu/generator/meta/peersA.txt
    

    創世ブロックを生成する機構にはノード証明書が必要であり、例ではA機構によって創世ブロックが生成されるので、B機構はノードP 2 P接続アドレスファイルの他に、機構Aにノード証明書を送信する必要がある.ノード証明書の送信(メカニズムBでの操作のみ):
    $ scp ./agencyB_node_info/cert*.crt ubuntu@machineB_IP:/home/ubuntu/generator/meta/
    

    6、機構A生成グループ1創世ブロック
    機構Aはconfフォルダの下のgroup_を修正するgenesis.ini
    $ vim ./conf/group_genesis.ini
    
    [group]
    group_id=1
    
    [nodes]
    node0=machineA_IP:30300
    node1=machineA_IP:30301
    node2=machineB_IP:30300
    node3=machineB_IP:30301
    

    チュートリアルでは、選択機構Aがグループ創世ブロックを生成し、実際の生産では連盟チェーン委員会を通じて選択を協議することができる.
    このステップでは、メカニズムAのmetaフォルダの下に配置されているノード証明書に基づいてgroup_を生成します.genesis.iniが構成するグループ創世ブロック、チュートリアルで機構Aを必要とするmetaの下でcert_と呼ばれていますmachineA_IP_30300.crt,cert_machineA_IP_30301.crt,cert_machineA_IP_30300.crt,cert_machineA_IP_30301.crtのノード証明書.このステップでは、メカニズムBのノード証明書を使用する必要があります.
    $ ./generator --create_group_genesis ./group
    

    配布グループ1創世ブロックから機構Bへ:
    $ scp ./group/group.1.genesis ubuntu@machineB_IP:/home/ubuntu/generator/meta
    

    7、機構Aは所属ノードを生成する(機構Bは類似操作で所属ノードを生成する)
    機構Aが属するノードが生成され、このコマンドはユーザによって構成されるnode_deployment.iniファイルは、対応するノード構成フォルダを生成します.このステップで指定したノードP 2 P接続情報peers.txtは、グループ内の他のノードのリンク情報であり、複数のメカニズムグループネットワークの場合にマージする必要があります.
    $ ./generator --build_install_package ./meta/peersB.txt ./nodeA
    

    構築ノード構成フォルダを表示するには、次の手順に従います.
    $ ls ./nodeA
    #          tree    
    #       nodeA      ,
    ├── monitor # monitor  
    ├── node_machineA_IP_30300 # machineA       30300        
    ├── node_machineA_30301
    ├── scripts #          
    ├── start_all.sh #         
    └── stop_all.sh #         
    

    機構A起動ノード:
    $ bash ./nodeA/start_all.sh
    #       
    $ ps -ef | grep fisco
    #     log:
    $ tail -f ./node*/node*/log/log*  | grep +++
    

    機構Bが上記の流れに従ってノードを起動した後、図に示す機構A、Bがグループ1を構築する操作を完了した:[外部チェーン画像の転送に失敗し、ソース局に盗難防止チェーン機構がある可能性があり、画像を保存して直接アップロードすることを提案する(img-LVwByCSX-1584456936238)(en-resource://database/739:2)]