MTDK1

Building the Substrate TCR runtime - Step 4

Building the Substrate TCR runtime - Step 4

原文 Part 1: Building the Substrate TCR runtime

目次:Building a Token Curated Registry DAppChain using Substrate

Step 4: Declaring Events

ランタイムモジュール開発の次のステップはイベントを定義することです。一般的に、外部のシステムがブロックチェーンの更新を知るためにはイベントが必要です。もし、ランタイムが正しいイベントを発行しなければユーザーはブロックチェーンに対して大量の on-chain データを要求することになります。

また、Substrate のランタイム関数は成功時に値を返しません。返されるのは空データかエラーメッセージのどちらかです。このため、状態の変化がクライアント、つまりユーザーに伝達されるように必要な情報(パラメータ)を持つイベントを発行することが重要になります。

イベントを使用することでチェーン外に on-chain データのキャッシュを作成することができます。このキャッシュを使用することで、on-chain データを直接参照するよりも高性能な照会や分析を行うことができるようになります。これについては Part 4 で詳しく説明します。

TCR ランタイムモジュールにリストの更新を伝えるイベント(提案、チャレンジ、投票、決議、承認/拒否、報酬請求のイベント)を実装します。これら全てのイベントはリストのライフサイクルと対応するチャレンジにおける論理的なステップであり、これらは外部に伝えられるべきです。

ランタイムモジュールを開発していると以下のようなことを思うことがありませんか?「クライアントまたはユーザは、このランタイムを使用するときどのような種類の更新に興味があるのだろうか?」 理想的には、これらすべての更新がイベントとして伝えられるといいでしょう。

TCRランタイムの場合、decl_event マクロを使用して宣言したイベントがあります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
decl_event!(
    pub enum Event<T> where 
        AccountId = <T as system::Trait>::AccountId, 
        Balance = <T as token::Trait>::TokenBalance, 
        Hash = <T as system::Trait>::Hash,
    {
      // when a listing is proposed
      Proposed(AccountId, Hash, Balance),
      // when a listing is challenged
      Challenged(AccountId, Hash, u32, Balance),
      // when a challenge is voted on
      Voted(AccountId, u32, Balance),
      // when a challenge is resolved
      Resolved(Hash, u32),
      // when a listing is accepted in the registry
      Accepted(Hash),
      // when a listing is rejected from the registry
      Rejected(Hash),
      // when a vote reward is claimed for a challenge
      Claimed(AccountId, u32),
    }
);

ここまででストレージ、genesis config そしてイベントの整理ができたので、ランタイムのビジネスロジックを実装に進むことができます。

関連リンク

comments powered by Disqus

Related Posts

Substrate TCR / UI

Polkadot/Substrate Portal を Substrate TCR 用にカスタマイズしました。

Building the Substrate TCR runtime - Step 5

原文 Part 1: Building the Substrate TCR runtime

Building the Substrate TCR runtime - Step 3

原文 Part 1: Building the Substrate TCR runtime

Building the Substrate TCR runtime - Step 1, 2

原文 Part 1: Building the Substrate TCR runtime

Building a Token Curated Registry DAppChain using Substrate

これは中級レベルの Substrate フレームワークを使用した DAppsチェーン構築チュートリアルです。 まだ Substrate に慣れていないのであれば基本的な概念をカバーしている下記の初心者用チュートリアルから始めることをお勧めします。