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

ABT Node v1.2.0 正式リリース

王仕军(ArcBlock 高级工程师)
ABT NodeArcBlockBlocklet Server

著者: 王仕軍(ArcBlock シニアエンジニア)

239件のCommitと17回のマイナーバージョン更新を経て、より高機能で安定性と安全性に優れ、ユーザー体験も向上したABT Node v1.2.0を正式にリリースしました。ぜひアップグレードしてお試しください!

以前にABT Nodeを起動したことがある場合は、ABT Nodeの設定画面からアップグレードを確認するだけで最新版を利用できます。

ABT Node v1.2.0にはどのような機能や改善が含まれているのか、気になる方もいるでしょう。以下に主な変更点と改善点をご紹介します。

破壊的変更

ABT Node v1.2.0には、以下の破壊的変更が含まれています。

  • @abtnode/cliをインストールすると、abtnodeblockletという2つのグローバルコマンドラインツールが作成されます。前者はABT Nodeの管理、後者はBlockletの操作に使用します
  • abtnode deployblocklet deployに変更されました
  • abtnode bundleblocklet bundleに変更されました
  • abtnode blocklet:*blocklet *に変更されました
  • ABT NodeのデフォルトのBlocklet Registryは https://booster.registry.arcblock.io に変更されました。新しいRegistryはAWSのグローバルCDNアクセラレーションに対応し、ダウンロードが高速になりました

Blocklet Registry

Blockletの開発ワークフローを改善するため、分散型のBlocklet Registryを設計・開発しました。現在、すべての公式Blockletは公式Blocklet Registryで公開されています。新しいBlocklet Registryには、すでに以下の機能があります:

  • Blockletのメタ情報、公開バージョン情報、開発者情報、ソースコードアーカイブを検証
  • 自身がホストするすべてのBlocklet情報を保存し、APIとして提供することで、ABT Nodeからの検索とインストールを容易に

今後もBlocklet Registryの改善を続け、経済モデルにおける利益分配や、Blocklet Registry間のPushとPullに対応していきます。

チーム管理モジュール

新しいABT Nodeには、より充実した汎用的なチーム管理機能が含まれています:

  • 招待リンクを作成するだけで他のユーザーを招待でき、招待されたユーザーはABT Walletを使って参加可能
  • 無効化、有効化、ロール変更、ログイン時刻の記録など、より詳細なメンバー管理機能
  • BlockletにもABT Nodeと同等のチーム管理機能がデータを分離した形で備わり、独自に開発する必要なし

権限管理モジュール

チーム管理に加え、ABT Nodeのセキュリティを高めるため、ロールベースのアクセス制御も追加しました。これは、複数人でひとつのABT Nodeを管理・運用する場合に特に適しています。

この機能はBlockletでも共通して利用できます。つまり、ABT Node上で動作するBlockletには、独自の権限管理モジュールが標準で備わります。

ABT Nodeのデフォルトの権限とセキュリティポリシーは以下のとおりです:

Blockletサービス

チーム管理と権限管理を基盤として、最初のBlockletサービスであるユーザー認証・認可サービス(Auth Service)を開発しました。これにより、Blocklet開発時にユーザーログインや認可などの重複作業を考慮する必要がなくなります。この機能は2つの部分で構成されています:

  • ユーザー認証:DIDログインでユーザーの本人確認を行います。Blockletごとにユーザーデータを完全に分離し、チーム機能を使ってBlocklet自身のユーザーを管理できます
  • ユーザー認可:権限管理モジュールでユーザー権限を管理・検証し、より安全なアクセス制御を実現します

もちろん、すべての新機能は私たち自身でも実際に利用しています。現在、ログインと認可を必要とする公式Blockletは、すべてABT Nodeが提供するサービスに移行済みです。

Auth Serviceを有効にしたBlockletをインストールすると、以下のように表示されます:

Auth Serviceを有効にしたBlockletを実際に試したい場合は、Auth DemoまたはKitchen Sinkをインストールしてください。ご自身のBlockletでAuth Serviceを使用したい場合は、近日公開予定のドキュメントをお待ちください。

今後は、暗号資産による決済など、さらに多くのBlockletサービスを設計・提供し、Blocklet開発を簡素化することで、ABT Nodeを真のDAppオペレーティングシステムへと進化させていきます。

その他の注目すべき改善

上記の主要機能に加え、以下の小規模な改善もぜひご確認ください:

  • Web Wallet対応:新しいABT NodeはABT Wallet Web版とシームレスに連携し、ノードの宣言やログインが可能
  • ファイルシステムからのBlockletインストールに対応:Blocklet Registryからのインストールを補完する機能として、URLからのインストールがhttp/https/fileの3つのプロトコルに対応
  • 待機中のインストールタスクをキャンセル可能:以前のバージョンではダウンロード中のインストールのみキャンセル可能
  • インストールおよび起動キューの並行処理数を動的に調整:新しいABT Nodeは、ホストマシンの性能に応じてBlockletのインストールと起動の2つのタスクキューの並行処理数を動的に調整
  • Blocklet Requirementsに対応:開発者はblocklet.ymlで、ABT Nodeのバージョン、OS、CPUアーキテクチャなど、Blockletの実行環境を宣言可能
  • Routing Engineのログを閲覧可能:ルーティングエンジンを通過するトラフィックとログを確認可能

ソフトウェア品質の向上

テクニカルプレビュー版からv1.2.0までに、ABT Nodeは11万行以上のコードと20以上のサブモジュールを持つプロジェクトへ成長しました。slocによる集計結果は以下のとおりです:

ABT Nodeの信頼性と安定性を確保するため、CIプロセスにコードカバレッジの集計を追加し、機能追加でもリファクタリングでも、すべてのPRで全体のコードカバレッジを低下させないことを要件としました。2か月の間に、プロジェクト全体のコードカバレッジは25.2%から61.1%に向上し、現在も改善が続いています。

以下はCodeCovにおける直近90日間のカバレッジ推移です:

さらに、エンジニアの効率向上のため、CIプロセスをTravisからGithub Actionsへ全面的に移行しました。後者のほうが実行速度に優れているためです。

ぜひお試しいただき、ご意見をお寄せください

以上が今回の内容です。新バージョンをぜひお試しいただき、こちらからご意見をお寄せください!

このページに関わるもの

製品

  • Blocklet Server superseded

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