Polkadot に基づいてブロックチェーン プロジェクトを開発するにはどうすればよいですか?
丨密码极客丨
2020-10-28 02:40
本文约7778字,阅读全文需要约31分钟
Polkadot でブロックチェーン システムを開発するにはどうすればよいですか?

2020年10月20日、Cryptogeekは【ポルカドット生態シリーズ共有セッション】の第一期を開始しました。パリティ アジアのテクニカル ディレクターである Jia Yaoqi 博士を仮想通貨オタクのライブ ブロードキャスト ルームのゲストとして招待し、「Polkadot に基づいてブロックチェーン プロジェクトを開発する方法」について説明していただけることを非常に光栄に思います。

副題

スピーチセッション

1. Polkadot でブロックチェーン システムを開発するにはどうすればよいですか?

図1

図1

図1を見てください。実際、ブロックチェーンをゼロから開発するには、データベースの数式アルゴリズムだけでなく、さまざまなトランザクションの処理に関連する変換関数も考慮する必要があります。同時に、ゼロ知識証明など、より複雑または高度なロジックを追加する場合は、開発ゾーンをリンクするときに、これらのより複雑なアルゴリズムと関数を追加する必要があります。

そうなると、パブリックチェーン技術であれ、アライアンスチェーン技術であれ、すでにあるものを二次開発にどう活用するかということを実際にみんなで考えることになります。実際、過去 10 年間、特に 2009 年のビットコイン ホワイト ペーパーの発表と 2015 年のイーサリアム システムの発表以来、ブロックチェーンは支払いに使用できるだけでなく、それはスマートコントラクトです。そして、ビットコインをベースにした二次開発を行っている開発者がたくさんいますし、このutxoモデルのようないくつかの興味深いブロックチェーンシステムや、イーサリアムをベースにしたいくつかの調整もありますが、これらは既存のブロックチェーンをベースにして二次開発を行っています。新しいチェーンのようなシステムを作成します。彼らの最大の問題は、ビットコインやイーサリアムのような初期プロジェクト用の比較的優れた開発フレームワークも持っていることです。実際、変更はソース コードに基づいて行われ、開発者は次のことを必要とします。ソースコードに対する比較的高い理解。一方で、これらのソースコードはフレームワークとして十分にモジュール化されていないため、開発が非常に難しいのが現実です。

図2

図2

Polkadot はクロスチェーン プロジェクトであるため、開発者が独自のブロックチェーン システムをより迅速に開発できるようにするために、開発者がそのような関連ブロックの開発を容易にするために、Substrate などの一連のフレームワークを開発しました。チェーン システム (これをパラレル チェーンと呼びます) 。 Substrate には、データベース層、ネットワーク層、プラガブル コンセンサス プロトコルなど、先ほど述べたブロックチェーンの多くのコア コンポーネントが実際に含まれていることがわかります。

画像3

画像3

図4

図4

実際、Polkadot のパラチェーンまたはパラスレッドであることに加えて、独立したチェーンとして直接デプロイすることもできます。特に国内の特殊な環境では、Substrate を使用して、この種のビジネス ロジックに対応する独自のアライアンス チェーンやプライベート チェーンを構築することもできます。また、特定のアプリケーションを対象とした、比較的高いスループット要件を持つチェーンも構築できます。ゲーム単体としてチェーンを構築し、対応する環境にデプロイする もちろん、Substrate で開発している場合は、3 年後には、Polkadot エコシステム全体が成長し、開発者が成長していることがこの図からわかります。開発を続けます。Substrate には多くの開発エコシステムとツールがあります。Polkadot-js を使用できます。もちろん、より優れたブロック ブラウザが組み込まれています。Parity Signer のようなオフライン ハードウェア ウォレットも使用できます。

図5

図5

図6

図6

