ABT Node 1.3.0 の新機能概要

著者: 王仕軍(ArcBlock シニアエンジニア)
ABT Node 1.3.0 の新機能概要
約2か月にわたる改良、159回のコミット、14回のマイナーバージョン更新を経て、2021年4月20日に ABT Node 1.3.0 を正式リリースしました。
最新版を試すには、npm install -g @abtnode/cli を実行して入手できます。
ABT Node 1.3.0 には、次の重要な新機能が含まれています:
- 複数のマーケットプレイスに対応:
Multiple Marketplace - 複合型 Blocklet に対応:
Blocklet Component - 有料 Blocklet に対応:
Paid Blocklet
上記の新機能を詳しく紹介する前に、たとえを使って本記事に登場する各要素の役割を説明します:
- ABT Node:一人ひとりが所有するスマートフォンのようなものです。ただし、ABT Node にインストールされるのは Blocklet です。スマートフォンが個人のものであるように、ABT Node の所有者も自身のデータを完全に管理できます
- Blocklet:各スマートフォンにインストールされるアプリのようなものです。ABT Node が提供する DID ユーザー認証やブロックチェーン決済サービスを基盤に、開発者は強力でありながら十分に分散化されたアプリケーションを構築できます
- Marketplace:Apple の App Store のようなアプリストアです。ユーザーが Blocklet を検索、ダウンロード、インストールするのに役立ち、Marketplace 自体は Blocklet に Hosting サービスを提供することでマイニング報酬を得ます。Marketplace 自体も Blocklet なので、容易に分散化できます
- ABT Wallet:ユーザーによるデジタル ID とデジタル資産の管理を支援する分散型ソフトウェアです。ここでいうデジタル資産には、トークンや NFT(チケット、クーポン、証明書、暗号アート)が含まれます
複数マーケットプレイスへの対応
ABT Node 1.3.0 では、複数のマーケットプレイスを追加し、自由に切り替えられます。これにより、マーケットプレイスの分散化と、ArcBlock のリソースマイナーやコンポーネントマイナーによる貢献を技術的に支えます。ABT Node は、今後のアップグレードやほかの Blocklet リソースの読み込みに備えて、すべての Blocklet のインストール元をインテリジェントに記憶します。
また、開発者が ABT Node と Blocklet で何ができるかをすぐに把握できるよう、すべての Demo、Example Blocklet を専用のマーケットプレイスで公開しました。
現在、ABT Node には次の2つのマーケットプレイスが組み込まれています:
- 公式マーケットプレイス:https://registry.arcblock.io
- デモやサンプルを公開する専用マーケットプレイス:https://dev.registry.arcblock.io
マーケットプレイスの追加、編集、切り替えは次の図のとおりです:

複合型 Blocklet への対応
Blocklet Component のサポートにより、開発者はレゴブロックのように再利用可能なコンポーネントを組み合わせてアプリケーションを作り、それをひとまとまりとして公開してユーザーにサービスを提供できます。この柔軟な組み合わせにより、次のことが可能になります:
- 一部の Blocklet は非常に小さく専門性の高いものにでき、多くの場合はほかの Blocklet に埋め込んで利用できます。たとえば Crypto ベースの投げ銭 Blocklet は、従来のソフトウェア開発でいう Library に相当します
- ほかの Blocklet を組み合わせて、分散型ソーシャルアプリや DAO アプリなど、異なるコンポーネントをパッケージ化した総合ソリューションを作ることに長けたユーザーもいます
- Blocklet Component が購入されると、Blocklet の作者、ソリューションの組み立て・提供者、マーケットプレイスなど、プロセスに関わるすべての参加者が収益を分配されます
Dev マーケットプレイスでは、インストールしてテストできる Component Demo Blocklet を提供しています:

Component Demo をインストールすると、Blocklet の詳細ページで内包されるコンポーネントを確認できます:

Component Demo の設定ページでは、すべてのコンポーネントを個別に設定することもできます:

Component Demo を起動すると、実際には2つのアプリケーションが組み込まれていることが分かります:

Component Demo 以外にも、このような複合型の Production Ready な Blocklet はあるのでしょうか?あります。公式マーケットプレイスにある次の Blocklet は複合型です(この2つの Blocklet は、チェーンの API 部分と標準化された Block Explorer を組み合わせています。今後は資産チェーンのドキュメントなど、さらに多くのコンテンツを組み合わせる予定です):

