3 Oracle Blockchain Platformインスタンスのインストール

仮想マシンのデプロイ

仮想マシン・ホスティング・ソフトウェアへのOracle Blockchain Platform Enterprise Editionのロード

  1. Oracle Blockchain Platform Enterprise Editionのページで、「Download」をクリックし、ステップに従ってOracle Blockchain Platform Enterprise Editionパッケージをダウンロードします。ダウンロードしたアーカイブ・ファイルから、OVAイメージobpee_21_1_2.ovaを抽出します。
  2. VMを仮想マシン・ホスティング・ソフトウェアにインポートします。たとえば、Oracle VirtualBoxの場合、次のステップを実行します。VMWare ESXiの使用の詳細は、「VMWare ESXiでのOracle Blockchain Platform Enterprise Editionのロード」を参照してください。
    1. ファイルアプライアンスのインポートの順に選択し、OVAが抽出されているディレクトリを参照します。
    2. セットアップで複数のVMを実行する場合は、アプライアンス設定ページで、すべてのネットワーク・カードのMACアドレスの再初期化を選択できます。アプライアンスを複数回インポートするか、インポート直後にVMをクローニングすると、複数のVMを作成できます。インポートをクリックします。
  3. 数分後、VirtualBox Managerのマシン・リストにVMが表示されます。VMを右クリックし、設定を選択します:
    1. マザーボードタブのシステムで、UTC時間のハードウェア・クロックを選択して、ゲストVMとホストのクロックがタイムゾーンに関して一致していることを確認します。
    2. VMを配置するネットワークに接続されているアダプタタブのネットワークで、ネットワーク・アダプタの有効化」が選択されていることを確認し、ブリッジ・アダプタを選択します。

これで、VMを使用する準備が整いました。

VMWare ESXiでのOracle Blockchain Platform Enterprise Editionのロード

  1. VMWare ESXiナビゲータで、「仮想マシン」ページを選択し、「VMの作成/VMの登録」をクリックします。
  2. 作成タイプの選択で、OVFまたはOVAファイルからの仮想マシンのデプロイを選択し、「次」をクリックします。
  3. 仮想マシンの名前を入力し、ダウンロードしたブロックチェーン・パッケージ(OVAファイル)を選択して、「次」をクリックします。
  4. デフォルト値を受け入れ、残りのページの「次」をクリックします。
  5. 「終了」をクリックし、VMがプロビジョニングされるまで待機します。
  6. VMの実行後、VMに対してコンソールを開き、デフォルトのユーザー名oracleおよびデフォルトのパスワードWelcome1を使用してログインします。パスワードを変更するよう求められます。パスワードを変更したら、新しいパスワードを使用して再度ログインします。
  7. DHCPでIPアドレスを取得できるようにするには、sudoコマンドを使用してrootアカウントに変更してから、次のステップを実行します:
    1. ファイル/etc/sysconfig/network-scripts/ifcfg-enp0s3を、ifcfg-ens160という同じディレクトリ内の新しいファイルにコピーします。
    2. ifcfg-ens160ファイルを編集して、アダプタ名をenp0s3からens160に変更します。
    3. VMの電源を切断します。
    4. ネットワーク・アダプタ・タイプをE1000からVMXNET 3に変更します。
  8. VMの電源を投入します。

これで、VMを使用する準備が整いました。

台帳に使用できる領域の拡張

