Re: [fossil-users] Collaborative deployment of Fossil without a server

2015-06-12 Thread Mark
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

2015-06-12 Thread Mark
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

2015-06-12 Thread jungle Boogie
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

2015-06-12 Thread Mark
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

2015-06-12 Thread Ron W
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

2015-06-12 Thread Mark

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

2015-06-12 Thread Ron W
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

2015-06-12 Thread Mark


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

2015-06-12 Thread Richard Hipp
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