有料 Blocklet への対応
開発者がユーザーに価値と利便性をもたらす Blocklet を提供できるなら、その対価としてトークン収入を得るのは理にかなっています。
ABT Node 1.3.0 が対応する Paid Blocklet は、まさにこの場面のために用意されています。ユーザーが有料の Blocklet を購入してインストールする場合、ABT Node 内で ABT Wallet を使うだけで完了し、取引全体は資産チェーン上でリアルタイムに決済されます。
エコシステムの参加者を後押しするため、開発者は Blocklet の価格と収益分配方針を自身で決められ、マーケットプレイスは運営コストに応じて各 Blocklet を掲載するかどうかを判断できます。エンドユーザーによる購入は NFT の取得という形で行われ、その NFT はさまざまな場面で購入証明として利用できます。
Paid Blocklet を試すには、次の図のように Dev マーケットプレイスで Payment Demo Blocklet を見つけてください:

その後、購入を完了し、自分のノードにインストールします(現在の購入にはテストトークンを使用します。こちらで受け取れます)。

新バージョンのノードにおけるその他の変更
上記の重要な機能に加え、ABT Node 1.3.0 には、ABT Node の安定性、高性能、使いやすさを確保するための多くの細かな更新と改善も含まれています。たとえば:
Dashboard
- マーケットプレイスページで、異なるマーケットの追加、編集、削除、切り替えに対応
- マーケットプレイスページで Blocklet の検索と絞り込みに対応
- Blocklet の詳細ページに最新バージョン番号と直近の公開日時を表示
- Blocklet の詳細ページに Blocklet の価格と収益分配情報を表示
- 初期化画面で、開発者ツールを使用したカスタム Web Wallet アドレスの設定に対応
- Router ページで、特定サイトのプライマリドメインの変更に対応
- ABT Wallet でノードを管理しやすいよう、大部分のページのレスポンシブ表示を改善
Core
ABT Node のコアにも、性能と安定性を向上させるための多くの改善を施しました
- Blocklet Component のインストール、設定、アップグレードに対応
- ノードの初期化時に、ノード所有権 NFT の要求と検証に対応
- 安全性を確保するため、Blocklet のダウンロードとインストール前に Blocklet のメタ情報を厳格に検証
- Blocklet Service プロセスでリバースプロキシのエラーが発生した場合を適切に処理
/.proxy/{resource}を使用して/{did}/{resource}に代わる形で Blocklet の静的リソースを返却
Router
ルーティングエンジンの信頼性と性能も大幅に改善されました:
- Blocklet Component の複雑な組み合わせにルーティングで対応
- 実行モードに応じて起動するプロセス数を自動的に決定し、最適な性能を実現
- リバースプロキシ時に適切なリクエストヘッダーを設定し、各種サービスへの影響を回避
- より完全で安定し、豊富な実運用で検証された CORS 対応
CLI
ABT Node CLI は 1.2.0 以降、2つのコマンドラインツールに分割されました。それぞれの改善点は次のとおりです:
abtnode initが複合型 Blocklet を正しく処理blocklet devが開発時に複合型 Blocklet の依存関係を自動的にインストールして起動blocklet bundleが複数の Blocklet を含むリポジトリでのバンドルに対応blocklet publishが公開前に、有料 Blocklet の NFT Factory を資産チェーン上に自動作成blocklet publishが公開前に、開発者の秘密鍵で Blocklet のメタ情報に署名
Blocklets
1.3.0 の開発中に、開発に役立つ次の Blocklet を用意しました:
- Component Demo: 開発者による複合型 Blocklet のテストを支援
- Payment Demo: 開発者による有料 Blocklet のテストと体験を支援
- NFT Store: NFT を販売するあらゆる Blocklet に組み込める汎用 NFT ストアコンポーネント
- Blocklet Registry: 最新版には NFT Store と動的な Blocklet リストおよび詳細ページを搭載
- ABT Node Launcher: 再設計された Launcher により、ABT Wallet だけで ABT Node の購入、起動、管理が可能
- OCAP Playground: 開発者が新しい資産チェーンと ABT Wallet の機能を理解するのに役立つ Blocklet
Blocklet Meta Spec
上記の機能に加え、Blocklet Meta Spec も拡張しました
- 開発者は
chargingフィールドで Blocklet の価格設定方針をカスタマイズ可能 - Blocklet の公開・配布ワークフローでは、
signaturesフィールドによって情報が改ざんされていないことを保証
One More Thing
現在、Node.js フルスタックエンジニアを積極採用中です。私たちの取り組みに興味がある方は、ぜひ履歴書を shijun@arcblock.io までお送りください。
このページに関わるもの
製品
-
Blocklet Server
superseded
blocklet をサブプロセスとしてホストしていたサーバー。その作業は ARC で続いており、サブプロセスによるホスティングという方式は引き継がれません。