📝

Mirrorの記事をArweaveから取得する方法

2023/06/05に公開

Mirrorの記事はすべてArweave上に保存されています。

取得方法

1 - Mirror投稿URLの末尾からコンテンツダイジェストを取得

https://mirror.xyz/caaaption.eth/M3QIIX8YCL0sRFpf2TTVD_h9o2AhoXbFPUVQcWuxeT8の場合ダイジェストはM3QIIX8YCL0sRFpf2TTVD_h9o2AhoXbFPUVQcWuxeT8です。

2 - コンテンツダイジェストを元にArweageのGraphQLにリクエスト

https://arweave.net/graphql

query {
  transactions(
    tags: [
      {
        name:"App-Name",
        values:["MirrorXYZ"],
      },
      {
        name:"Original-Content-Digest",
        values:["M3QIIX8YCL0sRFpf2TTVD_h9o2AhoXbFPUVQcWuxeT8"],
      },
    ],
    sort:HEIGHT_DESC,
    first:1,
  ) {
    edges {
      node {
        id
      }
    }
  }
}
  • App-Name:MirrorXYZはMirror上のすべての投稿にスコープするように指示する。
  • Origin-Content-Digest:M3QIIX8YCL0sRFpf2TTVD_h9o2AhoXbFPUVQcWuxeT8は要求されたコンテンツダイジェストに一致するすべてのトランザクションを返すよう指示する。
  • デフォルトではArweaveに投稿されたすべての更新情報をアップロードしているので、このクエリはリストを返します。Arweaveに送信された最新の更新を取得するには、ブロックの高さで結果をソートし、最新のトランザクションを取得する。

3 - トランザクションIDから記事の内容を取得

2で取得したトランザクションIDを使って、arweave.net/{TRANSACTION_ID}にアクセスすることで、記事の内容を取得することが出来ます。

参照

Discussion