I wonder if you could marry BitTorrent to the system. Use that protocol and framework (ported to Smalltalk of course) for handling all the actual seeding, transfer, etc. and use the MCP2PRepository system to act as the torrent trackers. Basically, anyone 2 or more people running MCP2PRepository together become one "tracker", sharing their torrent information to all other interested parties. When someone wants to get a package from the repository the system generates the required torrent info and then starts up the SqueakTorrent subsystem to do the actual work.
Caveat: I am new to Squeak and know nothing about Monticello. Just seems like you could leverage a lot of work and understanding from the BT world to get you over the issues outlined below.
joe
On Feb 23, 2005, at 4:13 PM, Cees de Groot wrote:
Ok, the P2P chat thing works, a nice UI is left as an exercise for the interested reader, on to a next proof-of-concept.
Without doing formal coverage analysis, my gut feeling is that the P2P chat application hits most of the P2P framework. It looks like it works, so it's time to move to more interesting stuff that builds on this.
So, the next project is going to be hard. Really hard. Well... compared with the stuff I cobbled up so far. I've declared myself too stupid to do it all by myself (or too lazy, you choose) so I need your help.
The idea is to write an MCRepository backend on top of this. You create a MCP2PRepository, point to a (shadow/cache) file storage area, and from that point on everything you put there is accessible by everyone else who has added an MCP2PRepository to his/her image.
'accessible' is one thing, but managing flood searches, ensuring timely propagation, caching on intermediate nodes(?), reliable transfer of larger datagrams over the network (it *should* work in theory, right now...), a workable interface that accepts that opening such a repository will involve a lot of asynchronous updates, ...
You see, enough juicy stuff to sink your teeth into :)
I'm off to bed now. If you're interested, let it sink in, and start harassing me with questions on the current architecture if you need to have more info to solve these little puzzles.
(did I mention authentication etcetera?)
G'night,
Cees