Well, the main reason I brought up the issue of public shares is because BTSync is not an open source and it seems that syncthing is close enough in overall functionality to be extended with a parallel concept of a public share. Not sure if that creates such a design nightmare for you that it isn’t worth your bother.
Basically, syncing as such is an extremely important technology in light of this NWO thing, if you know what I am talking about. Because right not throughout the world there is massive campaign on governmental level to suppress the true information about what is actually going on in the world and all the evil done by the “banking mafia”. It is altogether a different subject, but the bottom line is that about the only way you can get true information through this massive and global censorship worldwide is P2P technologies where things are decentralized and the source of information is available not only from the source itself, but from a number of nodes directly.
There is another nasty thing about BTSync. There are reasons to believe they work and/or cooperate with the NSA, and that means massive privacy invasion and electronic warfare among other things. This issue by itself is enough to be real careful coming even close to BTSync. Plus, there are some indications that what they do “under the hood” is not something as innocent as they make it look like. Basically, you are tracked so thoroughly, that if you put it together with possible cooperation with evil agency makes it quite an issue.
Finally, BTSync is profoundly screwed up and the way it looks is that their code is written by some clueless for the most part, at least operational logic-wise. Behavior is totally inconsistent. Reporting, status and the whole GUI looks simply horrible, to the point that if you click on some item in the transfer log window and after that a new log entry appears, then what is selected (highlighted) is not the entry you have selected but the last entry, which is primitive to the point of being simply bizarre.
Yes, there is Hive2Hive Java library. But those guys look like a bunch of goofballs and they don’t even have a working demo version of the actual working program that could be used as a base to build upon. I talked to one of their guys and brought this issue up, but months have passed and they still do not have a demo version of a working program. So, it means that unless you are willing to dive into their code and spend days, or could be weeks before you can get something running, you’re screwed.
There is also LaFS that they claim is working and more or less stable. Except I looked at some of their concepts and had a hard time to comprehend the very idea of “grids” and, allegedly, “distributed storage” and all that jazz. So, again, you’d have to dive into all their stuff and spend days and possibly weeks before you realize that the whole thing is screwed up and all this complexity of architecture “does not buy you” anything.
All we need, information-wise, is a sync process on P2P basis. That is ALL we need as people on this planet, in order to prevent massive destruction and suppression of true information. We don’t need the “grids” of “distributed storage” and massive infrastructures to support some bitcoin alternative.
That leaves syncthing as about the only actually working alternative that already looks good enough to do some real things with information. But its limitation as far as distributing the information on a public basis without any user interaction as far as adding nodes or shares, just like it is done, for example, with torrents, is a major “show stopper” on this with all due respect to the tremendous amount of work done to date and being done all the time, which is a great indication that this thing may remain alive.
But in my opinion it will remain of a limited use for the general public situations from the information distribution standpoint.
Yes, I do not know much about nuts and bolts and GO is not the language I am used to. My prime choice is Java, which is probably the most portable language I am aware of. And it is a well designed language and is superior to C in many respects. As far as notation goes, switching to GO is like looking at the world upside down to me. Yes, you get used to anything eventually, but I found no problems of doing anything I could imagine in Java and interfaces. All these pointer to functions passing functions as arguments is an artificial issue to me, creating complexity where none is necessary. No one forces you to do weirdly complicated things that are not even necessary. You can always find a way to do things in simple and clear way so that your code could be read as easily as a newspaper article.
So, even if I wanted to see if I can do something with syncthing, and especially in the light of your flat denial of the very concept of public shares, this does not look quite promising from the standpoint of general public information distribution.
It does work great for me in combination with BTSync as I use syncthing as a connector between my boxes and server and it works quite well so far, and even better and more predictable than BTSync in many respects. But at this point I can not switch to using synthing as the only tool.
Too bad. So, I can not even start considering to get more involved and possibly do some coding, especially in a new language. I had enough of all sorts of “new ways” of doing the old thing. When I start coding, I tend to “crank it up” and the stuff starts flying all over the place and new good size chunks of code appear every couple of days. With nearly every day there is some more or less tangible improvement in functionality, performance, features and so on. So, my estimate would be to spend something like one moth to take some code to the place I want to see it and would feel comfortable enough with the product. Otherwise, I simply can not afford “spinning wheels getting nowhere fast”.
Hope you can comprehend this angle of view.
Anyway, good luck to you and your project. I am using it and see no reasons not to. I hope at some point you will allow the very idea of public information distribution to be accepted by your mind, instead of standing against it like a rock, and simply look possibly at some state machine architecture or an interface implementation that will allow synthing to work in both modes, public and private in parralel. So far, I can not even begin to comprehend the reason why not. I do not see anything radically different between the way you have it right now and the way to add the general public use functionality to your architecture, if there is any. Yes, I have not seen the code so far and if it was written in Java, that might change some things for me.