次に、開発にはこの種の Substrate Runtime が必要になります。図 6 からわかるように、Substrate は通常のスマート コントラクトの開発とは異なるため、覚えておく必要のある開発ポリシーがいくつかあります。たとえば、最初の点は、Substrate Runtime で、外部を送信するか、トランザクションとして扱う場合、トランザクションを送信するときに、トランザクションに問題がある場合、トランザクションはステータスの変化に応答しません。外。

そして、イーサリアム上でSolidityを開発すると、トランザクションの実行に失敗すると、実際にはステータスがロールバックされてしまいます。これには、Substrate ランタイムを開発するときに、最初にロジックを検証するのが最善であることが必要です。それから書きます。

図7

図7

この種の特性については、他の関連する特性を引用したい場合は、Substrate 全体が Rust で書かれているため、いくつかの特性も使用されます。この種の Rust 関連の情報について詳しく知りたい場合は、次を確認してください。インターネット上の Rust の関連コースに参加するか、Substrate コースに参加してください。Rust に関連する基本事項をいくつか紹介します。次に、ストレージと同様に、実際には比較的単純な型と最も単純なメソッドがいくつかあることがわかります。これらの単純な型や既存の例を学習し、実際の状況に応じて変更することができます。この変数名に関連する、このような操作を実行します。同時に、スマート コントラクトを作成するときと同様に、何らかの操作を実行するときにイベントをトリガーまたは発行する必要があるため、ここでイベントを定義することもできます。

もちろん、ここには decl_module という別の場所があり、これは実際に対応するランタイム関数を定義するためのものです。最後に、Substrate.dev という Web サイトにさまざまな種類のチュートリアルがあることを述べておきます。チュートリアルに従って学ぶことができます。また、比較的単純な例をいくつか実行して、これらのモジュールに対応するイベント ストレージと関数を定義する方法、対応するランタイム、対応するロジックの定義と操作を完了する方法を詳しく学びます。

4. Substrate アプリケーション チェーンとスマート コントラクトの違いは何ですか?

図8

図8

スマート コントラクト、特にイーサリアム上の Solidity のようなスマート コントラクトの作成は、ストレージ容量の少なさや手数料の高さなど、Solidity やイーサリアム自体の制限が原因であることが多いことは誰もが知っていますが、同時に、Solidity 自体と同様に、また、多くの制限があり、より頻繁に操作できるのは整数のみである可能性があります。

これが、皆さんが目にするイーサリアム上の人気のあるアプリケーションがすべて、より広範な Web3.0 ではなく、トークンに関連している理由です。

Substrateを使用して開発する場合には、このような問題はありません。

Substrate を使用して開発する場合、チェーン全体が開発者によって制御されるためです。そのため、開発する場合、それがオンチェーン データであろうとオフチェーン データであろうと、または Solidity にはない対応するインターフェイスであっても、Substrate はそれを提供できます。

また、Substrate 自体のスループットが比較的高いため、トランザクションとロジックを処理するためのより多くのスペースをアプリケーションに提供できることもわかります。

同時に、Substrate 自体もオフチェーン ワーカーを提供します。これにより、Substrate アプリケーション開発の開発者が関連するオフチェーン データをより高速に処理し、オフチェーン データのオンチェーン処理を実現して、オンチェーンを開放することができます。そしてオフチェーン。

5. フォークを使用しないシームレスなオンチェーンアップグレード

ブロックチェーン業界に詳しい友人は、過去には、一部のアライアンス チェーン プロジェクトを含むすべてのパブリック チェーン プロジェクトをアップグレードする場合、ハード フォークが必要だったことを知っています。ビットコイン、特にイーサリアムが好きです。 2016 年の「The DAO」事件により、マイナーの意見の相違により、最終的にクラシック イーサリアムがイーサリアムから分離されたことは誰もが知っています。

チェーン関連のアップグレードを行うのはなぜですか?これには実際にはコンピューターまたはプログラミング業界が関係します。

実際、誰もがそのような現象に陥ります。抜け穴のないコードを書くプログラマーは存在しません。

従来のアプリケーション、ブロックチェーン アプリケーション、スマート コントラクトの作成のいずれであっても。通常、作成するコードが増えるほど、セキュリティ ホールが増える可能性があります。

過去数年を振り返ると、DEFIであれチェーン自体であれ、誰もがさまざまな抜け穴を発見し、多くのユーザーにさまざまな財産の損失をもたらしました。

このため、スマートコントラクトのアップグレードであれ、チェーン自体のアップグレードであれ、ブロックチェーン自体のより良いアップグレードが必要になります。

しかし、この種のハードフォークを頻繁に使用してアップグレードすると、まず時間が追いつかなくなります。アップグレードには「各マイナーが短期間でソフトウェアを最新バージョンにアップグレードする必要があり、その後、一定期間内に全員が協力してそのバージョンにアップグレードし、最終的に古いチェーンから新しいチェーンに切り替える」というロジックです。

ただし、ハードフォークのため、このアップグレード モードは非常にコストがかかり、多くの場合、独自のチェーンが他のチェーンからフォークする可能性があります。

次に、Substrate のようなものには、シームレスなオンチェーン アップグレードが備わっています。実際には、開発者に対応するランタイムをチェーンに提出し、チェーン上でバリデーターに投票するというもので、これが実はチェーン上のガバナンスに関係していることがわかります。

チェーンでの投票が完了した後、大多数の人が対応するアップグレードを実行することに同意した場合、開発者によって送信されたランタイムは、対応するアップグレードのチェーン全体のランタイムに書き込まれます。

このようなフォークフリーのチェーンアップグレードにより、ブロックチェーン開発者はより安心して独自のブロックチェーンを実行できるようになります。

画像の説明

図9

6. オフチェーンワーカー

イーサリアム上にチェーンリンクなどのさまざまなオラクルマシンがあることは誰もが知っています。

過去 6 か月の間、オラクル マシンはさまざまな人々の注目を集めてきました。

イーサリアム自体はチェーン内外のチャネルを開くことができないため、オンチェーンがさまざまなトークン価格などのオフチェーンのデータを取得したい場合、データをチェーンに送信するためにこの種のオラクルマシンが必要になります。

画像の説明

図10

その後、これらのチェーン上の検証ノードはチェーン データを直接処理できます。

将来的には、たとえばチェーン上で処理結果について合意を形成し、オフチェーン情報をより迅速かつ便利に取得し、関連する計算を実行できるようにすることが可能になります。

ポルカドットやサブストレートに相当する生態系では、そのような別途の神託は必要ありません。なぜなら、対応するオフチェーン作業マシンのインターフェースがよく書かれているからです。

同時に、対応するシナリオも確認できます。先ほど述べたオフチェーン データに加えて、オフチェーンの作業マシンを使用するシナリオもいくつかあります。

たとえば、比較的大規模な計算の場合、オフチェーン ワーカーを使用して結果を完了し、その結果を対応するオンチェーン検証者に返すことができます。

画像の説明

図11

7. Polkadot へのアクセスを改善するにはどうすればよいですか?

先ほど、Polkadot が開発に Substrate をどのように使用するか、Substrate によって記述されたランタイムがどのようなものであるか、開発における Substrate の利点などのいくつかのトピックについて説明しました。

次に、次のことも知りたいかもしれません: Substrate を使用してブロックチェーン システムを開発する場合、どうすれば Polkadot にアクセスしやすくなりますか?

図 12 を見てください。これは実際には、Polkadot に関するフレームワーク全体です。

画像の説明

図12

異なるチェーンがリレー チェーンに接続されている場合、それらはパラレル リンクとしてリレー チェーンに接続されます。

ビットコインやイーサリアムなどの比較的大規模なブロックチェーン システムの多くは、Polkadot にアクセスしたい場合、まずブリッジを介してパラチェーンに調整し、次にパラチェーンを介して他のパラチェーンと通信する必要があります。

並列チェーンとして、コンテンツまたはブロックの検証は、リレー チェーンの関連する検証ノードを通じて行われます。

そうなると誰もが疑問に思うでしょう、パラチェーン自体にはどのノードが必要なのでしょうか?図で述べたように、コレーターと呼ばれるタイプのノードが必要です。

これらのノードは、各並列チェーンに対応するブロックを収集し、リレー チェーンによってランダムに選択されたいくつかのブロック検証ノードに送信する役割を果たします。これらのブロック検証ノードは、並列チェーン内の対応するブロックを検証します。

同時に、Substrate を使用して作成されたブロックチェーンには、Cumulus と呼ばれる別のモジュールも必要です。 Substrate を使用してこの Cumulus を作成し、少し改良を加えると、Cumulus を使用してパラチェーンに接続できます。

画像の説明

図13

8. Web3 Foundation はポルカドットの生態学的発展をどのようにサポートしていますか?

Polkadot エコシステムのプロジェクトは特に活発です。財団であれパリティであれ、ポルカドット生態プロジェクトに対する私たちの支援は非常に高いものであることをご覧ください。

例えば、3月くらいで100件以上のWeb3対応プロジェクトやWeb3ファンド市場助成金の支援を発行しました。

同時に、コミュニティ内の比較的成熟したチームを支援し、技術市場およびビジネス市場でのサービスを提供するためのビルダー プログラムも用意します。

画像の説明

図14

アジアや中国では、今年の5月からWanxiangと協力してWeb3トレーニングキャンプを実施し、15チームを育成したことがわかります。

これら 15 チームのほとんどは、関連するテスト ネットワークとメイン ネットワークに参加しています。それから融資のようなものも非常に人気があります。

将来的には、より多くのより優れたチームが Web3 トレーニング キャンプに参加できることを願っています。当社は技術的、商業的、マーケティング関連のサポートを提供します。

世界中ですでに 100 を超えるチームが Substrate に基づいたブロックチェーンを開発しています。

アジアのチームまたは中国のチームとして、私たちはこれまで基板開発に関連するさまざまな中国語の資料を提供してきました。

Zhihu コラム、Polkadot 公式アカウント、または Bilibili ライブブロードキャストを含むオンラインおよびオフラインの活動のいずれであっても、どなたでも Substrate を検索したり、コミュニティを検索して、私たちの活動に積極的に参加していただけます。

同時に、いくつかの最新の活動もあります。たとえば、今月末には、オープン性、オープンソース、相互接続をテーマにした初の Web3 カンファレンスを中国で開催する予定です。

画像の説明

図15

興味があれば、このようなチュートリアルを学習して、チェーン上のアップグレードであっても、チェーンから離れた稼働マシンであっても、Substrate の新しい開発フレームワークを体験することができます。そして、独自のブロックチェーンを構築するために私たちが提供するさまざまなモジュール。

質問時間

質問時間

質問 1 は、NetEase のブロックチェーン イノベーション ビジネス責任者、Hu Zhimin 氏からのものです。

Hu Zhimin: 開発者として、Polkadot エコシステムで Substrate に基づいたブロックチェーン ビジネスを開始したい場合、必ずいくつかのスタートアップ資金が必要になります。ブロックチェーン アプリケーションに対する Polkadot 公式ファンドのサポート戦略を知りたいです。 、どのようなプロジェクトが正式な投資を可能にするのかなど。

Jia Yaoqi博士: ポルカドット生態学と機械設備の開発に関連するプロジェクトとチームに関しては、先ほど述べたように、財団とパリティの両方が比較的大きな支援を提供します。

資金提供に関しては、財団は資格に基づいてプロジェクトを評価します。

Web3グラントというプロジェクトに応募できます。いくつかの比較的優れたプロジェクトに対して、財団は約 30,000 米ドルの支援を提供します。