Oracle Blockchain Platformのレジャーおよびログは永続的であるため、領域が不足しないようにルート・ボリュームを拡張する必要があります。

  1. SCSIコントローラ用のハード・ディスクを追加します。VirtualBoxで、設定をクリックし、記憶域を選択します。新しいハード・ディスクを追加します。推奨されるファイル・タイプはVHD (仮想ハード・ディスク)です。固定または拡張可能のいずれかのモードを選択します。
  2. 論理ボリューム・パーティションを作成します:
    sudo fdisk -c -u /dev/sdb
    次のサブコマンドを順に入力します:
    n Create new partition Press 
    p Choose primary partition use p
    1 Choose 1 for the primary partition
    after this press return key twice for max allocation
    t Change the type
    8e Change the partition type to Linux LVM
    p Print the partition
    w write the changes 
  3. 新しい物理ボリュームを作成します:
    sudo pvcreate /dev/sdb1
  4. システムを再起動します。
  5. 物理ボリュームを検証します:
    sudo pvs
    PV         VG    Fmt  Attr PSize    PFree
    /dev/sda2  vg00  lvm2 a--  96.66g   <25.41g
    /dev/sdb1  vg00  lvm2 a--  <200.00g <200.00g 
  6. /dev/sdb1vg00に追加してサイズを拡張し、論理ボリュームを拡張するための領域を増やします:
    sudo vgextend vg00 /dev/sdb1
  7. ボリューム・グループのサイズを確認します:
    sudo vgs
    VG #PV #LV #SN Attr VSize VFree
    vg00 2 5 0 wz-n <296.66g 225.40g
    この例では、225.4 GBが空き領域です。
  8. 論理ボリュームのサイズを拡張します:
    lvextend /dev/vg00/root -L+24G
    ここで、24Gは、必要に応じて変更できる論理ボリュームを拡張するサイズです。拡張可能な最大領域を確認するには、vgdisplayコマンドを使用してFree PE / Sizeの値を確認します。
  9. 拡張後、ファイル・システムのサイズを変更します:
    sudo resize2fs /dev/vg00/root\
  10. 論理ボリュームを確認します:
    /dev/vg00/root
    df -h
    /dev/mapper/vg00-root 194G 18G 169G 10% /

Oracle Blockchain Platformの起動

ネットワークおよびシステム設定を構成したら、VMを選択して起動をクリックし、VMを起動します。1分以内に起動します。

VMが起動したら、[Enter]キーを押して、ログイン・プロンプトを表示します。

DockerルートCA証明書の更新

Oracle Blockchain Platform Enterprise Editionに含まれるDockerルートCA証明書は、Oracle Blockchain Platform Enterprise Editionの各仮想マシン上で更新する必要があります。

証明書を更新するには:
  1. Oracle Blockchain Platform Enterprise EditionのいずれかのVMに、フォルダ/u01/renewCerts/docker-certsを作成します。
  2. このフォルダに移動し、次のコマンドを実行して新しい証明書を生成します:
    openssl genrsa -aes256 -passout pass:example -out rootCA.key 4096 
    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.crt -subj "/C=US/ST=CA/L=RedwoodShores/O=Oracle/OU=/CN=oracle.com" -passin pass:example 
    上のコマンドにより、次のものが生成されます:
    • rootCA.crt
    • rootCA.key
    場所は、/u01/renewCerts/docker-certsです。これらのファイルは、すべてのブロックチェーン・プラットフォーム・インスタンスのすべてのVMの更新に使用されます。
  3. 2つのファイルの所有権を確認します。root:rootと設定されている必要があります。そうでない場合は、所有権を変更します。
  4. ステップ2で生成されたrootCA.crtおよびrootCA.keyファイルを、/u01内のフォルダにある全インスタンスのOracle Blockchain Platform Enterprise EditionのVMすべてにコピーします。
    一貫性を保つために、各VMにフォルダ・パス/u01/renewCerts/docker-certsを作成し、ファイルをこのフォルダにコピーできます。
  5. すべてのインスタンスのOracle Blockchain Platform Enterprise EditionのVMごとに、次を実行します:
    1. 既存のルートCA証明書ファイルを/u01/renewCerts/にバックアップします:
      cp /etc/docker/ssl/rootCA.crt /u01/renewCerts/rootCA-orig.crt
      cp /etc/docker/ssl/rootCA.key /u01/renewCerts/rootCA-orig.key
    2. 新しく生成されたrootCA.crtおよびrootCA.key/etc/docker/sslにコピーします。
    3. /etc/docker/sslのファイルrootCA.crtおよびrootCA.keyが新しいファイルであることを確認します。
    4. VMを再起動します。

      ノート:

      ステップ2で生成された同じrootCA.crtファイルおよびrootCA.keyファイルを、各Oracle Blockchain Platform Enterprise EditionのVMにコピーする必要があります。

OpenLDAPおよびブロックチェーン・プラットフォーム・マネージャ証明書の更新

Oracle Blockchain Platform Enterprise Editionに含まれるOpenLDAPおよびブロックチェーン・プラットフォーム・マネージャ証明書は、Oracle Blockchain Platform Enterprise Editionの各仮想マシン上で更新する必要があります。

