このセクションでは、スマートコントラクトの開発を容易にするために、汎用預託コントラクトと単純承認コントラクトの例を示します。
汎用預託コントラクト
汎用預託コントラクトは、ブロックチェーン台帳 KV の一般的な操作インターフェイスを提供し、データの読み取り、書き込み、および履歴クエリをサポートします。チェーンコードのソースコードにアクセスし、「チェーンコードをパッケージ化する」をご参照ください。パッケージ化されたチェーンコードをダウンロードすることもできます。
初期化パラメーター
初期化パラメーターはありません
API 操作
get
ブロックチェーン預託証明書情報内のキーの現在の内容をクエリします。
パラメーターのリスト
key: 読み取る証明書のキー。
有効な値:
成功した場合、コントラクト内のキーによって格納されている現在の内容が預託されます。
エラーが発生した場合、エラーの原因が返されます。
put
<key, value> キーペアをブロックチェーンに書き込みます。キーがすでに存在する場合は、エラーが返されます。
パラメーターのリスト
key: 読み取る証明書のキー。
value: 保存する情報。
有効な値:
成功した場合、証明書のキーが返されます。
エラーが発生した場合、エラーの原因が返されます。
set
証明書情報 <key, value> をブロックチェーンに書き込みます。証明書のキーがすでに存在する場合は、古い証明書の内容が上書きされます。
パラメーターのリスト
key: 読み取る証明書のキー。
value: 保存する情報。
有効な値:
成功した場合、証明書のキーが返されます。
エラーが発生した場合、エラーの原因が返されます。
history
この操作を呼び出して、ブロックチェーン預託証明書情報内のキーの変更履歴をクエリできます。
パラメーターのリスト
key: 読み取る証明書のキー。
有効な値:
成功した場合、キーの変更履歴 (JSON エンコード) が返されます。
エラーが発生した場合、エラーの原因が返されます。
単純承認コントラクト
単純承認コントラクトは、ブロックチェーンに基づく単純なタスク承認インターフェイスを提供し、タスクの作成、クエリ、および承認を可能にします。タスクのステータスが変更されると、対応するブロックチェーンイベントが生成されます。チェーンコードのソースコードにアクセスし、「チェーンコードをパッケージ化する」をご参照ください。パッケージ化されたチェーンコードをダウンロードすることもできます。
初期化パラメーター
初期化パラメーターはありません
データ構造
task
type Task struct {
// タスクの名前
Name string `json:"name"`
// タスクの作成者
Creator string `json:"creator"`
// ユーザーがタスクを承認した後にのみ、プロセスを終了できます。(ユーザー表現: ${MSP_ID}.${USER_NAME}.)
Requires []string `json:"requires"`
// タスクに同意した現在のユーザー (ユーザー表現: ${MSP_ID}.${USER_NAME})
Approved []string `json:"approved"`
// タスクの説明
Description string `json:"description"`
}
API 操作
create
新しいタスクフローを作成します。
パラメーターのリスト
name: タスクの名前。
task: JSON エンコードされたタスクの内容。
requires
フィールドとdescription
フィールドを含める必要があります。
有効な値:
成功した場合、正常に作成されたタスクの名前が返されます。
エラーが発生した場合、エラーの原因が返されます。
イベント:
イベント
event-create-task
がトリガーされます。イベントの内容は JSON エンコードされます。
get
タスクフローを取得します
パラメーターのリスト
name: タスクの名前。
有効な値:
成功した場合、JSON エンコードされたタスクの内容が返されます。
エラーが発生した場合、エラーの原因が返されます。
approve
タスクに同意します
パラメーターのリスト
name: タスクの名前。
有効な値:
成功した場合、JSON エンコードされたタスクの内容が返されます。
エラーが発生した場合、エラーの原因が返されます。
イベント:
タスクに同意し、タスクが終了条件を満たした後、イベント
event-task-finished
がトリガーされます。イベントの内容は JSON エンコードされます。タスクに同意した後、タスクが終了条件を満たさない場合、イベント
event-approve-task
がトリガーされます。イベントの内容は JSON エンコードされます。