Preferred language for NMControl-like things

phelix
Posts: 1625
Joined: Thu Aug 18, 2011 6:59 am

Re: Preferred language for NMControl-like things

Post by phelix » Sat Sep 19, 2015 3:50 pm

biolizard89 wrote:
domob wrote:
biolizard89 wrote:Reproducible builds are very important, and I don't think Joseph or I want the project to be completely dependent something that Tor devs were unable to do with several orders of magnitude more funding.
I agree that deterministic builds are important, but what is really stopping us from simply running the source through a Python interpreter? I thought that's how it is supposed to be done anyway. With respect to a reproducible Python interpreter: What's the point if you can simply use the one bundled and signed by a major distro? You have to trust "some" component of your OS anyway.
Whoops, totally missed this post, sorry Daniel.

Major Linux distros are working on making all their packages reproducible (particularly Debian, though also Fedora). Armory is basically working in Debian's reproducible build toolchain (unless I'm misremembering what Joseph said), so Python on Debian-based OS's is reproducible. So for Linux users, this is less of an issue. The bigger problem is making reproducible builds for non-Linux distros. If you're a Windows user, you inherently trust Microsoft, but you may not trust a Python interpreter that you download from the Python website, and you definitely shouldn't trust a Python interpreter that's embedded in a PyInstaller-generated .exe file that a random software vendor (such as us) provides. Python is near-impossible to build for Windows reproducibly, while Go is trivially easy from looking at Tor's Gitian scripts.
Repeating myself: At this point reproducible builds are a red herring distracting us from more important things to work on.

edited: Added "at this point"
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

biolizard89
Posts: 1932
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Preferred language for NMControl-like things

Post by biolizard89 » Sun Sep 20, 2015 12:05 am

phelix wrote:Repeating myself: At this point reproducible builds are a red herring distracting us from more important things to work on.

edited: Added "at this point"
It sounds like you're advocating doing work that is likely to be invalidated later, when reproducible builds are more important. This doesn't make sense to me. In addition, I think you're underestimating the importance of reproducible builds. I do not want to be in a position where someone is trying to compromise my machine in the hopes of delivering a backdoor to our users. I assume you don't want to be in that position either.

For the record regarding Cassini's vote:
[Saturday, September 19, 2015] [05:40:10 PM] <Jeremy_Rand> cassiniNMC: so, can we put you down in favor of "develop ncdns in parallel for a few months and reevaluate then"?
[Saturday, September 19, 2015] [05:40:56 PM] <cassiniNMC> Yes, sounds good.
[Saturday, September 19, 2015] [05:41:01 PM] <cassiniNMC> Agreed.
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

phelix
Posts: 1625
Joined: Thu Aug 18, 2011 6:59 am

Re: Preferred language for NMControl-like things

Post by phelix » Sun Sep 20, 2015 11:51 am

@hla: Thanks for the instructions. But I think I will wait until somebody has given it a try on Windows.
biolizard89 wrote:
phelix wrote:Repeating myself: At this point reproducible builds are a red herring distracting us from more important things to work on.

edited: Added "at this point"
It sounds like you're advocating doing work that is likely to be invalidated later, when reproducible builds are more important.
What work are you talking about? NMControl is ready for release. And it is actually usable on Windows.
This doesn't make sense to me. In addition, I think you're underestimating the importance of reproducible builds. I do not want to be in a position where someone is trying to compromise my machine in the hopes of delivering a backdoor to our users. I assume you don't want to be in that position either.
Repeating myself again: With reproducible builds you will still need to trust a compiler and other software at some point.

Why would anybody with such security concerns not simply run the source? Do you really believe anybody would trust our "reproducible build" more than official Python interpreter versions? We don't have a product, we don't have users and you are worrying about backdoors in Python interpreters. This is what you want to do:

Image

It is distracting us from actual work that brings the project forward.
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

hla
Posts: 46
Joined: Mon Nov 10, 2014 12:01 am
os: linux
Contact:

Re: Preferred language for NMControl-like things

Post by hla » Sun Sep 20, 2015 11:48 pm

