ネットワーク内のピアノードが一意の「ネットワークチャネル」(またはその他の形式の半秘密識別子) を決定するための共通または確立されたアルゴリズムはありますか?
私が働いている環境はSecondLifeです。同じ種類のオブジェクトの他の既存のネットワークに干渉することなく、ネットワークを形成できるようにする「チャネル」番号に同意する多くの同一のピアスクリプトオブジェクトを取得する方法を見つけようとしています。
すべてのオブジェクトはほぼ同時にインスタンス化され、(共通の) システム時間にアクセスできます。
私が考えたアプローチ:
インスタンス化の時間ベース。チャネルは UNIX 時間から (md5 によって) 導出されます。問題は「ほぼ同時期」の部分。それらは、新しい秒のカスプでインスタンス化される場合があります。
ランダム待機。オブジェクトをランダムに待機させ、最初にウェイクするオブジェクトによって決定された (ランダムに生成された) チャネル番号をアナウンスします。問題は、システムの時間粒度が低く、アナウンスが処理される前に複数のオブジェクトが起動する可能性があることです。
1 と 2 を組み合わせます。ランダムな量を待った後に高解像度のタイムスタンプをアナウンスし、アナウンスされた最も低いタイムスタンプからチャネルを導き出します。
これは、私が考えていたよりも賢い人々でなければなりません。これを行うより良い方法はありますか?