Decentralized Web Node (DWN) SDK https://github.com/TBD54566975/dwn-sdk-js

github.com

DWA SDKというのがある(web3.jsみたいなもの?) で言っていたものがあったので確認した。

プロジェクトのステータス的にはSDKの仕様を決めるためにテストから書いていっているような状態。7月にv1.0にする予定らしい。

仕様というかプロトコルとかペイロードの中身の詳細とかの作業に今はいるようだ。

IPFSの人達が手動する multiformat の共通仕様にのっとったメッセージングを実現する。

ethereum smart contractでいうとABIのレイヤーを想像していて、DWNが他のNodeと交換するメッセージの中にCID形式でシリアリアズしたデータにdid:jack... みたいな識別子が入っている。

      // 「aliceがプレイリストに楽曲を追加するための権限を要求」みたいなコンテキストだと思う
      const msg = {
        'descriptor': {
          'ability': {
            'description' : 'some description',
            'method'      : 'CollectionsWrite',
            'schema'      : 'https://schema.org/MusicPlaylist'
          },
          'method'    : 'PermissionsRequest' as const,
          'objectId'  : '03754d75-c6b9-4fdd-891f-7eb2ad4bbd21',
          'requester' : 'did:jank:alice'
        },
        'attestation': {
          'payload'   : 'farts',
          'protected' : 'farts',
          'signature' : 'farts'
        }
      };
      
      verifyMessageSignature(msg, resolver)

ssi-sdk というのもリンクされていたがこっちはあまり理解していない。DWN SDKがブラウザで動かすのを考えると、SSI SDKはサーバーで動かすものっぽいけど。