アグリゲートトランザクション

アグリゲートトランザクションは複数のトランザクションを一つにまとめ、 トラストレスな交換 や高度なロジックを可能にします。 Symbol は一度きりの破棄可能なスマートコントラクトを生成することでこれを実現しています。

../_images/aggregate-escrow-1.png

2人の参加者間における AggregateTransaction の例

AggregateTransaction へ全ての アカウント が署名をすると、全てのインナートランザクションは同時に実行されます。

Symbol パブリックネットワーク1,000 までのインナートランザクションを内包し、 25 の連署者を参加させたアグリゲートトランザクションをサポートしています。他のアグリゲートトランザクションをインナートランザクションとして内包することはできません。

アグリゲートコンプリート

要求されている参加者全員が署名した場合、AggregateTransaction は コンプリート になります。

連署者はそのトランザクションに、ブロックチェーンを使うことなく署名することができます。必要な署名をすべて取得したら、彼らのうちの1人がネットワークにアナウンスできます。インナートランザクションのセットアップが正当で、バリデーションエラーがない場合、トランザクションは同時に実行されます。

アグリゲートコンプリートトランザクションは、複数のインナートランザクションを集めることで、ブロックへさらに多くのトランザクションを追加できます。

アグリゲートボンド

他の参加者からの署名が必要な場合、AggregateTransaction は ボンデッド になります。

注釈

AggregateBondedTransaction を送信する前に、アカウントは HashLockTransaction をアナウンスして承認されており 10 symbol.xym をロックしなければなりません。

アグリゲートボンドがアナウンスされると、パーシャル状態— 2日間 まで存続可能—になり、WebSocket または HTTP API 呼び出しによって状態を通知します。

連署者がトランザクションに署名して、アグリゲートボンド 連署 をアナウンスするたびに、ネットワークは必要な連署者が署名しているかどうかをチェックします。すべての署名が取得されると、ネットワークがそれをブロックに含めるまで、トランザクションは未承認状態へ遷移します。

../_images/aggregate-bonded-transaction-cycle.png

AggregateBondedTransaction サイクル

複数のトランザクションを同時に送信

Dan は二つの転送トランザクションを集約した AggregateTransaction をアナウンスします。Alice と Bob は同時にモザイクを受け取るでしょう。

../_images/aggregate-sending-payouts.png

アグリゲート完了トランザクションによって支払を送信する

マルチアセットエスクロートランザクション

この例では Alice がチケットを currency:euro モザイク で購入しています。チケット販売者は AggregateTransaction に署名し、交換はアトミックに起こります。

../_images/aggregate-escrow-1.png

マルチアセットエスクロートランザクション

他人の手数料を支払う

Alice は 10 currency.euro を Bob へ支払うためにアプリで送ります。しかし、彼女はブロックチェーンのトランザクション手数料を支払う分の symbol.xym を持っていません。

AggregateBondedTransaction を作ることで、彼女は currency.euro を手数料のための symbol.xym に替えることができます。これで Alice と Bob は symbol.xym を購入したり保有することなく、 Symbol のパブリックブロックチェーンを使うことができます。

アプリの製作者はオープンソースの支払いアプリに独自ブランドを付けられるので、Alice と Bob は彼らがブロックチェーン技術を使っていることに気が付かないでしょう。

../_images/aggregate-paying-for-others-fees.png

他人の手数料を支払う

ガイド

次項: アカウント制限