Re: [fossil-users] Collaborative deployment of Fossil without a server
Its not really a shared disk. I described it because what I have in mind is similar to sharing a disk. In practice, the data is stored on the p2p network, spread all over the place. However, each user with access has the option of seeing it appear as a virtual drive - hence like a shared disk. The access will occur over TCP/IP, but as the network is p2p, the endpoints don't communicate directly, and don't know anything about each other apart from an anonymous address. All communications is encrypted, and independent of existing internet DNS, routing etc. Machines will also be able to exchange messages, but my aim is for the p2p network to take the *role* of the server, so a client machine can clone a repo without any other client machine being involved - just cloning directly off the p2p storage. Otherwise I wouldn't be able to clone your repo unless you were online. I say *role*, because the network cannot host the Fossil server, it can only run on a client. Hope that's clearer! :) On 12/06/15 21:25, jungle Boogie wrote: On 12 June 2015 at 13:21, Mark fos...@happybeing.com wrote: Two client machines 1 2, each with a local repo, and each running a Fossil server. Both servers are configured to access a single master repo file that sits on a shared disk, mounted on both machine 1 and machine 2. How will the clients connect to your shared disk? Over USB, serial connection? ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Collaborative deployment of Fossil without a server
Thanks Richard, this is encouraging. I would appreciate any pointers to relevant documentation on multiple servers accessing a single repo, and the file locking options. I searched the Fossil docs again and didn't find anything on this. Then I'll need to look at what SAFE will support in this area. I'm away until Tuesday, so there's no hurry. Mark My thinking is On 12/06/15 19:38, Richard Hipp wrote: On 6/12/15, Mark fos...@happybeing.com wrote: I'm thinking it's unlikely that Fossil caters for multiple servers talking to a shared repo file, It does. By default it wants posix advisory locking to work, but that can be hacked around using an environment variable. (I'll have to look up the details for you later - I'm at a conference as I type this.) Or... 2) I would need some way for each server to make changes to the shared repo file without interference from any other servers. The repository is an SQLite database, which allows multiple applications to attach at the same time. Only one can write at a time, but writing is fast, so they can take turns. Lots of detail on this on the Fossil website. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Collaborative deployment of Fossil without a server
On 12 June 2015 at 13:21, Mark fos...@happybeing.com wrote: Two client machines 1 2, each with a local repo, and each running a Fossil server. Both servers are configured to access a single master repo file that sits on a shared disk, mounted on both machine 1 and machine 2. How will the clients connect to your shared disk? Over USB, serial connection? -- --- inum: 883510009027723 sip: jungleboo...@sip2sip.info xmpp: jungle-boo...@jit.si ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Collaborative deployment of Fossil without a server
MaidSafe is the company doing the core development and still hosting the main resource though this will move out to the community properties before long: http://MaidSafe.net There's a lot to access via the above, but two main resources are: Forum: https://forum.safenetwork.io/ (find me there as @happybeing) Wiki: https://safenetwork.wiki/en/ Github:http://github.com/maidsafe (Current stuff is almost all Rust - ignore the C++) Mark On 12/06/15 23:09, Ron W wrote: On Fri, Jun 12, 2015 at 4:55 PM, Mark fos...@happybeing.com wrote: Its not really a shared disk. I described it because what I have in mind is similar to sharing a disk. In practice, the data is stored on the p2p network, spread all over the place. However, each user with access has the option of seeing it appear as a virtual drive - hence like a shared disk. The access will occur over TCP/IP, but as the network is p2p, the endpoints don't communicate directly, and don't know anything about each other apart from an anonymous address. All communications is encrypted, and independent of existing internet DNS, routing etc. Machines will also be able to exchange messages, but my aim is for the p2p network to take the *role* of the server, so a client machine can clone a repo without any other client machine being involved - just cloning directly off the p2p storage. Otherwise I wouldn't be able to clone your repo unless you were online. I say *role*, because the network cannot host the Fossil server, it can only run on a client. Hope that's clearer! :) Sounds interesting. Please post a URL about this SAFE Network. I've tried searching, but getting many competing safe networks. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Collaborative deployment of Fossil without a server
On Fri, Jun 12, 2015 at 2:15 PM, Mark fos...@happybeing.com wrote: no way for remote devices to communicate with a server on another client over HTTP (because this would defeat the security of the network). So SAFE Network does support applications that use TCP ? Fossil's sync protocol piggy backs on HTTP, but really is just a bidirectional byte stream.. In theory, any communication service that supports byte streams (like TCP) could be used. It might be feasible to re-route client-server HTTP interactions over SAFE messaging, but this would require one client act as a hub which is again breaking the raison d'etre of SAFE (decentralisation). Fossil can be used in a purely peer-to-peer arrangement. 1) something like a shared disk, containing a shared fossil repo, which the server on each client can push/pull/clone. SAFE Network supports mounting of storage as a virtual drive for example, and sharing would allow multiple clients to access a shared storage area in this way. I'm thinking it's unlikely that Fossil caters for multiple servers talking to a shared repo file, but if it does, let me kiss your hand! I think this would just work out of the box (Saw Richard's reply as I was writing this) Yes, as Richard said, a single repo file can be accessed by multiple instances of Fossil. I would still recommend that each work station have a local repo that gets sync'd to the shared repo. The way I did it requires local TCP, but the help page for fossil clone shows a file:URL format, suggesting it might be possible to sync with out needing TCP. (http://fossil-scm.org/index.html/help?cmd=clone) ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Collaborative deployment of Fossil without a server
On 12/06/15 20:05, Ron W wrote: On Fri, Jun 12, 2015 at 2:15 PM, Mark fos...@happybeing.com wrote: no way for remote devices to communicate with a server on another client over HTTP (because this would defeat the security of the network). So SAFE Network does support applications that use TCP ? SAFE uses various underlying protocols (not my area but) but communication between clients should ideally be completely anonymous (no knowledge of destination IP address for example). Fossil's sync protocol piggy backs on HTTP, but really is just a bidirectional byte stream.. In theory, any communication service that supports byte streams (like TCP) could be used. I don't know, but expect byte streams could be used if p2p sharing was appropriate, but I'm not sure it would be - see below. It might be feasible to re-route client-server HTTP interactions over SAFE messaging, but this would require one client act as a hub which is again breaking the raison d'etre of SAFE (decentralisation). Fossil can be used in a purely peer-to-peer arrangement. In this case, the issue would be needed both peers available concurrently, which is unrealistic given that no-one wants to take the role of (high availablity) server. The network acts somewhat like a server - constant availability for routing and storage - but cannot host a Fossil server itself, so this would have to sit on a client which as I say may not be around when someone wants to push/pull/clone. So my thought was that each client can have both its own local repo, and be running a Fossil server which is managing a separate master repo that is also managed by other servers on other clients. 1) something like a shared disk, containing a shared fossil repo, which the server on each client can push/pull/clone. SAFE Network supports mounting of storage as a virtual drive for example, and sharing would allow multiple clients to access a shared storage area in this way. I'm thinking it's unlikely that Fossil caters for multiple servers talking to a shared repo file, but if it does, let me kiss your hand! I think this would just work out of the box (Saw Richard's reply as I was writing this) Yes, as Richard said, a single repo file can be accessed by multiple instances of Fossil. I would still recommend that each work station have a local repo that gets sync'd to the shared repo. The way I did it requires local TCP, but the help page for fossil clone shows a file:URL format, suggesting it might be possible to sync with out needing TCP. (http://fossil-scm.org/index.html/help?cmd=clone) If we can handle file locking as Richard suggests in his reply, I don't think we need TCP etc. For example. Two client machines 1 2, each with a local repo, and each running a Fossil server. Both servers are configured to access a single master repo file that sits on a shared disk, mounted on both machine 1 and machine 2. User A on machine 1 can do everything with the Fossil command line (as I understand it). He clones from his local Fossil server passing and HTTP URL to address the server, the server accesses the shared repo on the filesystem, and responds to the HTTP request which delivers a cloned copy to create a local repo on machine 1. User A makes changes and commits using the command line. With autosync, I think the server is notified and automatically updates the shared master repo (mounted on the filesystem). If I've understood, all we need is to ensure the file locking works between the servers on machines 1 2 (and 3, 4, 5 ...) when accessing the shared master repo. To determine this I need to understand how Fossil does this, and to see what SAFE can support when shared storage is mounted as a virtual drive. Thanks for your help! I'm excited at the possibility of having this facility available on SAFE network early on. Mark ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Collaborative deployment of Fossil without a server
On Fri, Jun 12, 2015 at 4:55 PM, Mark fos...@happybeing.com wrote: Its not really a shared disk. I described it because what I have in mind is similar to sharing a disk. In practice, the data is stored on the p2p network, spread all over the place. However, each user with access has the option of seeing it appear as a virtual drive - hence like a shared disk. The access will occur over TCP/IP, but as the network is p2p, the endpoints don't communicate directly, and don't know anything about each other apart from an anonymous address. All communications is encrypted, and independent of existing internet DNS, routing etc. Machines will also be able to exchange messages, but my aim is for the p2p network to take the *role* of the server, so a client machine can clone a repo without any other client machine being involved - just cloning directly off the p2p storage. Otherwise I wouldn't be able to clone your repo unless you were online. I say *role*, because the network cannot host the Fossil server, it can only run on a client. Hope that's clearer! :) Sounds interesting. Please post a URL about this SAFE Network. I've tried searching, but getting many competing safe networks. ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
[fossil-users] Collaborative deployment of Fossil without a server
Hello, I've just learned about Fossil and am very impressed with its capabilities, and think it could be an excellent way of providing collaborative development environment on SAFE Network, which is a secure, decentralised network, including storage and communications (and later computation). The problem I'm trying to solve is that while SAFE network acts like a server in some limited respects there's no central server on which to install a Fossil server, and no way for remote devices to communicate with a server on another client over HTTP (because this would defeat the security of the network). It might be feasible to re-route client-server HTTP interactions over SAFE messaging, but this would require one client act as a hub which is again breaking the raison d'etre of SAFE (decentralisation). We can treat SAFE network like a shared disk with a simple key/value store API, for example a REST style interface with basic CRUD operations - but there is no server, communications does not involve not HTTP, so the only place to run the Fossil server would be on the client(s). I'm wondering if you have any advice (or pointers to info) that would help with something like this arrangement: Each client has: - one or more _FOSSIL_ source trees - a corresponding fossil repo (e.g. a local file) - a fossil server pointing to.. here's where it gets tricky We either have... 1) something like a shared disk, containing a shared fossil repo, which the server on each client can push/pull/clone. SAFE Network supports mounting of storage as a virtual drive for example, and sharing would allow multiple clients to access a shared storage area in this way. I'm thinking it's unlikely that Fossil caters for multiple servers talking to a shared repo file, but if it does, let me kiss your hand! I think this would just work out of the box Or... 2) I would need some way for each server to make changes to the shared repo file without interference from any other servers. Any hints on the feasibility of this would be appreciated - for example, is there a spec detailing the HTTP interface, and the low level repo operations involved with this REST interface? I'm wondering if its feasible for me to modify the server code so that multiple servers can lock/unlock the shared repo file while they respond to push/pull/clone operations initiated on the client by the Fossil cli. Thanks for reading, I hope that its clear what I'm trying to achieve. Mark -- Secure Access For Everyone: SAFE Network - launches soon! Fully Decentralised Internet http://MaidSafe.net ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
Re: [fossil-users] Collaborative deployment of Fossil without a server
On 6/12/15, Mark fos...@happybeing.com wrote: I'm thinking it's unlikely that Fossil caters for multiple servers talking to a shared repo file, It does. By default it wants posix advisory locking to work, but that can be hacked around using an environment variable. (I'll have to look up the details for you later - I'm at a conference as I type this.) Or... 2) I would need some way for each server to make changes to the shared repo file without interference from any other servers. The repository is an SQLite database, which allows multiple applications to attach at the same time. Only one can write at a time, but writing is fast, so they can take turns. Lots of detail on this on the Fossil website. -- D. Richard Hipp d...@sqlite.org ___ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users