1

指定された文字列が有効な IPFS または IPNS パスであるかどうかを確認したい。

たとえば、私がするとき:

ipfs ls <invalid-hash>
//waits keep searching ... 

これは何も返さず、プログラム内で停止するため、指定されたハッシュが有効かどうかわからないまま待つ必要があります。

私は使用しました: https://github.com/xicombd/is-ipfsしかし、関数に与えている無効なハッシュ文字列が true を返すため、私の側では適切に機能しません。何かアドバイスはありますか?

ipfs が の結果を返すためのしきい値として N 秒待つこともできますがipfs cat valid-hash、またはipfs ls valid-hashの結果はN 秒よりも長くかかる場合があり、信頼できるものではありません。ipfs cat valid-hashipfs ls valid-hash

例:(ノードアプリ内でコマンドを実行しています。)

[$] node 
const isIPFS = require('is-ipfs')
> isIPFS.multihash('QmYooooooooooooooooooooooooooooooooaoooooooooo')
true //returns true but it is an invalid ipfs hash, should have returned false.

貴重なお時間とご協力ありがとうございました。

4

1 に答える 1

2

ライブラリは構文レベルでハッシュの有効性を検証するだけのようisIPFSです (それは Qm で始まりますか? 予想される長さですか?) が、このハッシュを使用してファイルをアドレス指定できるかどうかはチェックしません。

実際、特定のハッシュを使用してファイルを取得できないと主張することは、技術的に実行可能ではないと思います。答えを N 秒間待つことは別として。

IPFS については、HTTP について考えるのと同じように考えてください。何らかの理由で HTTP リクエストが完了するまでに数分かかることがありますが、接続しようとしている IP+ ポートがどこにも通じないという意味ではありません。ブラウザまたはアプリは、永遠に待機しないように、任意の時間が経過するとタイムアウトすることを決定しますが、特定の HTTP アドレス/IPFS ハッシュを使用して何も到達できないという科学的証拠はありません。

于 2017-08-23T07:26:16.620 に答える