OpenLDAPおよびブロックチェーン・プラットフォーム・マネージャ証明書を更新する前に、DockerルートCA証明書を更新します。次のスクリプトは、DockerルートCA証明書の更新時に作成されたアーティファクトに依存します。

OpenLDAPおよびブロックチェーン・プラットフォーム・マネージャ証明書を更新するには、コマンド・プロンプトから次のスクリプトを実行します:

#!/bin/bash

echo "OBPEE 21.1.2 Cert provisioning script"

newRootCACertPath='/u01/renewCerts/docker-certs/rootCA.crt'
newRootCAKeyPath='/u01/renewCerts/docker-certs/rootCA.key'

cpRootCACert='/u01/blockchain/cp/certs/rootCA.crt'
cpRootCAKey='/u01/blockchain/cp/certs/rootCA.key'

registryRootCACert='/u01/blockchain/registry/certs/rootCA.crt'
registryRootCAKey='/u01/blockchain/registry/certs/rootCA.key'

cpid=$(docker ps | grep 'controlplane' | awk '{ print $1 }')
echo "CP container ID -> $cpid"

ldapid=$(docker ps | grep 'openldap' | awk '{ print $1 }')
echo "OpenLDAP container ID -> $ldapid"

if [ -z "$ldapid" ] || [ -z "$cpid" ]; then
  echo 'ERROR: Failed to detect running containers. Abort.'
  exit        
else
  echo "Openldap and CP containers are running."
fi

if [ ! -f $newRootCACertPath ] || [ ! -f $newRootCAKeyPath ]; then
    echo "Error: New RootCA cert and/or key not found. Abort."
    exit
else
    echo "New RootCA cert and key detected."   
fi

#### CP changes ####

	#Backup existing image
	docker tag bcs/control-plane:latest bcs/control-plane:latest_bk

	#Modify existing image
	docker cp $newRootCACertPath ${cpid}:/tmp/rootCA.crt
	docker exec -it ${cpid} bash -c "keytool -import -trustcacerts -keystore /usr/lib/jvm/jre/lib/security/cacerts -storepass changeit -alias defaultOpenLdapCACert2022 -import -file /tmp/rootCA.crt -noprompt"

	#Commit image
	docker commit ${cpid} bcs/control-plane:latest

	#Backup existing cert and key
	cp -f $cpRootCACert ${cpRootCACert}.old
	cp -f $cpRootCAKey ${cpRootCAKey}.old

	#Replace new cert and key
	cp -f $newRootCACertPath ${cpRootCACert}
	cp -f $newRootCAKeyPath ${cpRootCAKey}

	#Restart
	echo "Restarting controlplane service"
	systemctl restart controlplane

#### OpenLDAP changes ####

	#Backup existing image
	docker tag obp/ol-openldap:latest obp/ol-openldap:latest_bk

	docker cp $newRootCACertPath ${ldapid}:/tmp/rootCA.crt
	docker cp $newRootCAKeyPath ${ldapid}:/tmp/rootCA.key

	docker exec -it ${ldapid} bash -c "cp -f /tmp/rootCA.crt /etc/ssl/certs/ca_server.pem"

	#Commit image
	docker commit $ldapid obp/ol-openldap:latest

	#Restart
	echo "Restarting OpenLDAP service"
	systemctl restart openldap

#### Registry changes ####

	#Backup existing cert and key
	cp -f $registryRootCACert ${registryRootCACert}.old
	cp -f $registryRootCAKey ${registryRootCAKey}.old

	#Replace new cert and key
	cp -f $newRootCACertPath $registryRootCACert
	cp -f $newRootCAKeyPath $registryRootCAKey

	#Restart
	echo "Restarting registry service"
	systemctl restart dregistry

echo "Successfully completed cert renewals"

Oracle Blockchain Platformへの初回ログオン

Oracle Blockchain Platform Enterprise EditionをVMホスティング・ソフトウェアにデプロイして起動すると、Blockchain Platform Managerにログオンしてインスタンスを作成できます。

次のURLを使用して、Platform Managerに直接ログオンできます:
https://<hostname of your VM>:7443/console/index.html
初期ユーザー名はobpadmin、パスワードはwelcome1です。このユーザーは、初期構成を実行するためだけのものであり、インスタンス作成権限は持っていません。

