by The Dichromatic Mechanism of August. . 405 reads.

Why AugustinAndroid v2 is not open-source

[i]Last updated on Sunday, January 31st, 2021. If you find this dispatch helpful, please upvote.[/i]
[hr][font=palatino][size=160][color=black] | [/color][/size][url=page=dispatch/id=1257698][color=black][size=160]A[/size][size=120]BOUT[/size][/color][/url][size=160][color=black] | [/color][/size][url=page=dispatch/id=1316771][color=black][size=160]C[/size][size=120]REATIVE [/size][size=160]U[/size][size=120]SES[/size][/color][/url][size=160][color=black] | [/color][/size][u][b][url=page=dispatch/id=1430919][color=black][size=160]O[/size][size=120]PEN [/size][size=160]S[/size][size=120]OURCE[/size][/color][/url][/b][/u][size=160][color=black] | [/color][/size][url=page=dispatch/id=1297396][color=black][size=160]NSN[/size][size=120]EXUS[/size][/color][/url][size=160][color=black] | [/color][/size][url=page=dispatch/id=1172824][color=black][size=160]NSV[/size][size=120]ERIFY[/size][/color][/url][size=160][color=black] | [/color][/size][url=page=dispatch/id=1498853][color=black][size=160]P[/size][size=120]RIVACY[/size][/color][/url][size=160][color=black] | [/color][/size][url=page=dispatch/id=1581128][color=black][size=160]P[/size][size=120]SEUDO-[/size][size=160]API[/size][/color][/url][size=160][color=black] | [/color][/size][url=page=dispatch/id=1585568][color=black][size=160]RMB [/size][size=160]C[/size][size=120]OMMANDS[/size][/color][/url][size=160][color=black] | [/color][/size][url=page=dispatch/id=1432339][color=black][size=160]S[/size][size=120]TATISTICS[/size][/color][/url][size=160][color=black] | [/color][/size][url=page=dispatch/id=1560090][color=black][size=160]S[/size][size=120]TOCK [/size][size=160]E[/size][size=120]XCHANGE[/size][/color][/url][size=160][color=black] | [/color][/size][/font][hr]

[box][b]Why is AugustinAndroid v2 not open-source?[/b]

This is a question I see in various forms, sometimes as a statement ("It [i]should[/i] be!"). Generally speaking, there are two reasons why a project such as this would be open-sourced. The first is to allow anyone to audit the code for legality and security. The second is to allow anyone to re-host and modify the code. As noble as these objectives sound, neither are useful or desirable in this case.

[*]It is important to understand the difference between server-side and client-side applications. The former type runs on a central server or system of distributed servers, and is accessed by individual users through a browser or other remote-connection software. One example of this is a Discord bot. The latter type runs on individual users' machines. It may connect to an external server, but it does all its heavy lifting locally. One example of this is a word processor such as Microsoft Word.

Open-source client-side applications can be meaningfully audited because the code being audited can be verified as the code running on the local machine. The application can be built from the published source. The publisher cannot change the code running on the client side without pushing an update. That is not to say all open-source client-side code is perfectly secure, just that it is possible to know for sure that the code you have audited is the code you are running.

Server-side applications, open-source or otherwise, [b]cannot[/b] be meaningfully audited by regular users. The publisher can release the code, but the code is running on the publisher's server, so the users have no guarantee that the code they see is the code that is running. They have to trust the publisher not to release a special, sanitized version of the code while running an illegal or insecure version. That brings the users back to the original problem: if they trust the publisher, they do not need to audit the code in the first place.
[*]To address legality concerns, there is very little room for rule violations in a bot such as this. No part of the bot makes contact with the HTML site, and the API generally enforces its own limits instead of relying on rules. Furthermore, as a centrally-hosted application rather than one hosted by individual users, the developer holds all the responsibility for rule compliance.
[*]The bot relies on a database, where it stores nation/region pairs, moderation history, server configuration data, and more.
[*]If the open-source version can connect to the database, anyone who hosts an instance of the bot will have full access to this database. They could redefine roles as administrator roles in any server that used the bot, potentially causing catastrophic damage; they could add false identities to their file, allowing for impersonation; or perform many other acts of sabotage.
[*]If the open-source version cannot connect to the database, any such instance of the bot would be crippled. It would be unable to run NSVerify, save moderation logs, access its own settings, and so on. Local databases could be set up by individual hosts who possess sufficient knowledge, but these would still be dramatically limited in capability relative to the centralized form available currently.
[*]The bot receives constant updates and fixes. As a server-side application, those changes can go live the moment they are ready. If individuals were hosting their own instances, they would be pestered relentlessly to update, and many of them would wind up running outdated code for months. This results in a poor user experience and a damaged reputation for the bot itself.
[*]A non-NS version of the bot is available from another, unnamed site. This version is more powerful and has paid subscription tiers. NS-based servers can already use the NS bot for free, but open-sourcing it would allow non-NSers to use most of the non-NS bot for free too.
[*]The bot is a source of pride for me, the developer. It has taken years to perfect. I am concerned that if I were to release the source, it would not just be re-hosted, but modified. The last thing I want is a proliferation of low-quality, hacked-together code bearing my name when the original version is already available.

Hopefully this answers the question of why the Moose remains closed-source while so many other NS-related projects (all client-side) can be freely perused on GitHub. Feel free to respond to this via telegram.

[url=#top][img]http://i.imgur.com/CrYjuWW.png[/img] Return to top[/url][/box]

[i]Created by [nation=noflag]august[/nation]. Do not reproduce, in whole or in part, without explicit permission.[/i]