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

ArcBlock Blocklet 入門

ArcBlock
ArcBlockBlockchainBlockletForgeForge Framework

Blocklet とは?

Blocklet は、開発者やコミュニティユーザーが ArcBlock プラットフォーム上でアプリケーションを構築するための再利用可能な構成要素です。最も基本的には、すぐに使えるコンポーネントやモジュール、ライブラリ、フロントエンドビューなどであり、dApp の開発を簡単に始められます。必要な Blocklet を選んですぐにインストールするだけで利用を開始できます。複数の Blocklet を容易に組み合わせ、より複雑なアプリケーションや dApp を構築できることも重要な特長です。

Blocklet は用途に応じてさまざまなパッケージとして提供されます。たとえば次のようなものがあります。

  • Forge を利用するブロックチェーンに接続済みの dApp を、開発者が数分で立ち上げられるスターターテンプレート
  • マイナーやコミュニティユーザーがインストールしてすぐに実行できる、フル機能の dApp
  • ビジネスロジックのオンチェーン処理を定義し、Forge を利用するチェーンへワンクリックでデプロイできるスマートコントラクト
  • ABT Blockchain Node を支援する Web コンポーネントまたはサービス
  • Azure、AWS、その他のクラウド向けサンプル
  • その他

Blocklet はまず、公式版、パートナー版、コミュニティ版の 3 種類で提供されます。

Blocklet Registry とは?

開発者が利用可能な Blocklet を簡単に見つけられるよう、ArcBlock とコミュニティ開発者が構築したすべての Blocklet は Blocklet.arcblock.io に掲載されています。このサイトは ArcBlock/blocklets をもとに構築されており、掲載された Blocklet を検索・閲覧し、わずか 1 つのコマンドで利用できます。このサイトを Blocklet Registry と呼びます。

Blocklet を定義するには?

Blocklet の作成には、いくつかの重要な情報が必要です。

❯ tree . -L 2
.
├── screenshots
│   ├── image1.png
│   ├── image2.jpg
│   └── image3.png
├── blocklet.md
├── blocklet.json
└── logo.svg

主要情報:blocklet.json

これは Blocklet を定義する主要ファイルで、次のフィールドを含めることができます。

javascript
{
  // Brief introduction to the blocklet
  "description": "A dApp starter that integrates forge-javascript-sdk and create-react-app",

  // Specify the logo file of the blocklet
  "logo": "logo.svg",

  // Can be starter|dapp|contract
  "group": "starter",

  // Can be primary|secondary|error
  "color": "primary",

  // provider information
  "provider": "ArcBlock",
  "documentation": "https://docs.arcblock.io",
  "support": "support@arcblock.io",
  "community": "https://gitter.im/arcblock/cummonity",

  // Charge settings
  "charging": {
    "price": 10,
    "receiver": "z1en6dudVmqsP1P2ZG1R8DdBZoYPnzw46T1",
  },

  // Can the blocklet be used with another blocklet?
  "composable": false,

  // Following fields can be inherited from package.json
  "name": "forge-react-starter",
  "version": "0.37.0",
  "author": "wangshijun <shijun@arcblock.io> https://github.com/wangshijun",
  "keywords": ["arcblock", "forge", "starter", "react", "javascript"],
  "homepage": "https://github.com/ArcBlock/forge-dapp-starters/tree/master/packages/forge-react-starter",
  "repository": {
    "type": "git",
    "url": "https://github.com/ArcBlock/forge-dapp-starters/tree/master/packages/forge-react-starter"
  },

  // Customize the install pipeline of the blocklet
  "hooks": {
    "pre-copy": "",
    "post-copy": "",
    "configure": "",
    "complete": ""
  },
  "install-scripts": {
    "dependency": ""
  }
}

主要情報:blocklet.md

Blocklet の詳細な紹介であり、利用を検討するユーザーに対して次の点を明確にします。

  • インストール後に Blocklet で何ができるか。グループから推測できる場合でも、簡潔な説明を添える価値があります
  • Blocklet を利用するための要件。ハードウェア、ソフトウェア、開発経験、スキルなど
  • Blocklet の利用時に想定される問題と、その解決方法

主要情報:logo.png

Blocklet のロゴです。有効な画像形式を利用できますが PNG を推奨します。Blocklet の詳細ページに表示されるため、200px x 200px の透過画像にしてください。

主要情報:screenshots

screenshots フォルダーには Blocklet の出力を示す画像を数点入れ、ユーザーが Blocklet の内容を簡単に理解できるようにします。

その他の情報

処理中に実行されるスクリプトなどが含まれます。

メタ情報の解決

package.json で定義されたフィールドとの重複を避けるため、一部のフィールドは blocklet.json から省略できます。ビルド処理によってこれらのフィールドは適切に統合されます。

Blocklet を作成するには?

forge blocklet:create で Blocklet の設定を初期化します。この機能は近日中に forge-cli でサポートされる予定です。

  • スターター Blocklet を作成するには?
  • dApp Blocklet を作成するには?
  • コントラクト Blocklet を作成するには?

Blocklet を公開するには?

  1. Blocklet を作成し、正しく動作することを確認します
  2. このリポジトリをフォークします
  3. 自分のリポジトリが含まれるように registry.yml を変更します
  4. このリポジトリにプルリクエストを送ります
  5. プルリクエストが承認されマージされると、Blocklet が公式 Registry に掲載されます

このページに関わるもの

製品

  • Forge sunset

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

用語

  • Blocklet

    Blocklet は ARC の deployable unit です。アプリケーションが宣言する content、configuration、runtime の要件を一緒に保ち、実行する単位を理解し管理しやすくします。

  • ブロックチェーン

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