内部LDAPサーバーを使用するには、先にadminパスワードを変更する必要があります。Blockchain Platform Managerでは、デフォルトのパスワードで内部LDAP構成を使用できません。

Blockchain Platform Manager名の設定

Blockchain Platform Manager構成ページのプラットフォーム設定タブで、Platform Managerの名前を設定できます。

ノート:

Platform Managerの名前が設定されると、LDAPサーバーに追加されたユーザーはすべてこの名前に関連付けられます。ユーザーの追加後に名前を変更すると、それらのユーザーはBlockchain Platform ManagerおよびOracle Blockchain Platformインスタンスにアクセスできなくなります。

通知とコンソールのアイドル・タイムアウトの設定

Blockchain Platform Manager構成ページのプラットフォーム設定タブで、通知およびコンソールのタイムアウトを設定できます。
  • コンソールのアイドル・タイムアウト: 現在のユーザーがログアウトするまでにコンソールがアイドル状態でいる時間(分)。
  • 通知のタイムアウト: ブラウザで通知が表示されている時間(秒)。閉じるまで通知を表示しておく場合は、-1を選択します。

ハードウェア・セキュリティ・モジュール・クライアントの構成

Oracle Blockchain Platform Enterprise Editionでは、ハードウェア・セキュリティ・モジュール(HSM)によるキーの管理をサポートしています。HSMサーバーは、ネットワークまたはオンデマンドのデータ保護(DPoD)サービスで使用できます。

HSMを使用するには、各仮想マシン(VM)にクライアント・ソフトウェアをインストールする必要があります。現在、SafeNet Luna HSMがサポートされています。

HSMを使用するようにインスタンスを構成できるのは、インスタンスの作成時のみです。HSM機能は既存のインスタンスに追加できません。

SafeNet Luna Network HSMデバイス用クライアントのインストール

仮想マシン(VM)には、ハードウェア・セキュリティ・モジュール(HSM)で使用するSafeNet Lunaクライアントのインストールおよび構成を支援するスクリプトが用意されています。

前提条件
  • このスクリプトは、バージョン10.2以降のSafeNet Lunaクライアントをサポートしています。
  • このスクリプトは、オンデマンドのSafeNet Luna HSMサービスではなく、SafeNet Luna Network HSMデバイスで使用します。
  • このスクリプトは、クライアント・インストーラに標準のネーミングおよびフォルダ構造を使用するように記述されています。クライアント・インストーラの場所またはファイル名を変更すると、スクリプトが失敗する場合があります。
  • スクリプトはroot権限を使用して実行する必要があります。
  • このスクリプトは、VMのホスト名とIPアドレスの構成後に実行する必要があります。クライアントのインストール後にホスト名またはIPアドレスを変更した場合は、クライアントの再構成が必要になることがあります。
  1. SafeNet Lunaクライアントをインストールして構成するには、次のコマンドを入力します: configureLunaClient.sh installConfigure client_installer_tar_file_full_path luna_server_ip_or_fqdn luna_server_ssh_port luna_server_username partition_name luna_ntls_port
    たとえば、configureLunaClient.sh installConfigure /UC_Installer.tar MyServer.example.com 22 admin MyPartition 1792コマンドを入力します
  2. 追加のサーバーまたは別のパーティションと連携するようにSafeNet Lunaクライアントを構成するには、次のコマンドを入力します: configureLunaClient.sh configure luna_server_ip_or_fqdn luna_server_ssh_port luna_server_username partition_name luna_ntls_port
    たとえば、次のコマンドを入力してMyPartition2を追加します: configureLunaClient.sh configure MyServer.example.com 22 admin MyPartition2 1792

SafeNet Luna Network HSMデバイス用クライアントの手動インストール

提供されているスクリプトよりもSafeNet Lunaクライアントのインストールを詳細に制御する必要がある場合は、クライアントを手動でインストールできます。

