Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

GUN author here (https://github.com/amark/gun) happy to answer any questions.

IA did this integration in 1 week, Mitra is awesome.

Also, decentralized Reddit (https://notabug.io) was built in 1 week on us, and pushed 0.5TB P2P traffic on 1st day.

Note: I may not be awake for several hours, and might not be able to reply until Monday.



GUN looks great! I love the quick-start tutorial too: https://gun.eco/think.html

How suitable is GUN for live multiplayer (non turn-based) web games? (Similar to https://airma.sh/.)

I see one game example at https://github.com/amark/gun/wiki/Awesome-GUN, although it's turn-based.


Thank you!!!

I need to fix the organization of the documentation (and update the docs, oye!). I'm impressed you found Awesome-GUN.

https://github.com/amark/gun/blob/master/examples/game/space... is probably what you were searching for.

What would be better is if I made a blog/tutorial for ^ link. Not a priority for me, sadly, but maybe it is for somebody out there, that they could help?

Thanks again!


Hi, thanks for stopping by :)

I'm still trying to get a handle on the security aspects of gun. Say you want to create a blog/note app - that holds both private notes, drafts - and things that are to be shared to some friends.

Would you effectively have to store data encrypted in gun, and manage access via sharing encryption keys - in order to be able to both securely store data, and share it?

In the examples, it appears things like "create user" is called in client side code - which seems to imply anyone can write any data to a gun db? (by adding themselves as admin?)

Is the use-case of gun more a public, structured wiki - where all content is fundamentally untrusted - but easily updated by anyone?


Right back to you! :)

That is probably because I've done a poor job communicating it, since I'm still finding time to write about it. Thank you for bringing this up!

Probably most relevant: I kinda sorta had a demo of a P2P LinkedIn working https://www.youtube.com/watch?v=ZiELAFqNSLQ .

So we do have an unstable API that automates key management and key sharing, but all production apps (notabug.io , etc.) today directly use our https://gun.eco/docs/SEA shim over WebCrypto.

Unfortunately, that means you have to be aware of how to apply it - thankfully, we did make a cartoon cryptography crash course on this (in link), so it is viable to get started.

Obviously, if you have any new insights, would love to hear it!

Without SEA, gun is very much like what you say. With SEA, you can protect against just anyone randomly writing to GUN. Jump in and ask more Qs on https://gitter.im/amark/gun about it, or you'll circle back around later - hopefully that is helpful directions?

Thanks. Most important statement of mine: I bet you'll enjoy the cartoon cryptography series.


Thanks for replying. I guess: https://gun.eco/explainers/data/summary.html sums up the situation - but there's a few things that aren't quite clear: by design, everyone can access all encrypted data? So there's some meta-data that's easy to find, such as checking if an account exist, and how much data is associated with it - and the ability to record the approximate rate that data is written to the account?

For example, if the login is an email, the app is an exercise logger - I might be able to infer that someone is out jogging by looking at the data?


Another, related, question: at https://github.com/amark/gun/blob/master/README.md we can read that:

"Distributed - GUN is peer-to-peer by design, meaning you have no centralized database server to maintain or that could crash. This lets you sleep through the night without worrying about database DevOps - we call it "NoDB". From there, you can build decentralized, federated, or centralized apps."

And then goes on to show how to boot an instance on heroku etc. But is a production setup documented anywhere? I'd assume one would want three server instances (to allow taking one down for upgrades) - to make sure clients can write data to a managed instance, in order to make sure data is backed up etc?

Apologies if I've overlooked an obvious documentation link.


Yes, can I follow up with you more on this later / in the chatroom[1]? I don't want to leave you hanging but won't be able to reply in detail for probably 1 week - but I do have an answer for you (I apologize the docs are slacking!).

Thanks / sorry!


Thank you for creating GUN! The decentralized Reddit demo loads so quickly.

To prevent spam, it looks like they require a PoW on each vote. Does every update on a GUN database from untrusted peers require something like this? Is authentication intended to stop spammers in the future?

PS. For anyone reading, there's a recording of a talk Mark gave on GUN from the DWeb Summit, available here: https://youtu.be/kW6e1GCpqpE?t=43m22s


Author of notabug here.

GUN uses a proof of work for account creation/login I think, but otherwise no there is no proof of work requirement for updates.

I added the proof of work requirement to votes as part of my own validation. The difficulty at https://notabug.io is set quite low, but https://dontsuemebro.com is a peer that still has it set quite a bit higher, it rejects the cheaper votes at notabug.io so the scores/sorts are different.

Spent a lot of time focusing on performance, notabug.io is running GUN with redis as a storage adapter and doing server side rendering to speed up the user experience.

Domain pages are currently all gun/clientside though with out the server doing anything special to help at all.

https://notabug.io/domain/youtube.com/

Also when using the infinite scroll feature or chat most all content is loaded directly through gun without intermediary REST calls.


Decentralized Reddit sounds neat.

But!

I just upvoted myself to 200 points (making it the top post of all time on notabug), then saw someone else downvote me to -100 points (in 5 minutes), effectively censoring me.

While this was just me with one computer, how will you stop bad actors (specially state actors, corporate actors or other political actors) with immense technological resources from gaming the voting system to silence people?

It's a flaw inherent to democratic Internet voting-based comment filtering, no?


Decentralize how votes are weighed too.

Reddit (tries to) weigh the votes of bots, sockpuppets, and other no-do-gooders to 0, and the rest of us to 1.

Similarly, perhaps you weigh the votes of your friends to 1, your friend's friends to max(1,their_friends/10), and your friend's friends friend's to max(0.1,their_friends/100). Except for bob, who's votes you weigh at 0, because he's always getting his account hacked or suckered into yet another bitcoin ponzi scheme.

There won't be any single point of truth as to the "real" points of a post in this kind of model, but that's probably OK. Actually, there already wasn't: The same link in two different subreddits might gain wildly different amounts of points, with the subreddit adding as a proxy for a group of people who's votes you've decided to weight at 1.

Tech aside, decentralization just puts the onus for more finely deciding the weights of people's votes on the end users instead of on admins. With the right tools you can manage and limit abuse.

A flaw inherent in this model is doing admin stuff is probably more work than the average user wants to do, so such a model will probably never take off.


In my inevitably biased view, I see democratic Internet voting-based comment filtering as a tool that will be exploited by state, corporate or other pretender political actors for censoring speech and promoting their own speech -- no matter the technical implementation, they have the resources to easily buy 30k votes to use on any thread and skew perception on topics vital to their agenda, and we have been doing so for years not just on Reddit with votes, but anywhere where there is an user-input box, and using a variety of textbook mass social engineering tactics.

Knowing the problem so personally, I'm partial to throwing out voting-based comment filtering altogether and replacing it with a mix of the Metafilter and the Slashdot models: make registration an one-time $5 fee; let there be a "firehose" that isn't filtered by votes, but organized by date posted; let there be professional editors that select and curate user-posted links; and let the comments be organized by date from older to newest by default (this prevents a lot of the manipulation, as the oldest comments are usually free from manipulation, since we can't get to the thread faster, and undermine later manipulation, since usually people follow the leader comment), or, even better, get rid of comments altogether because a reliable and open forum like you had in the 1990s is something good (and dangerous) that you will never have again, or at least not without state-level attempts at infiltration.


So one of the fundamental differences between GUN and a blockchain is peers don't need to have the same dataset, or to necessarily agree on the state of the world.

The goal with notabug is that you should be able to run a peer with any sort of moderation structure you like including what you describe.

It's already possible with just ui changes to ignore votes entirely. the new sort works this way.

Comments can be sorted by new in this manner as well but isn't exposed in the UI yet.

The filtering you describe will be achievable with the moderation system I plan to build here:

https://notabug.io/t/notabug/comments/ea1104bf0535370d0b27a1...

You would set up a lens with a list of users (public keys) who paid you the verification fee.

You build a space with that lens as the good lens, and lenses for each of your editors to remove or highlight content in other spaces.

I don't know what the best model for online communities is. My vision for notabug.io is to shamelessly clone open source reddit in functionality and UX. But my vision for notabug more generally is as a system for disparate approaches to online forums in a connected system.


The possibilities sound very interesting, specially as an experiment to minimize the damage of social media's capability to be a very powerful, cheap and all-inclusive propaganda tool capable of causing society-wide disruption, and all the state, corporate and pretender political actors interference that come with that kind of threat; the combination of actors with state powers with anonymity making them unnoticed and unaccountable particularly terrify me; I will look into it.


I recently described my plans for moderation here:

https://notabug.io/t/notabug/comments/ea1104bf0535370d0b27a1...

The goal here is that moderation won't prevent people from speaking it will make it possible to delegate filtering of content you don't like to other people in a way that doesn't censor the content you don't like outright.

Open to suggestions and PRs.


> It's a flaw inherent to democratic Internet voting-based comment filtering, no?

Quite possibly so; increasing the vote difficulty may help here; but one thing to keep in mind is that the proof of work voting is not necessarily the only voting approach that could be supported. The proof of working voting I think works best at a large scale of users something notabug doesn't have yet.

It was something easy to implement that works decently enough for now; but with a decentralized network different peers can experiment with different voting and sorting strategies.


Wow, your work (GUN) is really great. I hope you don't mind me asking how it works in layman's terms? Thank you for your work.


Huge honor! Yes:

- http://gun.js.org/distributed/matters.html

- https://youtu.be/EHZyaupYjYo?t=55m52s

- http://gun.js.org/explainers/data/security.html (not about GUN itself, directly, but SEA)

Is at least 1 of those helpful? If not, have any ideas on how I can improve the explanation?


Is that website related to https://notabug.org in any way?


no


FYI: Notabug can't post anonymous comments or chats as of 8/7/18

And there was no way of me telling you this besides here...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: