Skip to main content

フェーズ4:CompactとDApp開発

開発の進めかた

Compact の契約と、ふつうの TypeScript アプリは役わりがちがう。`compact` CLI とツールチェーンの分け方、`compact compile` の使い方、開発者が最初に意識することをまとめます。


Compactで「契約を書く言葉」を学びました。 このページは、開発者がじっさいに DApp(チェーンの上のアプリ)を作るときの流れと、役わりの分け方です。

なんのためにあるの?

Midnight のアプリは、契約を書いて終わりではありません。

どの仕事を、どこで持つか」を分けて考えることが、いちばん大事。

契約(Compact)の仕事と、ふつうのアプリ(TypeScript)の仕事は、べつものです。

2つの「コンパクト」を混同しない

名前がにていて混乱しやすいので、最初に分けておきます。

名前 これは何? たとえ
Compact Developer Toolscompact コマンド) 開発者がターミナルで使う道具 工具を出し入れする道具箱の取っ手
Compact Toolchain コンパイラなど、言葉のバージョンごとの中身 道具箱の中の工具たち

⚠️ この2つは別々にバージョン管理されています。「CLI(取っ手)」と「コンパイラ(中身)」のバージョンを、ごちゃまぜにしないようにします。

契約・回路・アプリの関係

公式はこう説明しています。

「Compact のコンパイラは、台帳とのやり取りが正しいことを証明するゼロ知識回路を出力する

つまり——

  • 開発者:Compact で 契約 を書く
  • コンパイラ:そこから ゼロ知識回路 を作る
  • アプリ側(ふつうの TypeScript):画面・入力・送信・結果の表示をたんとうする

契約を書く層」と「Web アプリとして組み立てる層」を、分けて理解します。

だいたいの流れ

  1. 決める:何を公開し、何を秘密にし、何を「証明」だけで済ませるか
  2. 書く:その境目を前提に、Compact で契約を書く
  3. ビルドするcompact コマンドのサブコマンドで契約をビルドする
  1. つなぐ:アプリ側が、入力・署名・送信・結果表示をつないで、ユーザー体験にする

compact コマンドには他に update / check / list / self update などのサブコマンドもあります(format も追加予定)。

⚠️ 古い compactc は今は使わない

  • 古いドキュメントに出てくる compactc というコマンドは、いまは deprecated(非推奨) です。
  • 公式は compact compile に置きかえるよう案内しています。
  • これから学ぶときは、compact コマンド経由であつかうのが前提です。

Web アプリ開発者へのヒント

  • Compact は「TypeScript ベース」と言われますが、ふつうの Web アプリの TypeScript と同じ気持ちでは書けません。
  • 文法が近い」と「考えかたが同じ」は別もの。証明が前提という制約をいつも意識します。
  • 「バックエンドの API を増やす」感覚だけでなく、「契約・証明・公開状態の役わり分担」として考えると、すっきりします。

今日のまとめ

  • アプリ=契約(Compact)+ ふつうのアプリ(TypeScript)の役わり分担
  • compact(CLI)と コンパイラ(ツールチェーン)は別バージョン
  • ビルドは compact compile。古い compactcもう使わない

今はここだけでOK

「契約を書く仕事と、画面を作る仕事は別。まず『何を公開・秘密・証明にするか』を決めてから書く」——これでOK。

📘 もっと正確に(原文準拠コース)

Academy 原文に忠実な詳しい版はこちら:

つぎに読むページ

➡️ いよいよ手を動かす準備。開発環境の作りかた


📚 もっとくわしく(公式・むずかしめ): Compact language(外部リンク・別タブで開きます)Compact developer tools(外部リンク・別タブで開きます)