1

私は現在、YouTube と同様に機能するがストレージに IPFS のみを使用する Web サイトのバックエンドに取り組んでいます。つまり、サイトにビデオを「アップロード」したい場合は、既に IPFS ネットワーク上にある必要があります。実際の機能は何よりもインデックスですが、それは私が取り組みたかったものでした。

私が取り組んでいるセクションは、その特定のコンテンツのプロバイダーがまだネットワーク上に存在することを確認することによって、CID ハッシュの整合性を検証することを目的としています。存在しない場合、CID と関連する情報はデータベースから削除されますが、現在、関数を使用しようとすると問題が発生しipfs.dhs.findProvsます。

ここに私のコードの一部があります:

const ipfs = await IPFS.create({
  libp2p: { config: { dht: { enabled: true } } },
});
for (var i of integrityData) {
  let cid = new CID(i.CID);
  console.log(cid);
  let providers = ipfs.dht.findProvs(cid, { numProviders: 2 });
  for await (const provider of providers) {
    console.log(provider);
  }
}

エラーログ:

C:\Users\...\node_modules\libp2p-kad-dht\src\providers.js:202
      this._log('getProviders %s', cid.toBaseEncodedString())
                                       ^

TypeError: cid.toBaseEncodedString is not a function

私のコードをさらに説明すると、 for ループは、データベース内のすべての CID を照会した後、データベースから受け取った JSON コンテンツを繰り返しています。i.CID は正しい CID を文字列として返します。この文字列から CID オブジェクトを作成し、関数 here に渡しますipfs.dht.findProvs(cid, { numProviders: 2 });。ネストされた for ループは、受信したオブジェクトを反復処理するためにありますが、同じエラーが発生し続けるため、その段階には到達していません。

4

0 に答える 0