すべてのプロダクト
Search
ドキュメントセンター

Blockchain as a Service:スマートコントラクトの例

最終更新日:Apr 01, 2026

Alibaba Cloud Blockchain as a Service (BaaS) には、Hyperledger Fabric 上で動作するすぐに使えるスマートコントラクトの例が 2 つ用意されています。1 つはチェーン上でのデータ公証に使用する汎用預託コントラクト、もう 1 つはブロックチェーンによる承認ワークフローを実現するシンプル承認コントラクトです。これらのコントラクトをそのまま使用するか、またはご自身のチェーンコード開発の出発点として活用してください。

一般デポジット契約

汎用預託コントラクトは、ブロックチェーン台帳に対してキーと値のペアを読み書きするための汎用インターフェイスを提供します。追加専用(append-only)および上書き(overwrite)の 2 種類の書き込みモードをサポートしており、変更履歴のクエリも可能です。

チェーンコードはソースリポジトリから取得するか、以下の事前パッケージ済みバージョンをダウンロードしてください。

パッケージング手順については、「チェーンコードのパッケージ化」をご参照ください。

初期化パラメーター

なし。

API オペレーション

get

指定されたキーに格納されている現在の値を読み取ります。

ParameterTypeDescription
keystring読み取るキー

Returns:

  • 成功時:キーに格納されている現在の値

  • 失敗時:エラーの原因

put

キーと値のペアをブロックチェーンに書き込みます。キーがすでに存在する場合は失敗します。put を使用すると、一度記録されたレコードは上書きできない「一回限りの書き込み」セマンティクスを強制できます。

ParameterTypeDescription
keystring書き込むキー
valuestring格納するデータ

Returns:

  • 成功時:書き込まれたキー

  • 失敗時:エラーの原因

set

キーと値のペアをブロックチェーンに書き込みます。キーがすでに存在する場合は、既存の値を上書きします。レコードを更新する必要がある場合は set を使用してください。

ParameterTypeDescription
keystring書き込むキー
valuestring格納するデータ

Returns:

  • 成功時:書き込まれたキー

  • 失敗時:エラーの原因

history

指定されたキーの変更履歴を JSON 形式のリストとして返します。

ParameterTypeDescription
keystringクエリキー

Returns:

  • 成功時:キーの変更履歴(JSON 形式)

  • 失敗時:エラーの原因

シンプル承認コントラクト

シンプル承認コントラクトは、ブロックチェーン上でタスク承認ワークフローを実装します。タスクは必要な承認者のリストとともに作成され、すべての承認者が承認した時点でタスクは完了状態となり、完了イベントが発行されます。すべての状態トランジションはチェーン上に記録されるため、改ざん検知可能な監査証跡が提供されます。

チェーンコードはソースリポジトリから取得するか、以下の事前パッケージ済みバージョンをダウンロードしてください。

パッケージング手順については、「チェーンコードのパッケージ化」をご参照ください。

初期化パラメーター

なし。

データ構造

このコントラクトは、各タスクを以下のフィールドを持つ Task 構造体として格納します。

type Task struct {
    Name        string   `json:"name"`        // タスク名
    Creator     string   `json:"creator"`     // タスク作成者の ID
    Requires    []string `json:"requires"`    // 承認が必要な ID のリスト。形式:${MSP_ID}.${USER_NAME}
    Approved    []string `json:"approved"`    // 承認済みの ID のリスト。形式:${MSP_ID}.${USER_NAME}
    Description string   `json:"description"` // タスクの説明
}

チェーン上のタスクデータを解析したりイベントをサブスクライブしたりする際は、json:"..." タグに示されている JSON フィールド名を使用してください。

API オペレーション

create

新しいタスクを作成し、作成イベントを発行します。

ParameterTypeDescription
namestringタスク名
taskstringJSON 形式のタスクオブジェクト。必須フィールド:requires および description

Returns:

  • 成功時:作成されたタスクの名前

  • 失敗時:エラーの原因

Events:

  • event-create-task — 成功時に発行。ペイロードは JSON 形式

get

タスクの現在の状態を取得します。

ParameterTypeDescription
namestring取得対象のタスク名

Returns:

  • 成功時:JSON 形式の Task オブジェクトとしてのタスク

  • 失敗時:エラーの原因

approve

呼び出し元の ID によるタスク承認を記録します。コントラクトは、各呼び出し後にすべての必要な承認者が承認済みかどうかをチェックします。

ParameterTypeDescription
namestring承認対象のタスク名

Returns:

  • 成功時:更新後のタスク(JSON 形式の Task オブジェクト)

  • 失敗時:エラーの原因

Events:

  • event-task-finished — すべての承認者が承認済みの場合に発行。ペイロードは JSON 形式

  • event-approve-task — 承認が記録されたがタスクがまだ完了していない場合に発行。ペイロードは JSON 形式

次のステップ