Genkidama テスト版 (0.3.4) | 2009-06-27 05:57 |
以下の目的の為、GenkidamaのDHTネットワークとは関係のない所に集計サーバを置きたい。
新しいバージョンの通知、古すぎるバージョンの拒否などが管理出来るようにしたい。
UPnPが使えなかった場合、Genkidamaから自力でグローバルIPを取得する手段がないため。
Genkidama 0.2ではid:syuuのサーバで立ち上げたGenkidamaが決めうちで初期ノードになってるから、そのノード1つがこけるとGenkidamaネットワーク全体が使えなくなる。
そんなのナンセンスだと思うので、改善したい。 Winnyのような初期ノードリストという手段を取るには協力者が足りないので、この際Genkidamaユーザ=初期ノード掲載者にしてしまえ。
いろんな人に利用動向がどうなっているか聞かれるが、現状ではそれを知る術がない。
それではあまりに勿体ないよね、っていう話。
こういう情報が取れればそれをGenkidamaへフィードバックしていったり新たなサービスを作ったりも出来ると思うので、出来るだけ詳しくログを取りたい。
が、ユーザのプライパシーにも配慮しなきゃならない。
取り敢えず、アクセス履歴ではIPアドレス&ポートをハッシュ関数で処理して直接特定出来なくしてから記録すれば良いのではないか。
sourceforge.jpのWebホスティングへ置いたCGIでXMLRPCサーバを立てる。
データストアは同じくsourceforge.jpのMySQLを使用する。
使用言語はRuby。
version.check | バージョンチェック |
tcpPort.check(port) | ポート解放チェック |
onlineUsers.fetch(version) | オンラインユーザのリストを取得 |
onlineUsers.register(port, version) | オンラインユーザ登録 |
onlineUsers.unregister(port, version) | オンラインユーザ登録解除 |
onlineData.register(port, version, key) | オンラインデータ登録 |
onlineData.unregister(port, version, key) | オンラインデータ登録解除 |
globalIp.probe | グローバルIPを取得 |
nicoVideoAccessLog.append(port, version, videoId, accessMode, cacheUrl) | ニコニコ動画のアクセス履歴を記録 |
id | 主キー |
datetime | 日時 |
address | IPアドレス |
port | ポート番号 |
version | バージョン番号 |
id | 主キー |
datetime | 日時 |
hash | SHA1(IPアドレス:ポート番号) |
version | バージョン番号 |
key | キー |
id | 主キー |
datetime | 日時 |
hash | SHA1(IPアドレス:ポート番号) |
version | バージョン番号 |
status | ログイン、ログアウト |
id | 主キー |
datetime | 日時 |
hash | SHA1(IPアドレス:ポート番号) |
version | バージョン番号 |
key | キー |
status | add、remove |
id | 主キー |
datetime | 日時 |
node_hash | SHA1(IPアドレス:ポート番号) |
version | バージョン番号 |
video_id | ビデオID |
access_mode | アクセス種別(ローカル、DHT、本家) |
cache_url_hash | SHA1(キャッシュURL) |
[PageInfo]
LastUpdate: 2009-06-04 17:25:40, ModifiedBy: syuu
[License]
Creative Commons 2.1 Attribution
[Permissions]
view:all, edit:all, delete/config:all