0xのCoreConceptの翻訳 #6

Transactions

スマートコントラクトに送られるトランザクションは、read-write機能があるため、Gasを消費する。読み出すこともできるし、ブロックチェーンのステートを変更することもできる。ステートを変更することもできるため、トランザクションは、ブロックに中に格納される必要があり、ネットワークの他のノードにブロードキャストされる必要があり、各ノードは、手元のローカルコピーのデータを更新する必要がある。0x関数の他の例は、fillOrder(Order order, uint256 takerAssetFillAmount, bytes signature)やcancelOrder(Order order)などを含む必要があり、この背景は、0xのオーダーが、これらの両者のオペレーションを変更するためである。

イーサリウムトランザクションの解剖

全てのイーサリムのトランザクションは、以下の情報を含まなくてはならない:


全てのこれらのフィールドが集められると、すべてハッシュ化され、イーサリウム・トランザクション・ハッシュが作られる。最後のステップは、この真正性のあるイーサリウムトランザクションを、そのアドレスに対応するプライベートキーと共にと著名することである。我々の0xのライブラリは、イーサリウムのトランザクションを生成し、それらをハッシュ化し、彼らの著名をリクエストし、あなたのために、イーサリウムのノードに送るのである。

スマートコントラクトのイベントをサブスクライブする

0xの開発者として、ステートの変更がオンチェーン上で起きる際、そのことを知らせてもらった方が良い場合もある。例えば、あなたは、特定のメーカーからのオーダーが取引完了するかキャンセルされた場合、Updateが欲しいと考えるだろう。イーサリウムは、スマートコントラクトをその実行時には、イベントを発行する。これらのイベントは、あなたのアプリケーションによってサブスクライブされ、そして、処理される。

0xイベントの例:

0xライブラリは、特定のコントラクトによって発生したイベントをサブスクライブするための簡単な方法をあなたのために用意している。


この方法は、イベントが発生した時点で、あなたがコールバックを受けるように登録されている。ただし、あなたが、イベントをフィルダーする方法は、そのイベントの宣言文に書かれているキーワードをインデックス化したものからのみ可能であることに注意して欲しい。それ以外の別の値でフィルダーしたい場合は、あたなは、全てのイベントをきく必要があり、同時にそれらのフィルタリングはクライアントサイドで実行する必要がある。

イベントに関するコールバックのパラメーターの記述が加えられたり、除かれたりする理由は、伝統的なウェブアプリケーションと異なり、我々のバックエンドは、ブロックチェーンになり、ブロックは、標準的なチェーンからときどき取り除かれることがある(これを、”block re-org”と呼ぶ)

結論

あなたは、今、0x上でアプリケーションを実装する上で、全てのECの開発コンセプトについて理解した。より詳しい説明については、以下のチュートリアルを参考にして欲しい。

Launch an exchange in a few minutes
Tap into contract-fillable liquidity
Start market-making on 0x
Add 0x Instant to your website / mobile app

関連記事