Christopher Allan Webber

Christopher Allan Webber at

I assume by that you mean "here's where the source repo is" link, which we do in MediaGoblin. That's fine enough for GMG and the "few" C2S applications you set up, but not all p2p systems might even provide a decent way to deliver those, though is suppose most could. But anyway, my experience is that those are easy to accidentally misconfigure; if you're running a new branch of some code, will you really remember to update the link? That's a lot of manual configuration. Now imagine you've taken sysadmins entirely out of the mix, and imagine you have to set these up for about 40 or so applications that are currently talking to the network on your desktop machine.

I'm also making the case that GPL does a better job in the P2P world than it does in the C2S world. Both because the power dynamics are more flat in P2P than C2S (and the power dynamics of the emerging C2S world were largely what motivated the AGPL), and because the direction things may be heading also includes more ambiguity between what's data and what's code (look at Ethereum smart contracts). An example of "what's data and what's code?" that's pretty clear that isn't currently covered under the AGPL is someone's .emacs file. Some parts of that someone might want to keep private, such as anti-spam or blocklist type rules, or even just what mailing list you're on. My thesis is, any code sent across the network in such a distributed sandboxed environment you should have full rights to, as the GPL provides! But I'm not sure the AGPL does what we want here.

Anyway, I still think AGPL is a good license choice for where it was designed to tackle the space of, and I think it was the right choice for MediaGoblin. I'm just saying I think GPL is a much better choice for peer to peer applications.

good point on AGPLed .emacs!  any AGPLed server running on Emacs to test it? ;-)

code vs config/data is indeed an issue, but I don't see that it has to do with P2P vs client/server, nor does it seem a particularly difficult one to me; it's just a matter of drawing the line.  many servers have config files in which you assign a database server password to a variable, but that shouldn't be regarded as part of the program.  conversely, there's plain data that *should* be regarded as part of the program (icons, for example)

what's different in the P2P case is that in order to interact with a peer you probably already have some implementation of the protocol.  should this imply you don't need access to other peer's improvements?  is it still your computing, when it's performed collectively by a set of peers?  or is it collective computing?  in which case, should every party be able to have at least some control over the partial computations performed by each party?  or should control be collective as in each party controls the part they perform?  can we even expect the answers to be the same for any P2P protocol/application?  I haven't given much thought to it, I'm afraid, and I'm glad you seem to have, even though your arguments seem to be more grounded on practical matters than ethical ones

Alexandre Oliva at 2017-07-21T18:46:58Z

Don't get me wrong, I obviously want everyone to have access to what's practically "running code" of the collective system, and do want those protections... I just think that in a p2p system it gets a bit thornier.

But as I said, I think GPL does better in P2P than in C2S (though is not immune to people trying to centralize nodes either for sure, and one can look to bitcoin to see some centralization in a p2p system happening, practically seeking... that's more of a problem with how that protocol works/scales than someone doing something of trying to hide code behind their network though IMO)

Christopher Allan Webber at 2017-07-21T18:52:19Z

BTW there is an emacs http server, but not sure it's running any AGPL'ed software :)

Christopher Allan Webber at 2017-07-21T18:57:03Z