Lambdaカクテル

Common LISPが好きなWeb屋さんです 自宅サーバやフロントエンドもできます

p2p

ScalaでAkka ZeroMQ Extensionを使う(インストール、Pub-Sub篇)

便利なアクターフレームワークAkka*1でもZeroMQが使えるようなので、ネットに散らばっている情報を組み合わせながら実装してみた。一筋縄ではいかなかったので、自分がつまづいた箇所などを後学のためにメモしておこうと思う。Akka ZeroMQ Extensionに関する…

Gitによる分散バージョン管理手法を掲示板分散問題に適用する

前からほそぼそとP2P掲示板を開発していて、いろいろな実装上の問題があったので難儀していたけれど、解決法を見付けたので記録する。 要約 従来の分散型掲示板では、書き込みの内容の同期が困難であるという問題があった Gitをはじめとする分散バージョン管…

既存のP2P掲示板のトポロジーへの疑問

P2P

今現在ではP2P2chのノードのトポロジーは完全平等に設計されている。 しかし完全に平等な動作にした結果として、スレッドの更新の伝播などブロードキャスト的な動作が遅くなる問題が発生するだろうと思うし、利用者がそれに満足する自信は、正直のところ無い…

Akka-remoteでNAT越え

Akka-remoteを利用して、NATを越えたメッセージングを実現するための方法。 Akka-remoteにおいてホスト名を指定するakka.remote.netty.tcp.hostnameには、マシンが認識する名前であるプライベートアドレスもしくはFQDNしか指定することができず、グローバル…

Javaで作るP2Pアプリケーション

こんにちは。結局Javaでの開発に変更することになりました。Javaでの開発は(非常に記法が冗長になる点を除き)着々と進み、遂にノード間の接続ができるようになりました。ここまで来るのに非常に時間がかかりましたが、主たる原因は、 Stringの比較にString…

Chordアルゴリズムで作るP2Pアプリケーション前編

さて、P2Pで何かやろうと思い立ちScalaでコーディングし始めて一週間、さらにsbtの使い方がまるでわからずEclipseのWorkspaceを完全に破壊しつくし、それからコードを復旧させJavaに臓器不全のまま移植したところで、混雑するバギーなコードに頭を悩ませなが…