前提条件
  • SafeNet Luna Network HSMが設定され、クライアント・アーカイブがホスト・コンピュータにダウンロードされます。
  • ホスト・コンピュータに対するsudo権限が必要です。
  1. クライアントの.tarファイルをディレクトリにコピーし、tar xvf client_archive_fileコマンドを入力してアーカイブを抽出します。
  2. オペレーティング・システムに応じて、32または64ディレクトリに移動します。
  3. install.shスクリプトを実行してクライアントをインストールします。すべてのコンポーネントをインストールするには、sudo sh install.shコマンドを入力します。
    インストール・スクリプトの実行時に、ライセンス契約を受け入れるように求められます。
  4. 製品のリストから、1を押してLuna Network HSMを選択し、[Enter]キーを押します。
  5. [N]を押してから[Enter]を押して、詳細メニューに進みます。
  6. 詳細メニューで、12および3を押してLuna SDKLuna JSP (Java)およびLuna JCProv (Java)を選択し、[Enter]を押します。
  7. [I]を押してから[Enter]を押して、コンポーネントをインストールします。
  8. SafeNet Lunaクライアントをシステム・パスに追加するには、システムの.bash_profileファイルに次の行を追加します:
    export PATH="$PATH:/usr/safenet/lunaclient/bin"
    export PATH="$PATH:/usr/safenet/lunaclient/sbin"
各VMにSafeNet Lunaクライアントをインストールして構成した後、LunaCMコマンド・プロンプトから次のコマンドを実行して、1回のみ、パーティションの初期化とロールの設定を行います。次の一連のコマンドでは、パーティション・ドメイン名の入力を求められ、パーティションSO (セキュリティ担当者)、暗号化担当者および暗号化ユーザーのロールのパスワードを設定および変更するように求められます。
partition init -label fabric
role login -name Partition SO
role init -name Crypto Officer
role logout
role login -name Crypto Officer
role changepw -name Crypto Officer
role init -name Crypto User
role logout
role login -name Crypto User
role changepw -name Crypto User

オンデマンドのSafeNet Luna HSM用クライアントのインストール

オンデマンドのSafeNet Luna HSMサービスを使用してキーを管理するには、事前構成済のSafeNet Lunaクライアント・アーカイブをダウンロードし、インスタンス内の各仮想マシン(VM)に抽出します。

前提条件
  • オンデマンドのSafeNet Luna HSMサービスが設定され、クライアント・アーカイブがホスト・コンピュータにダウンロードされます。
  • クライアント・インストール・ディレクトリは、/etc/hyperledger/fabricパスの下にある必要があります。
  • ホスト・コンピュータに対するsudo権限が必要です。
  1. sudo mkdir -p /etc/hyperledger/fabric/dpod/fabricコマンドを入力して、インストール・ディレクトリを作成します。
  2. setup-fabric.zipアーカイブ・ファイルを/etc/hyperledger/fabric/dpod/fabricディレクトリに抽出します。
  3. /etc/hyperledger/fabric/dpod/fabricディレクトリで、tar xvf cvclient-min.tarコマンドを入力してcvclient-min.tarファイルを抽出します。
  4. source ./setenvコマンドを入力して、構成ファイルを作成します。
    権限の問題によりコマンドが実行されない場合は、フォルダ権限を777に変更してからコマンドを再試行します。
  5. 次のコマンドを入力して、ChrystokiConfigurationPath環境変数を構成ファイルの場所に設定します: export ChrystokiConfigurationPath=/etc/hyperledger/fabric/dpod/fabric
  6. ファイルのRESTセクションで、次の行を追加します: ClientProxy = restproxy.example.com:80;ここで、restproxy.example.comはRESTプロキシのホスト名です。
  7. 次のコマンドを入力してLunaクライアントを起動します:
    sudo bash
    source ./setenv
    export LC_ALL=C; unset LANGUAGE
    ./bin/64/lunacm
    LunaCMのコマンド・プロンプトが表示されます。
  8. オンデマンドのSafeNet Luna HSMサービスを使用する予定のインスタンス内のすべてのVMに対して、前述のステップを実行します。
各VMにSafeNet Lunaクライアントをインストールして構成した後、LunaCMコマンド・プロンプトから次のコマンドを実行して、1回のみ、パーティションの初期化とロールの設定を行います。次の一連のコマンドでは、パーティション・ドメイン名の入力を求められ、パーティションSO (セキュリティ担当者)、暗号化担当者および暗号化ユーザーのロールのパスワードを設定および変更するように求められます。
partition init -label fabric
role login -name Partition SO
role init -name Crypto Officer
role logout
role login -name Crypto Officer
role changepw -name Crypto Officer
role init -name Crypto User
role logout
role login -name Crypto User
role changepw -name Crypto User