2016-11-30 9 views
0

提供された文字列が有効なIPFSかIPNSパスかどうかをチェックしたいですか?例えば指定された文字列をチェックするには、有効なIPFSまたはIPNSパスがありますか?

私は:

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

これは、プログラム内で停止しますが、何も返しませんので、私はハッシュが有効であるかを特定知らずに待機する必要があります。

私は:https://github.com/xicombd/is-ipfsを使用していますが、機能に与えている無効なハッシュ文字列はtrueを返します。したがって、私の側では正しく動作しません。

私は、ipfs cat valid-hashの結果を返すようにIPFSのためのしきい値としてN-秒待っipfs ls valid-hashが、ipfs cat valid-hashまたはipfs ls valid-hashの結果がに頼ることは信頼できるされていない、N-秒より長くかかる場合があります。可能性があり例えば

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

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

あなたの貴重な時間と助けをいただき、ありがとうございます。

答えて

0

ライブラリは構文レベルでハッシュの妥当性を検証するだけです(Qmで始まりますか?予想される長さですか?)が、これを使用してファイルをチェックすることはできません。ハッシュ。

実際、ある特定のハッシュを使用してファイルを取得することはできないと主張するのは技術的に実現可能ではないと思います。

HTTPについて考えるのと同じ方法でIPFSについて考えてみましょう。いくつかの理由でHTTP要求が完了するのに数分かかる場合もありますが、接続しようとしているIP +ポートがどこにもリードしていないことを意味します。あなたのブラウザまたはアプリケーションは、永遠に待たないように任意の時間後にタイムアウトすることを決めますが、特定のHTTPアドレス/ IPFSハッシュを使用して何も到達できないという科学的証明はできません。

関連する問題