ncdns works fine on Windows. I run it on Windows.

phelix
Posts: 1625
Joined: Thu Aug 18, 2011 6:59 am

Re: Preferred language for NMControl-like things

Post by phelix » Mon Sep 21, 2015 9:36 am

hla wrote:ncdns works fine on Windows. I run it on Windows.
Sorry, the instructions above looked like for Linux...


This whole thread somehow stirred me up emotionally, which I always try hard not to let happen. Thinking about it the reason probably is that while I have been working on NMControl on and off for years over a year (a lot of the time spent on discussions btw) this thread gives the impression that team members who have never put eye nor hand on NMControl can now force me to "switch" from a language and codebase I got to know ok to something all new just like that. But this is not the way things work in an open source project.

So what is really being asked here is something like: "I would like to start this new software XY, it will do the same as NMControl. Please join me in working on it, what language should we use?"
From my point of view the arguments provided do not support a switch and division of the team and codebase but maybe I am wrong. Everybody is free to proove that and I won't mind. On the other hand everybody is also free to actively work on NMControl. Particularly on the Linux/Mac side user experience is lacking (e.g. automatic configuration of .bit resolving maybe via dnsmasq during installation would be nice).

Arguments of doing duplicate work by staying on the existing codebase just backfire as obviously the new software will cause tons of extra work (it is already now with this thread).

I hope that with wider participation in the roadmap we will be able to discuss priorities and some of the points above on a meta level. This should make discussion clearer and then let us more easiliy agree on what actions are most effective in bringing Namecoin forward.

edited: "for years" --> "over a year" it felt like years :)
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

biolizard89
Posts: 1932
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Preferred language for NMControl-like things

Post by biolizard89 » Mon Sep 21, 2015 10:36 am

My perspective (speaking as an NMControl developer, who's been working on it almost as long as Phelix):

I admit that I am somewhat attached to the NMControl codebase. This is in part because I know it pretty fluently.

That said, I also think adapting is important. Go has better DNS libraries, which means that at least part of NMControl would have to be outsourced to Go (madns). Go also has a Tor-compatible and Tor-safe proxy, meaning that it's safer to write a .bit proxy in Go than in Python. Python also seems to lack a good JSON-RPC library that works well with Bitcoin on Python3, which has prompted suggestions of making NMControl only use the REST backend. Yes, it's still possible to restrict NMControl's feature set to things that work well in Python, and outsource other code to other languages such as Go. I was loosely leaning toward this for a while, mainly (I think) because I was attached to NMControl's code, and because switching codebases would be somewhat disruptive. The reproducible build thing was kind of the final thing that pushed me over into supporting at least an experimental run of working with Go.

I'm not really advocating that we scrap NMControl at this time. I think a trial run of ncdns for a few months, perhaps in parallel with NMControl for people who want to keep working in Python, is okay. We can re-evaluate then. At this time, I think that if I were starting from scratch, and I knew both Python and Go equally well, I would code this in Go. Obviously, those assumptions are not the case. I may feel differently in a few months, based on whatever happens during that time. The same is probably true of Phelix.

FWIW, if ncdns ends up prevailing (whenever that decision might happen), I fully favor Phelix being a lead developer of it (along with Hugo and myself), since obviously Phelix has put a huge amount of work into NMControl and has demonstrated a strong commitment to producing good software. His status as a leader shouldn't be revoked just because of an architectural change decision.

Cheers.
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

phelix
Posts: 1625
Joined: Thu Aug 18, 2011 6:59 am

Re: Preferred language for NMControl-like things

Post by phelix » Mon Sep 21, 2015 4:30 pm

biolizard89 wrote:FWIW, if ncdns ends up prevailing (whenever that decision might happen), I fully favor Phelix being a lead developer of it (along with Hugo and myself), since obviously Phelix has put a huge amount of work into NMControl and has demonstrated a strong commitment to producing good software. His status as a leader shouldn't be revoked just because of an architectural change decision.
Hehe, can't hurt to give an old bear some honey. As long as it does not make him hungry for more.
nx.bit - some namecoin stats
nf.bit - shortcut to this forum

Post Reply