I'd like to make a simple distributed peer2peer sharing app in Pharo.
Is Zinc WebSockets the way to go? Has anything similar been done already in Smalltalk? Any ideas on how to keep the clients synchronized? Is it worth looking at how OpenCobalt/OpenQwaq does it, (or are they very advanced/complex/hard to understand)? tanks in advance. |
Hi Peter,
This is similar to what I was thinking of delving into, although I was thinking differently than file-sharing. I was thinking more modified blockchain sharing. My plans are to revive an old project of mine: http://www.squeaksource.com/squeakelib/, which depends on Cryptography. I am interested in implementing NIO as well. This is all infrastructure stuff, layers 4, 5 and 6. WebSockets may be all you need. As any flow system needs a control layer, add a couple of layers above the application layer: market/cloud and meta layers, used to contain apps and specify the peer2peer graph and formats. There's some other stuff, too. I don't know if this interests you. thanks, Robert On 10/12/2015 10:57 AM, Peter H. Meadows via Pharo-users wrote: |
CONTENTS DELETED
The author has deleted this message.
|
On 12-10-15 19:27, Juraj Kubelka wrote:
> I am not sure if the objective is the same, but Evan and I are working on peer2peer solution for Pharo. > We have also implemented Logoot algorithm for collaborative text editing. Nice. We'll be able to improve our development flow a lot by reducing synchronization delay. Stephan |
In reply to this post by Juraj Kubelka-5
Hello,
Just to follow up on Juraj's reply: Trantor is a framework for distributed applications. The basic idea is that you can establish a p2p network between various images, and then build applications using a set of specialized distributed collections that can be plugged into the p2p network and synchronized between hosts. The example Todo application is just a simple spec gui that writes items to a basic distributed collection. That collection is added to a running Trantor host in the image, and changes are broadcast to peer hosts in other images. The project is in the early stages, but it's definitely ready for prototypes and personal apps. I have been using Todo to synchronize a grocery list across all of the computers in my house (computers can join and leave the network and stay in sync). If anyone thinks they may have a use case for such a framework, please do get in touch. A lot of infrastructural decisions have yet to be made, and more use cases would really help ensure the final product is as broadly useful as possible. Cheers, Evan |
In reply to this post by Pharo Smalltalk Users mailing list
I know that in squeak there was the project of Cees de Groot
Tric on Squeaksource.I can send you the files I got. |
CONTENTS DELETED
The author has deleted this message.
|
yes
Le 13/10/15 23:27, Juraj Kubelka a écrit : > Do you mean this one: http://www.squeaksource.com/DGV.html. I will check it out. > > Thanks. > Juraj > >> On Oct 13, 2015, at 18:04, stepharo <[hidden email]> wrote: >> >> I know that in squeak there was the project of Cees de Groot >> Tric on Squeaksource.I can send you the files I got. >> >> > > |
In reply to this post by stepharo
I remember looking at the project you mention when I was first researching p2p in Pharo. I thought the project description sounded very interesting (Trantor was actually begun with a similar use-case in mind), but alas I was unable to find any information on it outside of the code. If anyone knows more about what happened to that project, I'd be very curious.
From a technical standpoint, as best I could tell from looking through said code, DVG was an application that was designed to share one specific type of immutable data across very adverse network conditions. All of the engineering seemed to have gone into bypassing firewalls with UDP hole-punching, routing messages around complex network topologies, etc. Trantor, by contrast, is best thought of as a framework for easily making application data distributable, and a scheme for distributing it efficiently over a network. The details of the network topology are somewhat orthogonal, and there are many options for where to take it in the future. The actual socket code in Trantor right now is a simple TCP direct connection. At some point I'd like to get some of the networking capabilities that DVG has (such as the UDP hole-punching), and I think I saw a project that tried to extract the networking part from the DVG application, but it seems to be mostly a specific application, and not a general scheme for designing arbitrary distributed applications. |
On 10/15/2015 09:32 PM, Evan Donahue wrote: > I remember looking at the project you mention when I was first researching > p2p in Pharo. I thought the project description sounded very interesting > (Trantor was actually begun with a similar use-case in mind), but alas I was > unable to find any information on it outside of the code. If anyone knows > more about what happened to that project, I'd be very curious. > > From a technical standpoint, as best I could tell from looking through said > code, DVG was an application that was designed to share one specific type of > immutable data across very adverse network conditions. All of the > engineering seemed to have gone into bypassing firewalls with UDP > hole-punching, routing messages around complex network topologies, etc. > > Trantor, by contrast, is best thought of as a framework for easily making > application data distributable, and a scheme for distributing it efficiently > over a network. The details of the network topology are somewhat orthogonal, > and there are many options for where to take it in the future. The actual > socket code in Trantor right now is a simple TCP direct connection. > > At some point I'd like to get some of the networking capabilities that DVG > has (such as the UDP hole-punching), and I think I saw a project that tried > to extract the networking part from the DVG application, but it seems to be > mostly a specific application, and not a general scheme for designing > arbitrary distributed applications. I would be most interested in this DVG as well, along with guidance on how to best utilize it in my application. If someone were to so share, I'm convinced it would rain goodness. Regards, R > > > > -- > View this message in context: http://forum.world.st/distributed-peer2peer-sharing-app-in-Pharo-tp4855144p4855908.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > |
A bit late - just got notified that this was discussed. I wrote most of the
P2P code of that project; I'm not doing a lot of Smalltalk anymore, so the code is sort of orphaned, but I'd be more than willing to help advise people on how to use it. The conclusion that this library is specifically made to work under very adverse circumstances is correct. The project at hand, "Digital Society of the Past", was meant to create a P2P network of historians (amateur and professional) exchanging their archives through this package. So our main use case was people behind crappy cable connections :-). So if your focus is overlay networks with gossip-style protocols, I'd probably look at something like Hashicorp's Serf instead (link it in or port it); if you really want to do napster-style file sharing, this library may be a decent starting point. Hth, Cees (ping me preferably on my personal mail, casedeg at everyone's favorite email provider, Gmail, because I'm often way lax when it comes to catching up with mailing ists). |
Free forum by Nabble | Edit this page |