メインコンテンツへスキップ

Forge Framework と Forge SDK のご紹介

Riley Shu & Matt McKinney
ABT NodeArcBlockBlockchainDappsDeveloperForgeForge Framework

Forge Framework と Forge SDK のご紹介 — ブロックチェーンと DApps を構築する最も簡単な方法

著者: Riley Shu & Matt McKinney

Forge SDK は、開発者がブロックチェーンと分散型アプリケーション(DApps)を簡単に構築するための、新しいブロックチェーンアプリケーション基盤 Forge Framework(Forge)の一部です。Forge は開発者によって開発者のために作られたもので、ブロックチェーンを扱いやすくし、現在の開発に伴う多くの複雑さやパフォーマンス上の問題を取り除くことを目的としています。

私たちのサービスプラットフォームには、OCAPOpen Chain Access ProtocolABT Network:相互接続されたブロックチェーンネットワークABT Node:使いやすいブロックチェーンノード、そして今回加わった Forge Framework & SDK:があります。これらはすべて、スケーラビリティ、パフォーマンス、使いやすさ、実運用に対応したツールなど、今日のブロックチェーン開発が抱える課題を解決するために構築されています。

新しい Forge SDK の開発にあたり、私たちは Hyperledger、Bitcoin、Ethereum を含む前世代のブロックチェーンから学びました。そして、現在のブロックチェーンに存在する多くのボトルネックを抽象化し、開発者がそれぞれのユースケースに合った DApps を構築しようとする際に直面する問題を特定しました。そこから得た知見をもとに、まったく新しく、それでいて親しみやすい Forge Framework を作り上げました。

Ruby on Rails がウェブアプリケーション開発にもたらしたものと同様の変化を、Forge Framework はブロックチェーン開発にもたらすと私たちは考えています。Forge は使いやすく、ブロックチェーンや DApps の構築に必要なものをすべて開発者に提供します。また、パートナーやツールのエコシステムが急速に広がるにつれて、その人気も高まっています。

Forge を利用することで、開発者はすぐに次のメリットを得られます。

  • Bitcoin や Ethereum などの外部チェーンを統合サポート
  • gRPC と GraphQL をサポート
  • オンチェーンガバナンス
  • 自動アップデート
  • Javascript、Python、Erlang、Swift、Objective-C、iOS、Android を含む幅広い言語サポート
  • 無限にスケール可能なネットワーク
  • Forge SDK で構築したあらゆる DApp やサービスが ABT Network とネイティブに互換
  • 分散型アイデンティティを内蔵

Forge は、簡単にアップグレードでき、効率的で、まったく新しいブロックチェーン構築方法を開発者に提供します。難しい作業はすべて Forge が引き受けるため、開発者は最も得意なこと、つまりコードに集中できます。

クイックスタート

Forge SDK の仕組みを概要から理解するには、「Getting Started」をご覧ください。

開始するために必要なのは、次の 2 ステップだけです。

  • Forge CLI を使ってデバイス上でノードを起動します。このステップでは完全なノードを立ち上げ、その上にアプリケーションロジックを構築できるようにします。
  • 使い慣れた SDK を選びます。現在、Forge SDK は Javascript SDKPython SDKJava SDK を提供しています。今後、さらに多くの言語をサポートする予定です。

これだけです!これで稼働中のノードと、すぐに使える一連のツールがそろいました。次はウォレットを作成してトランザクションを送信し、最初の一歩を踏み出しましょう。

Forge を始めるための基本概念

Forge は使いやすく、ほとんどの開発者がすぐに使いこなせると考えていますが、利用開始に役立つ重要な概念をいくつか説明しておくことが大切です。

アカウントとウォレット

起動したばかりのノードでトランザクションを開始するには、まずアカウントを作成する必要があります。各アカウントには異なるユーザーを識別するための固有のアドレスがあり、各ユーザーは異なるアドレスを持つアカウントを実質的に無制限に所有できます。ウォレットはユーザーのアカウント認証情報を格納するもので、固有のアドレス、秘密鍵(SK)、公開鍵(PK)が含まれます。

Forge のアカウントとウォレットを使い始める

トランザクション

