6 インスタンスのプロビジョニング
Oracle Blockchain Platformインスタンスを作成する前に
Oracle Blockchain Platformをプロビジョニングする前に、開発者またはエンタープライズ・インスタンスがニーズを満たしているかどうかを判断します。
使用するプロビジョニング・シェイプの決定
インスタンスをプロビジョニングする際に、2つの構成から選択します。これらのオプション間の移行は現在サポートされていません。
構成 | 特徴 |
---|---|
開発者 このスタータ・シェイプは、開発および評価に使用することをお薦めします。 |
|
エンタープライズ 数十トランザクション/秒(TPS)の1桁のTPSレートというパフォーマンス要件を持つファウンダおよび参加者インスタンスの小規模から中規模の本番デプロイメントに適した高可用インスタンス構成。 |
|
Blockchain Platform Managerを使用したインスタンスのプロビジョニング
Blockchain Platform Managerでブロックチェーン・ファウンダまたは参加者インスタンスを作成するには、新規インスタンスの作成ウィザードを使用します。
-
ファウンダ組織: 参加者が後から参加できる新しいネットワークを含む、完全なブロックチェーン環境。
-
参加者インスタンス: 参加先のファウンダ組織がすでにある場合、資格証明によってネットワークへのアクセス権が付与される場合は参加者インスタンスを作成できます。
ハードウェア・セキュリティ・モジュール(HSM)を使用してキーを管理する場合は、インスタンスをプロビジョニングする前に、各VMでHSMクライアントを構成する必要があります。詳細は、「ハードウェア・セキュリティ・モジュール・クライアントの構成」を参照してください。
REST APIを使用したインスタンスのプロビジョニング
REST APIを使用してOracle Blockchain Platformインスタンスをプロビジョニングできます。
次の例では、REST APIを使用して、ハードウェア・セキュリティ・モジュール(HSM)を使用するOracle Blockchain Platformインスタンスを作成する方法を示します。HSMを使用しないインスタンスの場合、useHSM
をfalseに設定し、hsmConfiguration
オブジェクトを指定しないでください。
curl -X POST \
-u <username>:<password> \
https://localhost:7443/api/v1/blockchainPlatforms/instances \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'payload={
"name": "obpinstance1",
"desc": "test instance",
"platformRole": "founder",
"configuration": "Developer",
"peer": 4,
"cluster": {
"platformHosts": [
"10.182.73.23",
"10.182.73.20"
],
"crcHosts": [
"10.182.73.23",
"10.182.73.20"
]
},
"additionalConfiguration": {
"instanceFQDN": "domain.host.com"
"startPort": 0,
"enableTLS": true,
"useHSM": true,
"hsmConfiguration": {
"library": "/etc/hyperledger/fabric/dpod/fabric/libs/64/libCryptoki2.so",
"label": "fabric",
"pin": "password",
"chrystokiConf": "/etc/hyperledger/fabric/dpod/fabric"
}
}
}'
name
- 1つ以上の文字が含まれている必要があります。
- 15文字以下である必要があります。
- ASCII文字(
a
からz
)で始まる必要があります。 - ASCII文字または数字のみを使用する必要があります。
- ハイフンを含めることはできません。
- その他すべての特殊文字を含めることはできません。
- アイデンティティ・ドメイン内で一意である必要があります。
desc
- オプション: インスタンスの説明を入力します
platformRole
developer
またはfounder
に設定する必要があります
configuration
Developer
: 3つのRaftオーダラ、および1つのVMに合計3つのOCPUEnterprise
: 3つのノードのRaftクラスタおよび3つのX VM
peer
- このサービス・インスタンスに初期作成されるピア・ノードの数を指定します。
- 1から14のピア・ノードを作成できます。
cluster
- クラスタの情報を入力します:
platformHosts
: プラットフォーム・クラスタをホストするVMcrcHosts
: チェーンコードをホストするVM
- クラスタの情報を入力します:
additionalConfiguration
- ロード・バランサまたはハードウェア・セキュリティ・モジュールをサポートするための追加情報を入力します。
instanceFQDN
: 外部ロード・バランサの完全修飾ドメイン名。これは外部ロード・バランサのみに使用されます - 外部ロード・バランサを使用していない場合、このパラメータを指定する必要はありません。startPort
enableTLS
useHSM
: ハードウェア・セキュリティ・モジュールを使用してキーを管理する場合はtrueに設定します。hsmconfiguration
:library
(libCryptoki2.so
またはlibCryptoki2_64.so
ファイルへのパス)、label
(キー管理に使用するパーティション・ラベル)、pin
(暗号化担当者のPIN)およびchrystokiConf
(Chrystoki.conf
ファイルが含まれているディレクトリ)を指定します。
- ロード・バランサまたはハードウェア・セキュリティ・モジュールをサポートするための追加情報を入力します。
外部ロード・バランサを使用する際の追加条件
21.1.2以降のバージョンでは、インスタンスをプロビジョニングする前にロード・バランサをインストールし、TLSルートCA証明書をアップロードし、Oracle Blockchain Platformインスタンスを作成する前にロード・バランサでポートを構成する必要があります。プロビジョニング後、ロード・バランサを高可用性用に構成できます。
高可用性の構成
エンタープライズ対応のインスタンスで、異なるVMを使用して高可用性を実現するには、外部ロード・バランサを構成してクラスタ内のすべてのプラットフォームVMのリストを追加します(RaftとZooKeeper VMは、アップストリーム(バックエンド)リストとしてすでに可用性が高くなっています)。
a.example.com
b.example.com
c.example.com
...
stream {
upstream rest_proxy_backend_servers
{
server a.example.com:10001;
server b.example.com:10001;
server c.example.com:10001;
}
server
{
listen *:10003 ssl;
ssl_certificate /etc/nginx/server.pem; # use your own certificate/key
ssl_certificate_key /etc/nginx/serverkey.pem;
proxy_pass rest_proxy_backend_servers;
}
...
stream {
upstream peer0_backend_servers
{
server a.example.com:10036;
server b.example.com:10036;
server c.example.com:10036;
}
server {
listen *:10036 ssl;
ssl_certificate /etc/nginx/server.pem; # use your own certificate/key
ssl_certificate_key /etc/nginx/serverkey.pem;
proxy_pass peer0_backend_servers;
}
...
インスタンス・クラスタ内の外部で使用可能な各ポートが各VMで公開され、適切なサービスに自動的にルーティングされます(コンソール、メンバーシップ/CA、オーダラ、ピア、RESTプロキシ)。
LBRポート・マップ・ボタンを使用してリストされたすべてのポートが、この方法でルーティングされることを確認します。
$ docker node ls
これにより、クラスタ内のノードのリストが返されます。たとえば: [oracle@dhcp-10-144-63-180 ~]$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
fz1ksoxysyorz754x0hswnird dhcp-10-144-62-149.usdhcp.oraclecorp.com Ready Active 18.09.1-ol
rayhna7vdiup5p7tkmxxepyex * dhcp-10-144-63-180.usdhcp.oraclecorp.com Ready Active Leader 18.09.1-ol
マネージャ・ステータスを持たないノードごとに、次の例のようなコマンドを使用してノードをプロモートします。$ docker node promote dhcp-10-144-62-149.usdhcp.oraclecorp.com
少なくとも3つのノードがこの方法でプロモートされることを確認してください。