Oracle Cloud Infrastructure上のOracle Blockchain Platformの既知の問題
Oracle Blockchain Platformを使用する際に発生する可能性のある問題と、その対処方法について学習します。
トピック:
以前のリリースで最初に報告された問題:
- Goチェーンコードのアップグレード時の口座制限エラー
- Microsoft Windows 11でのデバッグ時に予期しないトークン・エラーが発生しました
- 日次口座制限なしの必須Go構文
- Postmanコレクション使用時のRESTプロキシ・タイムアウト・エラー
- Visual Studio Codeの関数リストに2つのメソッドが正しく含まれていない
- 前提条件チェックが失敗した場合、アプリケーション・ビルダーCLIがアンインストールされる
- 小数のNFTトランザクションで小数点以下の桁数が正しくない場合、エラーはありません
- 「Developer Tools」ページからFiat Moneyトークンまたは残高転送サンプルを実行できません
- ブロックチェーン・アプリケーション・ビルダーの使用時にデプロイメント・エラーになる
- ブロックチェーン・アプリケーション・ビルダーによって生成されたTypeScriptチェーンコードの初期化の失敗
- XAライブラリ使用時のゲートウェイ・タイムアウト
- Microsoft Windowsでトークン・チェーンコードをデバッグ・モードで実行できない
- イベント・サイズ制限
- コロン(:)を含むユーザーIDはREST APIコールで使用できません
- CORSヘッダーが無効な資格証明に対して返されませんでした
- チャネル作成時の受注者ステータス・エラー
- Microsoft WindowsでのVisual Studio Codeでのデバッグ
- 複数組織環境とブロックチェーン・アプリケーション・ビルダー
- スケーリングは一度に1つのコンポーネントでのみ機能します
- オペレーティング・システムのクロックが正しくないと、リクエストが拒否される可能性があります
- 古いクライアントSDKが原因で、ブロックチェーン・アプリケーションが期待どおりに機能しない
- ネットワークのOracle Blockchain Platformインスタンスで失効したサード・パーティ証明書を管理できない
- ファウンダのチャネル・リストに不正な作成者情報が含まれ、チャネル組織の編集オプションは使用できません
- ImplicitMetaポリシーがOracle Blockchain Platformでサポートされない
- チャネル作成者がチャネルの構成を更新できない
- instantiateChaincodeエンドポイントでのblocktoliveの0 (ゼロ)設定がREST APIでサポートされない
- ピアが、別のピアからプライベート・データをプルできない
- チャネル作成者の組織およびチャネル・ポリシー設定が矛盾する
- エクスポートおよびインポートされたファイルに互換性がない
- チェーンコード名の要件
- 日時ピッカーの動作
ストレージおよびOCPUのスケーリングはサポートされていません
ストレージ容量またはOCPU容量のスケーリングは、Oracle Blockchain Platformバージョン25.4.1インスタンスではサポートされていません。REST APIを使用してストレージまたはOCPU容量をスケーリングしようとすると、UnsupportedOperationExceptionエラー・メッセージが返されます。
Hyperledger Fabric SDK (非推奨)
Hyperledger Fabric SDKは、Fabric GatewayクライアントAPIを優先して非推奨になりました。Hyperledger Fabric SDKを使用してOracle Blockchain Platform用のアプリケーションを開発することはまだ可能ですが、Fabric GatewayクライアントAPIが推奨されます。REST APIで正しくないストレージ値がレポートされました
ブロックチェーン・プラットフォーム情報の取得REST APIエンドポイントによって返されるstorageUsedInTBs値は、Oracle Blockchain Platformバージョン25.4.1インスタンスに対して常に0を返します。
回避策: この問題の回避策はありません。
ブロックの検証REST APIによって返されない一部のフィールド
次のフィールドは、Oracle Blockchain Platformバージョン25.4.1インスタンスのブロックの検証REST APIエンドポイントによって返されません:verifyResultおよびfirstBlockNum。
回避策: この問題の回避策はありません。
チャネルの元帳詳細を表示できません
チャネルの元帳ページでブロックをクリックすると、トランザクション詳細が表示されます。ブロックをクリックしたときにトランザクションの詳細が表示されないことがある断続的な問題があります。
回避策: ブラウザ・ページをリフレッシュし、ブロックを再度クリックしてトランザクションの詳細を表示します。
リッチ履歴構成が保存されていません
「リッチ履歴の構成」ダイアログ・ボックスで「保存」をクリックすると、グローバル構成が正常に保存されたことがUIに示されます。ただし、リッチ履歴構成を表示しようとすると、実際には保存されなかったため使用できません。これは、断続的に発生する問題です。
回避策: リッチ履歴構成の保存を再試行してください。
Goチェーンコード・バージョンの互換性
Oracle Blockchain Platformのバージョン25.4.1では、使用されるGoのバージョンが1.24.4に更新されました。Go 1.24.4と互換性がないチェーンコードをデプロイまたはアップグレードしようとすると、プロセスが失敗する可能性があります。Goで記述されたチェーンコードをアップグレードまたはデプロイする前に、Go 1.24.4でチェーンコードを構築できることを確認してください。Go 1.24.4がインストールされているシステムのチェーンコード・フォルダの内容で次のコマンドを使用すると、エラーを確認できます。go mod tidygo mod vendor現在デプロイされているチェーンコードは、この動作の影響を受けず、Oracle Blockchain Platform 25.4.1へのアップグレード後も引き続き期待どおりに動作します。
Node.jsチェーンコード・バージョンの互換性
Oracle Blockchain Platformのバージョン25.4.1では、使用されるNode.jsのバージョンが22.14.0に更新されました。Node.js 22.14.0と互換性がないチェーンコードをデプロイまたはアップグレードしようとすると、プロセスが失敗する可能性があります。Node.jsで記述されたチェーンコードをアップグレードまたはデプロイする前に、Node.js 22.14.0でチェーンコードを構築できることを確認してください。現在デプロイされているチェーンコードは、この動作の影響を受けず、Oracle Blockchain Platform 25.4.1へのアップグレード後も引き続き期待どおりに動作します。
承認のミントおよび書き込み後の未変更保留残高
承認のミントおよび書き込みでは、保持メカニズムが使用され、入力として操作IDが取得されます。getOnHoldBalanceWithOperationIdおよびgetOnHoldDetailsWithOperationIdメソッドは、指定された操作IDに関連付けられている保留量を返します。executeHoldおよびreleaseHoldメソッドを使用する標準保留操作の場合、保留量はメソッドの完了後に変更されます。たとえば、操作IDがfirstの保留を100トークンに対してリクエストした場合、承認後(executeHoldメソッドを使用)、保留金額は0です。getOnHoldBalanceWithOperationIdおよびgetOnHoldDetailsWithOperationIdメソッドは、操作ID firstの保留量として0を返します。
この動作は、承認のミントまたは書き込みには適用されません。たとえば、操作IDがsecondのトークンをミント100にリクエストした場合、承認後(approveMintメソッドを使用)、保留金額は100のままです。getOnHoldBalanceWithOperationIdおよびgetOnHoldDetailsWithOperationIdメソッドは、操作ID secondに対して100を返します。
ミントまたはバーニングの場合、承認は、その量をミントまたはバーニングする要求を表しますが、承認段階で転送は発生しません。ミントおよびバーニング承認では、標準のホールド操作と同じ内部ホールド・メカニズムが使用されるため、問合せメソッドは、ホールド・キーと値のペアに格納されている値を返します。この値は、承認のミントまたはバーニング後に変更されません。
回避策: getOnHoldBalanceWithOperationIdおよびgetOnHoldDetailsWithOperationIdメソッドを使用して、リクエストされたミントまたはバーン量を検証できますが、これらの操作と標準保留操作の違いに注意してください。
以前のリリースで最初に報告された問題:
Goチェーンコードのアップグレード時の口座制限エラー
拡張トークン・タクソノミ・フレームワーク標準を使用してGo言語で以前のバージョンのブロックチェーン・アプリケーション・ビルダーによって生成されたチェーンコードをバージョン25.2.2にアップグレードすると、トランザクションを完了しようとしたときに次のエラーが表示される場合があります:account has exceeded the limit for maximum number of transfers -1このエラーは、卸売CBDCモデルに固有のチェーンコードのGoバージョンでも発生します。このエラーは、以前のバージョンのブロックチェーン・アプリケーション・ビルダーが値-1を使用して日次アカウント制限を示さなかったために発生しますが、バージョン25.2.2ではデフォルト値がなく、そのキー/値ペアがないことはアカウントに日次制限がないことを示します。
max_daily_amountまたはmax_daily_transactionパラメータに値を渡さない場合、アカウントがバージョン25.2.2で正しく動作するように、キーと値のペアは削除されます。 SetMaxDailyAmount(token_id string, org_id string, user_id string, max_daily_amount ...float64)SetMaxDailyTransactionCount(token_id string, org_id string, user_id string, max_daily_transactions ...float64)Microsoft Windows 11でのデバッグ時に予期しないトークン・エラーが発生しました
Microsoft Windows 11で実行されているVisual Studio Codeでブロックチェーン・アプリケーション・ビルダーのデバッグ関数を使用すると、次のエラー・メッセージが表示されます。Unexpected token ':"admin"' in expression or statement.このエラーが発生すると、チェーンコードのデプロイメントおよびデバッグは失敗します。回避策: この問題の回避策はありません。
日次口座制限なしの必須Go構文
拡張トークン・タクソノミ・フレームワーク標準およびGoプログラミング言語を使用するブロックチェーン・アプリケーション・ビルダーによって生成されるチェーンコードで、CreateAccountメソッドの使用時に日次アカウント制限を設定しない場合は、daily_limitsパラメータに"{}"ではなく、空の値""を渡す必要があります。GoバージョンのCreateAccountメソッドの正しいパラメータは、次の例のようになります。 ["CentralBank","cb","fungible",""]卸売CBDCモデルに固有のチェーンコードのこのGoバージョンにも、この要件があります。Postmanコレクション使用時のRESTプロキシ・タイムアウト・エラー
Oracle Blockchain Platform RESTプロキシを使用してトランザクションを実行するブロックチェーン・アプリケーション・ビルダーによって生成されたPostmanコレクションの場合、次の例に示すように、デフォルトのタイムアウト値は6000に設定されます:{
"chaincode": "WholesaleCBDCConfidential",
"args": [
"getTokenAuditors"
],
"timeout": 6000,
"sync": true,
"peer": "org-xyz-abc.blockchain.ocp.oraclecloud.com:20009",
"transientMap": {
"args": "[]"
}
}'場合によっては、トランザクションがOracle Blockchain Platformによって実際に処理されていても、RESTプロキシ処理がタイムアウトし、次のレスポンスが返される場合があります:{
"returnCode": "Failure",
"error": "failed to invoke chaincode: Client Status Code: (5) TIMEOUT. Description: request timed out or been cancelled",
"result": null
}回避策: 特定のユースケースに基づいてタイムアウト値を増やします。
Visual Studio Codeの関数リストに2つのメソッドが正しく含まれていない
Visual Studio Codeバージョンのブロックチェーン・アプリケーション・ビルダーで機密トランザクション機能を使用する場合、「実行」ペインの関数リストにexecuteHoldTokensSenderおよびexecuteHoldTokensReceiverという2つのメソッドが表示されます。これらの2つのメソッドは、Visual Studio CodeバージョンのBlockchain App BuilderがサポートしていないRESTプロキシの2フェーズ・コミットAPIとともに使用した場合にのみ正しく機能します。ブロックチェーン・アプリケーション・ビルダーのVisual Studio Codeバージョンでは、この2つの方法を使用しないでください。
前提条件チェックが失敗した場合、アプリケーション・ビルダーCLIがアンインストールされる
最新バージョンをインストールまたは再インストールしてブロックチェーン・アプリケーション・ビルダー・コマンドライン・インタフェース(CLI)をアップグレードすると、前提条件チェックが失敗すると、既存のブロックチェーン・アプリケーション・ビルダーCLIがアンインストールされます。回避策: ブロックチェーン・アプリケーション・ビルダーCLIの古いバージョンを再インストールするか、前提条件を満たすようにシステムを更新してから、ブロックチェーン・アプリケーション・ビルダーCLIの新しいバージョンをインストールできます。
小数のNFTトランザクションで小数点以下の桁数が正しくない場合、エラーはありません
ブロックチェーン・アプリケーション・ビルダーを使用してERC-1155標準を使用する小数NFTを操作する場合、トランザクション量が仕様ファイルの小数点以下の最大桁数より大きい小数点以下桁数を使用する場合、エラーは示されません。かわりに、実際のトランザクション金額は、仕様ファイルに定義されている小数点以下の桁数に切り捨てられます。また、送信者と受信者の残高が指定された桁数に切り捨てられていても、トランザクション履歴のtransactedAmount値には切り捨てられていない値が表示されます。
回避策: トランザクションを作成する前にトランザクション金額を検証して、チェーンコードの入力仕様ファイルに指定されている小数点以下の桁数よりもトランザクション金額が使用されないようにします。
「Developer Tools」ページからFiat Moneyトークンまたは残高転送サンプルを実行できません
Oracle Blockchain Platform 22.4.2には、Fiat Money Tokenサンプルの新しいバージョンが含まれています。更新されたチェーンコードには、以前のバージョンとは異なるパッケージIDがあります。Fiat Money Tokenサンプルをデプロイした場合、Oracle Blockchain Platform 22.4.2にアップグレードした後、サンプルはコンソールの「Developer Tools」ページにデプロイされているとおりに表示されなくなり、サンプルの「Developer Tools」ページから操作を実行できなくなります。Oracle Blockchain Platform 22.3.2でアトミック・トランザクション機能を使用するために更新されたBalance Transferサンプルでも同じ動作が発生します。
回避策: サンプル・チェーンコードをピアに再度インストールすると、新しいバージョンのチェーンコードが新しいパッケージIDでインストールされます。サンプルがデプロイされたチャネルごとに、チェーンコードを新しいパッケージにアップグレードします。チェーンコードがアップグレードされると、Developer Toolsページのサンプルのステータスおよび操作が正常に機能します。
ブロックチェーン・アプリケーション・ビルダーの使用時にデプロイメント・エラーになる
ブロックチェーン・アプリケーション・ビルダーを使用してGoチェーンコード・プロジェクトをデプロイすると、次のようなエラーが発生する可能性があります:ERROR RunCommand: spawn modd ENOENT
ERROR RunCommand: Error in Chaincode deployment
[+] Running 3/3
Container ca.example.com Stopped 0.4s
Container orderer.example.com Stopped 0.6s
Container peer0.org1.example.com Stopped 0.6s
ERROR RunCommand: Error in Chaincode deployment, process exit with code 1- macOS
-
- 次のコマンドを実行します:
env GO111MODULE=off go get ‘github.com/cortesi/modd/cmd/modd’ - デプロイメントを再試行してください。
- 次のコマンドを実行します:
- Microsoft Windows
-
go installを使用して、次のコマンドを実行します。go install github.com/cortesi/modd/cmd/modd@latestgo getを使用して、次のコマンドを実行します。SET GO111MODULE=auto go get ‘github.com/cortesi/modd/cmd/modd’- デプロイメントを再試行してください。
ブロックチェーン・アプリケーション・ビルダーによって生成されたTypeScriptチェーンコードの初期化の失敗
ブロックチェーン・アプリケーション・ビルダー・バージョン22.4.2以前でTypeScriptチェーンコードを生成する場合、チェーンコードをローカルまたはリモートにデプロイまたは実行すると、次のテキストのようなエラーが表示されることがあります。INFO: Error in initalizing chaincode. Error : failed to initialize chaincode Error: Failed to
initialize the chaincode Error: endorsement failure during invoke. response: status:500 message:"error
in simulation: failed to execute transaction
e22ba18c00ecbd3135cdb509e08667cf6d5d9e79c4217b73492b5bb50836d58d: could not launch chaincode
testagain:v0: error building chaincode: error building image: failed to get chaincode package for
external build: could not get legacy chaincode package 'testagain:v0': open
/var/hyperledger/production/chaincodes/testagain.v0: no such file or directoryINFO:
============ Started Initializing Chaincode ============
ERROR: {
"Error": "Chaincode Deployment failed. Error in initializing chaincode: Status Code: 400,
Error Message: {\"returnCode\":\"Failure\",\"error\":\"failed to invoke chaincode:
Transaction processing for endorser
[jasfounderdec5-oabcs1-ams.blockchain.ocp.oraclecloud.com:20010]: Chaincode status Code:
(500) UNKNOWN. Description: error in simulation: failed to execute transaction
947bbaf2feccc39cdf53bd7a07cd17f15d682a5a4ee6e3c3e63dec6346b0394e: error sending: chaincode
stream terminated\",\"result\":null}"
}回避策: 既存のチェーンコードでこの動作を回避するには、次のサポート・ページでステップを実行します。
ローカルおよびリモートの両方のOBP環境でのTypeScriptチェーンコードのデプロイメントが失敗する
新しいチェーンコードでこの動作を回避するには、ブロックチェーン・アプリケーション・ビルダー22.4.3以降にアップグレードします。Oracle Blockchain Platformコンソールで、ブロックチェーン・アプリケーション・ビルダー・ペインの「開発者ツール」タブからブロックチェーン・アプリケーション・ビルダーをダウンロードできます。
XAライブラリ使用時のゲートウェイ・タイムアウト
Oracle Blockchain PlatformでXA Javaライブラリを使用すると、複数のブロックチェーン・トランザクションを、外部トランザクション・マネージャによって制御されるグローバル・トランザクションに結合できます。ブロックチェーン・トランザクションが完了するまでに60秒のゲートウェイ・タイムアウト値より長い時間がかかる場合、トランザクション・マネージャ側およびOracle Blockchain Platform側でトランザクション・ステータスが非確定的になる可能性があります。回避策: この問題の回避策はありません。この場合、トランザクションを手動で解決する必要があります。
Microsoft Windowsでトークン・チェーンコードをデバッグ・モードで実行できない
ブロックチェーン・アプリケーション・ビルダー・バージョン22.2.1以前を使用している場合、Microsoft Windowsではトークン・チェーンコードをデバッグ・モードで実行できません。回避策: ブロックチェーン・アプリケーション・ビルダーの最新バージョンにアップグレードします。アップグレードできない場合は、次のステップを実行します。
chaincode/.vscode/task.jsonファイルを開いて編集します。task.jsonファイルの6行目には、commandキーが含まれています。次の文字列を行から削除します。-p '${workspaceFolder}'
task.jsonファイル内の行は次のようになります。"command": "ochain debug -p '${workspaceFolder}' \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8","command": "ochain debug \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8",イベント・サイズ制限
バージョン22.2.1以降では、イベントの最大ペイロード・サイズは50KBに制限されています。最大ペイロード・サイズより大きいイベントは削除されます。Oracle DevOpsチームは、リクエストによってこのパラメータを変更できます。ペイロードが50KBを超えるイベントをサブスクライブする場合は、My Oracle Supportでサービス・リクエスト(SR)を開き、最大イベント・サイズを大きくするようリクエストします。詳細は、REST APIドキュメントのイベントのサブスクライブに関する項を参照してください。コロン(:)を含むユーザーIDはREST APIコールで使用できません
Oracle Blockchain Platformでは、コロン(:)を含むユーザーIDをRESTプロキシ登録に関連付けることができます。ただし、Basic認証(ユーザー名とパスワード)が使用されている場合、そのユーザーIDはREST APIコールで使用できません。回避策: RESTプロキシ登録に関連付けられているすべてのユーザーのユーザーIDにコロン(:)が含まれていないことを確認します。
CORSヘッダーが無効な資格証明に対して返されませんでした
RESTプロキシ・トランザクションを起動する顧客アプリケーションは、リクエストで送信された資格証明が無効、不正または期限切れの場合、レスポンスでCross-Origin Resource Sharing (CORS)ヘッダー(Access-Control-Allow-Originヘッダー)を受信しません。チャネル作成時の受注者ステータス・エラー
チャネルを作成するときに、次のエラーが表示される場合があります。Failed to create the channel with error: aborted
Please check the orderers status.回避策: チャネルの作成を再試行してください。これは、断続的に発生する問題です。
Microsoft WindowsでのVisual Studio Codeでのデバッグ
dlv: failed to install dlv(github.com/go-delve/delve/cmd/dlv@latest): Error: Command failed:
C:\Program Files (x86)\Go\bin\go.exe get -x github.com/go-delve/delve/cmd/dlv@latest
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list
# get https://proxy.golang.org/github.com/@v/list
# get https://proxy.golang.org/github.com/go-delve/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list
# get https://proxy.golang.org/github.com/@v/list: 410 Gone (0.420s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list: 410 Gone (1.040s)
# get https://proxy.golang.org/github.com/go-delve/@v/list: 410 Gone (1.062s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list: 410 Gone (1.066s)
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list: 200 OK (1.448s)
go: found github.com/go-delve/delve/cmd/dlv in github.com/go-delve/delve v1.8.3C:\Users\<UserName>\go\pkg\mod\github.com\go-delve\delve@v1.8.3\service\debugger\debugger.go:28:2:found packages native (proc.go) and
your_operating_system_and_architecture_combination_is_not_supported_by_delve(support_sentinel.go) in C:\Users\Asus\go\pkg\mod\github.com\go-delve\delve@v1.8.3\pkg\proc\nativeこの時点でこのエラーの回避策はありません。複数組織環境とブロックチェーン・アプリケーション・ビルダー
複数の組織が存在する環境では、コンソールを使用して一部の操作を完了する必要がある場合があります。
参加者インスタンスを介して同じチャネルにチェーンコードを再デプロイする場合は、コンソールを使用してチェーンコードをデプロイします。
(Hyperledger Fabric v2.2.4)チェーンコードをアップグレードするには、コンソールを使用して、参加者からチェーンコードを手動で承認します。
スケーリングは一度に1つのコンポーネントでのみ機能します
一度にスケーリングできるノード・タイプは1つのみです。たとえば、ピア・ノードの追加と既存のピア・ノードの設定の変更を同時に行うことができますが、ストレージを増やす場合は、個別に行う必要があります。
また、一度にスケーリングできるピアまたはOSNは1つのみです。たとえば、1回の操作で2つのピアを追加することはできません。
オペレーティング・システムのクロックが正しくないと、リクエストが拒否される可能性があります
クライアントまたはSDKのローカル・クロックが15分を超える場合、そのリクエストはピアおよびオーダラによって拒否されます。ローカル・クロックが正しく設定されていることを確認します。
古いクライアントSDKが原因で、ブロックチェーン・アプリケーションが期待どおりに機能しない
アプリケーションが古いバージョンのクライアントSDKを使用している場合、アプリケーションが予期しない動作をすることがあります。
回避策: クライアントSDKの更新について説明しているドキュメントを読み、必要に応じてアプリケーションを変更します。詳細は、Hyperledger FabricドキュメントのHyperledger Fabric SDKを参照してください。
ネットワークのOracle Blockchain Platformインスタンスでは、失効したサード・パーティ証明書を管理できない
Oracle Blockchain Platformネットワークにサードパーティ証明書を持つ組織またはHyperledger Fabricの組織が含まれており、その証明書が取り消されている場合、失効した証明書は適用されず、表示されず、ネットワークのOracle Blockchain Platformインスタンスから取り消すことはできません。
回避策: ネイティブのHyperledger Fabric CLIまたはSDKを使用して、組織の証明書失効リスト(CRL)ファイルをインポートします。
ファウンダのチャネル・リストに不正な作成者情報が含まれ、チャネル組織の編集オプションは使用できません
混合ネットワーク(ファウンダ・インスタンスと参加者インスタンスで異なるバージョンのOracle Blockchain Platformが実行されている)では、ファウンダのチャネル・リストに、参加者によって作成されたチャネルの誤ったMSP IDが表示される場合があります。参加者のMSP IDのかわりに、ファウンダのMSP IDが表示されます。これは、CRLのインポート、CRLの取消しまたは適用、またはチャネルでのアンカー・ピアの設定後に発生する可能性があります。
チャネルの「チャネル組織の編集」オプションは、「作成者」フィールドに表示されているインスタンスでのみ使用できます。間違ったMSP IDが表示された場合、チャネル作成者はチャネル組織を更新できません。
回避策: この問題の回避策はありません。
ImplicitMetaポリシーがOracle Blockchain Platformでサポートされない
ネイティブのHyperledger Fabric CLIまたはSDKを使用してチャネルの構成を変更する場合、指定した構成設定の一部がOracle Blockchain Platformでサポートできません。
-
ネイティブのHyperledger Fabric CLIおよびSDKでは、リーダーおよびライターにImplicitMetaチャネル・ポリシーを使用します。チャネルでこれらのポリシーを使用すると、Oracle Blockchain Platformコンソールでは、管理操作(組織の編集など)が正常に処理されることを保証できません。
対処方法: リーダーおよびライターのポリシーを署名ポリシーに更新し、必要に応じてポリシー・ルールを定義してください。詳細は、Hyperledger Fabricドキュメントのアクセス制御リスト(ACL)を参照してください。
-
チャネルがImplicitMetaポリシー・タイプを使用していて、チャネル構成でグループ・セクションのmod_policyを管理者に変更した場合にチャネルに複数の組織が存在すると、Oracle Blockchain Platformを使用してチャネルを管理できません。たとえば、新しい組織をチャネルに追加したり、チャネルのACLポリシーを変更(元の値を復元するなど)できません。
回避策: ネイティブのHyperledger Fabric CLIまたはSDKを使用してチャネルを管理します。
チャネル作成者がチャネルの構成を更新できない
ネイティブのHyperledger Fabric CLIまたはSDKを使用してチャネルを作成すると、作成者ポリシーがconfigtx.yamlファイルに組み込まれません。Oracle Blockchain Platformでは、チャネル作成者がチャネルの構成を編集できるようにするために作成者ポリシーが必要です。
回避策: configtx.yamlファイルを手動で編集して、作成者ポリシーを追加します。
instantiateChaincodeエンドポイントでのblocktoliveの0 (ゼロ)設定がREST APIでサポートされない
REST APIのinstantiateChaincodeエンドポイントを使用し、dataCollectionConfigでblocktolive値を0 (0)に設定すると、エラー: {"respMesg":"invalid argument"}が表示されます。
プライベート・データベースからデータがパージされないようにするには、Hyperledger Fabricではblocktolive値を0 (ゼロ)に設定する必要があります。ただし、Oracle Blockchain Platform REST APIでは、この構成を0 (ゼロ)に設定することがサポートされません。
回避策: コンソールを使用してチェーンコードをインスタンス化し、チェーンコードのインスタンス化ダイアログのプライベート・データ・コレクション・セクションで、blocktoliveフィールドを0(ゼロ)に設定します。
ピアが、別のピアからプライベート・データをプルできない
プライベート・データ・コレクションのblocktolive値が10未満で、そのmaxPeerCount値がピア内のピアの総数(エンドース・ピアを含まない)を下回ると、ピアは別のピアからプライベート・データをプルできない場合があります。この値は、コンソールを使用してプライベート・データ・コレクション定義を作成するか、ネイティブのHyperledger Fabric CLIまたはSDKを使用すると設定されます。
回避策: blocktolive値が10以上に設定されていることを確認します。あるいは、maxPeerCount値がピアの総数(エンドース・ピアを含まない)以上に設定されていることを確認します。必要な場合は、チェーンコードを再インスタンス化またはアップグレードしてこれらの値をリセットできます。
チャネル作成者の組織およびチャネル・ポリシー設定が矛盾する
コンソールを使用して、チャネルを作成し、組織のACLをReaderOnlyに設定できます。新しいチャネルを保存した後に、このACL設定をチャネルのチャネル組織の編集オプションから更新することはできません。
ただし、コンソールのチャネル・ポリシーの管理オプションを使用すれば、組織をそのライター・ポリシーに追加でき、これにより、チャネルのReaderOnly ACL設定が上書きされます。
回避策: この問題の回避策はありません。
エクスポートおよびインポートされたファイルに互換性がない
コンソールとREST APIの間で、ファイル(CRL、証明書、オーダリング・サービス設定およびピア)はエクスポートおよびインポートできません。
コンソールおよびREST APIによってエクスポートされたファイルは、同じコンポーネントを使用したインポートに対してのみ互換性があります。たとえば、コンソールを使用してピアをエクスポートした場合、REST APIでインポートすることはできません(コンソールでのみインポートできます)。また、REST APIを使用してピアをエクスポートした場合、コンソールでインポートすることはできません(REST APIでのみインポートできます)。
回避策: この問題の回避策はありません。
チェーンコード名の要件
Oracle Blockchain Platformのチェーンコード名およびバージョン要件は、Hyperledger Fabric要件とは異なります。コンソールまたはHyperledger Fabricクライアントからチェーンコードをデプロイする場合には、Oracle Blockchain Platformの要件を使用する必要があります。Hyperledger Fabricクライアントからのデプロイ時にこれらの要件に従わない場合、チェーンコードがコンソールに正しく表示されないことがあります。
対処方法: チェーンコード名およびバージョンをデプロイする際には、次のルールを使用します。
- ASCII英数字、ダッシュ(-)およびアンダースコア(_)を使用します。
- 名前の先頭および末尾は、ASCII英字でのみ開始する必要があります。たとえば、_mychaincodeやmychaincode_のような名前は使用できません。
- ダッシュ(-)およびアンダースコア(_)の後には、ASCII英数字が続く必要があります。たとえば、my--chaincodeやmy-_chaincodeのような名前は使用できません。
- 名前とバージョンは、それぞれ64文字までです。
- チェーンコード・バージョンには、ピリオド(.)およびプラス記号(+)を含めることもできます。
日時ピッカーの動作
Oracle Blockchain Platformの日時ピッカーは所定の動作をしません。日時ピッカーは、ログ・ファイルやレジャー・アクティビティなどの項目をフィルタ処理するために使用します。
回避策: 日時ピッカーを使用できるように、次の情報を使用します。
- 特定の期間(「最終日」など)を選択した後、問合せを再実行するために再度選択した場合、問合せは再実行しません。最新の情報を取得するには、リフレッシュ・ボタンをクリックします。
- コンピュータでタイムゾーンを設定していない場合は、「カスタム」オプションを選択するときに、開始時間および終了時間をGMTで指定する必要があります。ただし、「プリファレンス」で「タイムゾーン設定」を「GMT」に設定(コンソールでインスタンス名を選択してから、「プリファレンス」、「タイムゾーン設定」の順にクリック)すると、コンソールのタイムゾーンは自動的にGMTに変換されます。
Oracle Cloud Known Issues for Oracle Blockchain Platform On Oracle Cloud Infrastructure
F94758-08