Skip to content

Nautilus による公開(パブリッシュ)

Pontus-X の分散型データエコノミーでは、データ・アプリケーション・サービスを公開することが、エコシステムを豊かにするうえで欠かせません。自らのアセットを利用可能にすることで、ネットワーク全体の価値と有用性に貢献できます。本章では、アセットの作成と設定を簡潔にする Nautilus のインターフェースを用いた公開の手順を解説します。

公開とは

Pontus-X における公開とは、アセットを標準化された方法で記述し、カタログに表示され、マーケットプレイスで提供され、他者に販売できる状態にすることです。分散型識別子ドキュメント(DDO)の構築は複雑になりがちですが、Nautilus は AssetBuilderServiceBuilder という 2 つの主要なビルダークラスで、この作業を簡潔にします。

AssetBuilder でアセットのメタデータを作る

Nautilus の AssetBuilder クラスは、アセットのメタデータの構築を支援します。次の手順でメタデータを設定し、構築します。

  1. セットアップと初期化: まず AssetBuilder のインスタンスを作成します。

    import { AssetBuilder } from '@deltadao/nautilus'
     
    const assetBuilder = new AssetBuilder()
  2. メタデータを設定する: ビルダーパターンを用いて、種別・名称・説明・作成者といったアセットのメタデータを設定します。

    assetBuilder
      .setType('dataset')
      .setName('My New Asset')
      .setDescription('This is a publish asset building test using Nautilus')
      .setAuthor('Company Ltd.')
  3. アセットを構築する: build() メソッドを呼び出して設定を確定します。公開できる状態に正しく構成されたアセットが返ります。

    const asset = assetBuilder.build()

ServiceBuilder でサービスを定義する

ここまででアセットにはメタデータが備わりましたが、実際に機能させるにはサービスの定義が必要です。ServiceBuilder クラスを使うと、アセットへのアクセス方法や操作方法を指定できます。

  1. ServiceBuilder を用意する: 適切なサービス種別とファイル種別を指定して ServiceBuilder を初期化します。

    import { UrlFile, FileTypes, ServiceTypes, ServiceBuilder } from '@deltadao/nautilus'
     
    const serviceBuilder = new ServiceBuilder({
      serviceType: ServiceTypes.ACCESS,
      fileType: FileTypes.URL
    })
  2. ファイルを宣言する: 公開したいファイルを定義します。この例では、HTTP の GET リクエストでアセットにアクセスします。

    const urlFile = {
      type: 'url',
      url: 'https://link.to/my/asset',
      method: 'GET'
    }
  1. メタデータとファイルを追加してサービスを構築する: ビルダーパターンで必要なメタデータとファイルを追加し、サービスを構築します。

    const service = serviceBuilder
      .setServiceEndpoint('https://provider.dev.pontus-x.eu')
      .setTimeout(0)
      .addFile(urlFile)
      .setPricing({
        type: 'free'
      })
      .build()

アセットを公開する

アセットのメタデータとサービスを組み合わせ、Nautilus のインターフェースで公開します。

  1. アセットにサービスを追加する: 構成済みのサービスをアセットに追加します。

    const assetWithService = assetBuilder.addService(service).build()
  2. アセットを公開する: nautilus.publish 関数を使い、選択したネットワーク上にアセットを記録します。

    const result = await nautilus.publish(assetWithService)

サンプルコード

Nautilus を使った公開の一連の流れを示す完全な例です。

import { Nautilus, AssetBuilder, ServiceBuilder, UrlFile, FileTypes, ServiceTypes } from '@deltadao/nautilus'
import { providers, Wallet } from 'ethers'
 
const provider = new providers.JsonRpcProvider('https://rpc.dev.pontux-x.eu')
const signer = new Wallet('0x...', provider)
 
// Nautilus インスタンスを作成する
const nautilus = await Nautilus.create(signer)
 
// AssetBuilder を用意する
const assetBuilder = new AssetBuilder()
  .setType('dataset')
  .setName('My New Asset')
  .setDescription('This is a publish asset building test using Nautilus')
  .setAuthor('Company Ltd.')
 
// ServiceBuilder を用意する
const serviceBuilder = new ServiceBuilder({
  serviceType: ServiceTypes.ACCESS,
  fileType: FileTypes.URL
})
 
const urlFile = {
  type: 'url',
  url: 'https://link.to/my/asset',
  method: 'GET'
}
 
const service = serviceBuilder
  .setServiceEndpoint('https://provider.dev.pontus-x.eu')
  .setTimeout(0)
  .addFile(urlFile)
  .setPricing({
    type: 'free'
  })
  .build()
 
// アセットにサービスを追加して構築する
const assetWithService = assetBuilder.addService(service).build()
 
// アセットを公開する
const result = await nautilus.publish(assetWithService)

さらに詳しく

詳細な情報と高度な設定については、次の資料を参照してください。

まとめ

Pontus-X エコシステムでのデータ・アプリケーション・サービスの公開は、Nautilus によって簡潔になり、分散技術に不慣れな方でも取り組めます。本ガイドの手順に従えば、アセットを効率よく公開し、データエコノミーに貢献し、Pontus-X エコシステムの力を最大限に活かせます。