トランザクションは、Forge SDK で構築されたチェーン上で発生し得る活動の最小単位です。ABT Network (https://www.abtnetwork.io) 上で動作するものはすべて、さまざまなトランザクションの組み合わせとして解釈できます。

オンチェーンの活動を「トランザクション」と呼ぶ起源は Bitcoin にさかのぼります。Satoshi の原論文 BitCoin: A Peer to Peer Electronic Cash System では、トランザクションとはハッシュに署名してコインを移転し、他の当事者がそのトランザクションが本物で有効であることを検証できるようにすることを指します。

Forge SDK では、トランザクションにコインよりもはるかに多くの情報が含まれます。トランザクションの種類に応じて、それぞれ異なる機能を持ちます。

すべてがトランザクションで構成されるため、各トランザクションは既存のアカウントによって署名され、送信される必要があります。Forge 上で何かを行うには、必ずトランザクションを送信するプロセスを経なければなりません。これこそが、Forge Framework がこれまでに発生したあらゆる活動の履歴を保持する仕組みです。

Forge のトランザクションについて詳しく見る

Forge の主要技術

Forge は、開発者の負担を軽減し、現実の問題を解決できるよう設計されています。Forge には多くの統合機能とメリットがありますが、新しいユーザーに特に注目してほしい 2 つの主要技術が gRPC と GraphQL です。

gRPC と GraphQL について詳しく見る

gRPC

gRPC(Google Remote Procedure Calls)は、Google で最初に開発されたオープンソースのリモートプロシージャコールシステムです。認証、双方向ストリーミングとフロー制御、ブロッキングまたはノンブロッキングのバインディング、キャンセル、タイムアウトなどの機能を提供します。簡単に言えば、同じ場所や異なる場所にあるサービス同士を接続できるシステムです。

重要な特徴の一つは、クライアントアプリケーションが別のマシン上のサーバーアプリケーションのメソッドを直接呼び出せることです。これは分散型アプリケーション開発に不可欠な機能です。さらに gRPC は、現在ほとんどのブロックチェーンプラットフォームで使われている従来の JSON RPC 呼び出しと比べて、より効率的で正確であるなど、開発者に役立つ追加機能をもたらします。

もちろん、ここで「gRPC がそれほど優れているなら、なぜ他のプラットフォームは使わないのか」という疑問が生じます。簡単に答えると、通常 gRPC の構築にはデータをエンコード、デコードする追加作業が必要だからです。しかし Forge SDK は、その作業をすべて代行します。私たちは gRPC が開発者にとって最良の選択肢だと考えています。Forge を使えば、各 gRPC 呼び出しにパラメーターを渡すことだけに集中し、内部の煩雑さを気にせず gRPC のあらゆるメリットを活用できます。Forge SDK にお任せください。

GraphQL

gRPC がバックエンドサービスの構築に適している一方、GraphQL はフロントエンドやモバイルからのアクセスを補完するのに最適です。Forge API をモバイルやウェブのユーザーに提供したい場合、GraphQL は要件に応える優れたソリューションです。Forge のすべてはプラグイン可能であり、ワークフローに適したツールを自由に使用できます。

GraphQL は Facebook と結び付けて語られることが多いものの、API のためのオープンソースのデータクエリおよび操作言語であり、既存データを使ってクエリを実行するためのランタイムでもあります。クライアントが必要なデータの構造を定義でき、サーバーからまったく同じ構造のデータが返されるため、ウェブ API の開発に効率的で強力かつ柔軟なアプローチを提供します。

そのため、過剰に大量のデータが返されることはありません。クライアントの視点では、GraphQL API はより強力で安全です。

Forge で次のブロックチェーンプロジェクトを始めるには、Forge をインストールするだけです。皆さんが何を構築するのか、楽しみにしています。

このページに関わるもの

製品

  • Blocklet Server superseded

    blocklet をサブプロセスとしてホストしていたサーバー。その作業は ARC で続いており、サブプロセスによるホスティングという方式は引き継がれません。

  • Forge sunset

    ノード、データ層、クライアントを別々に組み立てずにチェーンアプリケーションを構築するための SDK とツールチェーン。これが後の ArcBlock Chain になりました。

用語

  • Dapp

    重要な状態が単一の運営者のデータベースだけに存在しないアプリケーション。何をもって分散とするかはプロジェクトごとに大きく異なるため、有用な問いは「どの部分が外部の人に検証できるか」です。

  • ブロックチェーン

    記録を暗号学的に結び付け、共通の検証・合意形成ルールに従って取引履歴を確定する分散台帳。