もちろん、より複雑なプロジェクトにはより高額な財政支援も提供されますが、審査にはより長い時間がかかります。

製品やテストネットを含む比較的成熟したプロジェクトの場合は、成熟した関連プログラムの一部に申し込むことができます。たとえば、ビルダー プログラムや Web3 ブートキャンプ、Web3 トレーニング キャンプなどです。これらのプロジェクトに対して、技術市場およびビジネス関連の指導と支援を提供します。

同時に、関連する投資家や、ポルカドットエコシステムでより積極的に活動している国内外の投資家とも連絡を取り、これらのプロジェクトを観察し、関連する投資を行うのを手伝ってもらいます。

質問 2 と 3 は、Coinversation コードの寄稿者であり、北京大学を卒業し、12 年のプログラム開発経験を持つ Qing Huan からのものです。

質問2

Qing Huan: パラチェーンが開発された場合、その後のカード スロットへの並列リンクのコストはいくらになりますか?

Jia Yaoqi 博士: 最初の質問ですが、パラチェーンが開発された場合、スロットのコストはいくらになりますか?現時点では明確な計算はできておりません。たとえば、スロットを何個獲得できるかなどです。しかし、現在の状況に関する限り、私たちのスロットは直接売買されず、ユーザーが対応するドットをロックする必要があるため、実際には、さまざまなチームが独自のコミュニティをより良く開発することを依然として奨励しています。クラウドファンディングを利用したり、独自のパラチェーンなどの収益性を開発し、その利益から得た資金を使ってスロットオークションを実施することもできます。

質問3

Qing Huan: Coinversation は ink! スマート コントラクト開発プロジェクトを使用しています。現時点では、開発ツールからスマート コントラクトのテスト、展開まで比較的面倒ですが、将来的にはどのようにこれらの開発の敷居を下げることができますか?

Jia Yaoqi 博士: ink! は現在第 3 版です。詳細については、こちらをご覧ください。

また、ink! 関連の開発、開発されたモジュールおよび関連コンポーネントに関しても、より多くの開発者が ink! テクノロジーを開発に活用できるよう、徐々に開発と改善を行っています。

現時点では、いくつかの開発ツールが導入されていない可能性があります。しかし、私たちの Web3 Foundation は、開発者が開発に ink! を使用できるように、一部の開発ツール チームにリミックスに似た Ide を提供しました。

質問4

Polkadot コミュニティのグループ 1 メンバー: Polkadot または Substrate のアプリケーション開発は並列チェーンとして使用する必要がありますか?このように、各アプリケーションはチェーンを開発しますが、パラチェーン用のスロットが足りない場合はどうすればよいでしょうか?

Jia Yaoqi 博士: 並列チェーンに加えて、実際には他の方法もあります。

最初の方法は先ほど述べたもので、並列スレッドを経由してシステムにアクセスします。

パラスレッドでは、パラチェーン チームが半年や 2 年以上スロットを独占する必要はありません。必要に応じてさまざまなブロックに入札するだけで、独自のブロックを Polkadot システムに書き込みます。

もちろん、他の方法もあります。比較的単純なアプリケーションを構築するだけの場合は、ink! または Solidity を使用してスマート コントラクトを作成し、独自のスマート コントラクトまたは関連アプリケーションをスマート コントラクト パラチェーンにデプロイすることができます。スマート コントラクト パラレル チェーンを介して、他のパラレル チェーンにデータを呼び出して提供することで、Polkadot の対応するクロスチェーンの利点を活用することもできます。

また、別の Substrate チェーンを構築することもできます。将来的には、何らかの方法でいくつかのパラチェーンにブリッジすることで、自分のチェーンのデータがパラチェーンを介して他のパラチェーンと通信できるようになります。

大まかに言うと、上記の 3 つの方法に加えて、パラチェーン スロットのオークションを経て、Polkadot にアクセスします。 Polkadot システムにアクセスするには、合計 4 つの方法があります。

丨密码极客丨
作者文库