by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 06 21:36
    diatche opened #997
  • Aug 06 21:09
    diatche opened #996
  • Aug 05 22:16
    diatche commented #993
  • Aug 05 22:14
    diatche commented #993
  • Aug 04 04:52
    2016CS112 commented #995
  • Aug 04 04:47
    2016CS112 opened #995
  • Aug 03 01:00
    septs commented #994
  • Aug 03 01:00
    septs commented #994
  • Aug 02 17:02
    septs edited #994
  • Aug 02 16:54
    septs opened #994
  • Aug 02 10:02
    Joncom commented #975
  • Aug 01 06:06
    mimiza opened #993
  • Jul 30 21:10
    diatche commented #958
  • Jul 30 16:53
    mimiza commented #958
  • Jul 30 16:11
    evdama commented #958
  • Jul 30 16:09
    evdama commented #958
  • Jul 30 16:09
    evdama commented #958
  • Jul 30 16:08
    evdama commented #958
  • Jul 26 21:52
    amark updated the wiki
  • Jul 26 20:23
    amark commented #975
gunchatbridge
@gunchatbridge
[D] blevvys: thx for the help
gunchatbridge
@gunchatbridge
[D] Mark Howe: > <@!725671138742763530> [...] I'm middle of fixing this with a custom CPU scheduler and JSON parse module, but have to rewrite every for loop in GUN to use this new scheduler to prevent these hiccups. So if you're willing to hold on [...]
<@!178314946201780224> Many thanks for looking into this. Is there an issue I could track, to know when it would make sense to try again?
gunchatbridge
@gunchatbridge
[D] JerryZhang: I realize that If I want to sync or upload a file larger(more than 50Mb), it's very easy to cause Crash in GUN, I think I have to split it into several mini file to upload it.... SO this is a base phenomenon of GUN or I make some mistake? I just use base64 Coding whatever file it uploads 😅 this.$gun.get('myfiles').get(item.name).put(code) and decode it locally......
[D] JerryZhang: I try to upload a file about 100Mb, and it CRASH ...
gunchatbridge
@gunchatbridge
[D] Heisenberg: Hi <@!178314946201780224> Sorry for my late response, I've been away! Trying to catch up with the progress made and topics discussed. So with respect to my original questions and whether I was satisfied with the replies I received from the community, I would still prefer them getting answered by you 😉 as I believe they're pretty fundamental to the concept of GUN. I will paste the two questions below:
**1.** If you want to build a forum, and any user can post to the forum, but you don't want any of the data to be public in GUN how would you go about storing it?

Like you want to be able to let users query their own posts but also want to be able to return all posts to someone just browsing, and users should only be able to edit their own posts, and only the application itself should be able to read ALL the posts.
Based on the security stuff earlier mentioned, I actually think this could lead to some pretty bad vulnerabilities. In order to associate all the posts belonging to a specific forum you would have to store that association, but if so that means that any peer who can write to the forum would have to be able to know the id/key of the forum to add or remove from it, so theoretically you could just overwrite the whole thing, unless the server has some protections against that. And even if the server has protections, someone could insert a malicious server that could find the key of the forum and remove it or alter the data.

Recapulating, like I just want to know how you would go about having shared data that can only be readable by the application where pieces of it can only be editable by individual users.

**2.** How do you prevent a malicious peer/server from removing or editing stored data by replacing the reference. My impression of GUN based on the docs is that it is great if you want to store data specific to individual users, but building a shared state that is private that the app can read I really don't understand how that can be done.
gunchatbridge
@gunchatbridge
[D] Dletta: <@731834120887468073> Gun isn’t necessarily optimized for big files. I recommend chunking and slowly populating the chunks
gunchatbridge
@gunchatbridge
[D] Capitalist Dog: Galaxy brain move is to use gun to exchange torrent magnets
gunchatbridge
@gunchatbridge
[D] RandomAnalyticsGuy: What keeps content addressing from being vulnerable to a 50% attack?
OpenCo
@opencoca
Heya folks. The demo doesn't seem to be running the gun.on('auth', function() once a user logins in.
OpenCo
@opencoca
99 percentlies
@99percentlies_gitlab
Hello Wonderful People. I have a small query. I noticed that user.trust() api is broken/ not working with the current gun release (0.2020.520). I'm wondering if there is any workaround to replicate this functionality ? i.e to give write access to a private user's graph. thanks in advance
Darren Hunter
@darrenahunter
Hi - is there anything specific that is required to have a Gun websocket resume connection say post a timeout or a user closing the lid on a laptop and reopening
I dont see the session reestablish
Mark Nadal
@amark
@isbincApps @opencoca @99percentlies_gitlab @darrenahunter oh no! gitter <-> discord bridge broken? I definitely don't want to miss you all!!! :fire: :zap: :tada: :fire: :zap: :tada: :fire: :zap: :tada: WELCOME WELCOME WELCOME!!! <3 :)
I think 520 broke the Todo Tutorial :( extremely embarrassing and I need to get that fixed. If you launch a local peer or your own peer I think it should work tho. Thank you for reporting.
A couple people have built their own user.trust( alternatives with SEA directly ( https://gun.eco/docs/SEA ) , they're mostly on discord now tho so would you mind joining there & I'll tag them for you?
Hm, this has to do with connections retrying for 2 minutes before "giving up", I guess that happens when laptop closes too, so when it opens it doesn't retry - which is bad, is there a Browser event to detect laptop having been reopened? Maybe I need to add code that checks "last awake" and assume "reopen" event if longer than X min or something. Anybody have better idea?
and then automatically start retrying connections
Darren Hunter
@darrenahunter
will move to discord thanks
Rajat
@cuterajat26_gitlab
Hi everyone, help needed to solve this error on the server side - error:10067066:elliptic curve routines:ec_GFp_simple_oct2point:invalid encoding
Rajat
@cuterajat26_gitlab
I updated to 0.2020.520 and the above error is gone, was using older version 0.2020.401
Mark Nadal
@amark
@cuterajat26_gitlab just saw this, looks like gitter<->discord bridge down. That is a WebCrypto shim for NodeJS, should work on Linux-ish servers, what environment is it running & maybe try to re-install it in case something got corrupted?
Rajat
@cuterajat26_gitlab
ya got fixed by reinstalling with gun 0.2020.520, i am on mac, node 12.16.1. Thanks.
Jason Melendez
@deztopia
Hi all! Quick question...is there an alternative to User.delete(). Or recommended way to clear out stale users? Thanks!
Jason Melendez
@deztopia
Obvious noob here. I’m looking through the docs but can’t for the life of me figure out how to share data with another user or with a group of users, when using the gun.user() methods of managing users/logins. Tried the SEA docs but having a hard time. If I’m a user and want to make certain data available to anyone who has my pub key, how would I do that? Can this be read-only? Is this possible? Any direction you kind folks could give would be greatly appreciated!
Sam Schick
@schicks
Is there any reason the user api has to be specific to a person? Ie, if I wanted to create a "room", could I model both the room itself and the people with access to it as users?
Sam Schick
@schicks
@deztopia, I'm also pretty new, but it looks to me like calling user(publicKey) off of the root will do what you want; https://gun.eco/docs/User#getting-a-user-via-gun-user
Jason Melendez
@deztopia
Thanks @schicks I’ve been able to get the user pubkey with that but not sure how to share data from that point
Jason Melendez
@deztopia
Ah, I think I found where I was getting thrown off...I was including ‘~’ in the public key when calling user(). Now I see how things are working.
Stefdv
@Stefdv
@amark There is no browser event for laptop lid close/open since what happens is in fact a user preference ( suspend , sleep , poweroff etc. ) I struggled with this waaaaay back when doing video streaming. There is - or was - an event you can hook into but that is for video/audio streaming only.
Jason Melendez
@deztopia
Hi all, not sure if anyone else has run into this or if I’m doing something wrong again. But gun.unset() doesn’t seem to work if I call it outside the scope of the original set(). Scenario 1: I create a node with gun.get()/gunput() and call gun.set() to add the new node to a set, verify the node was added, then call gun.unset() passing the same node instance i passed to set. It works, and removes the node from the set. Scenario 2: I create a node, call set() to add the new node, and verify the node was added. Then later I loop through the set with map().once() and try to remove by passing the node given by the once() callback to unset(). Doesn’t remove it. I’ve also tried gun.get() to get the node instance, then passing this to unset(). Also doesn’t work. What exactly should I be passing to unset() to get it to remove the undesired node? I feel like I may be missing something fundamental. Thanks for the help!
Mark Nadal
@amark
@cuterajat26_gitlab yay!
@deztopia What do you mean by stale users? Like people in a game room and then leave? Potentially https://gun.eco/docs/Forget useful IDK your use case tho.
@schicks :clap: :clap: :clap: wow :) look at you helping out @deztopia already I love it <3 :) yes, you are spot on! user(pubkey) the data on their graph will by default be cryptographically signed but not encrypted (unless you encrypt it) so anyone can read but not edit/tamper.
And yes!! Very good thinking, user() could be any shared org, room, entity, institution, etc. ... but note!
(A) anyone who has login access to that "user entity" is capable of stealing the private key, which means you can never ban/boot/block them.
(B) gun currently does not support multi-user same-gun-instance login, so you can't have them logged into their "normal" account and the "room" account simulteansouly, tho this seems like a feature a lot of people are wanting/demanding.
(C) there are better approaches for doing rooms/etc. that re more flexible/powerful, I recommend chatting with Martti or James (looks like gitter<->discord bridge broken) and some others who have all implemented these permissions/rules for their encrypted chat apps.
@Stefdv dang :( what was the audio/video one, do you remember?
@deztopia intersting, unset( isn't even an official API :laughing: I don't know how it works, maybe somebody else in community does tho. What I do is just gun.get('list').set(item) ... gun.get('list').map().once(function(item, key){}) ... gun.get('list').get(key).put(null) as all set does is a gun.get('list').get(key = randomID()).put(item) underneath anyways.
Jason Melendez
@deztopia
Thanks @amark let me play with this a bit more. I did notice that if I pass a callback to gun.get() when retrieving the node to unset, even an empty callback like () => {}, then it works; unset removes the node from the list.
Mark Nadal
@amark
@cuterajat26_gitlab @deztopia @schicks are you able to join the http://chat.gun.eco discord? Most of the community switched there months ago, but I've always been worried about forcing people to use X or Y platform and not wanting fragmentation to happen.
Jason Melendez
@deztopia
@amark ah, I see...thanks, I’ll join today. btw, used your method to clear list items, and it works great so I’ll roll with that. I appreciate the help
Mark Nadal
@amark
@deztopia :tada: :tada: :tada: ! :D :) alright, cheers... gonna code cya.
Stefdv
@Stefdv
@amark no i don't remember what it was, i do remember that i never used it anyway... However there is a discussion about this going on - w3c/webrtc-pc#2489
Wilson Ler
@lws803
Hi! are there any updates on the grant and trust methods for user authentication? Are they still in development?
Mark Nadal
@amark
@lws803 yo :) I hope you made it over to the discord, sorry everyone for the community transition. Gitter was more "open" which I liked, but discord has been more stable/reliable & searchable. grant and trust way below the CPU scheduler, JSON parser, DHT, and base User API improvements & bug fixes. So yeah :P unless you want to contribute <3 <3 based off my spec/API design, assume its gonna be a long time.
@Stefdv thanks! See ya over in discord.
Max Baluev
@maxbaluev
Hello! I want to store large amounts of data using sharding. Is that possible with gun.js at the moment?
Max Baluev
@maxbaluev
@amark ?
Stefdv
@Stefdv
@maxbaluev you better switch to http://chat.gun.eco discord. I'm afraid gitter is getting less attention these days
@cuterajat26_gitlab @deztopia @schicks are you able to join the http://chat.gun.eco discord? Most of the community switched there months ago, but I've always been worried about forcing people to use X or Y platform and not wanting fragmentation to happen.
Max Baluev
@maxbaluev
thank you
Jacob
@jacobpdq

Long time everyone @amark just continuing research (now into first-order logic languages)

Is there some kind of identification protocol you'd like to see for identifiers or locators in any language for a gun call?

e.g. HTTP:// <locator>
e.g. gun:// <ip?> | <identifier?> | <pool?>
(hoping we can get some kind of browser-default WS call to any gun database that way)

I'm asking because OWL, N3, have these kinds of protocols embedded in their resource locators.
Jacob
@jacobpdq
could it be
wss://gunserver.com/#identifier, 'gun'
(protocol)
such as in var exampleSocket = new WebSocket("wss://www.example.com/socketserver", "protocolOne"
i.e. if I wanted to declare a triple, or some kind of RDF store... what would I put in there as the uri or identifier? @Dletta
Mark Nadal
@amark
@jacobpdq hiii :) may want to try discord now http://chat.gun.eco , I've always been anti-domain/protocol/etc. identifiers, as the only usefully meaningful thing that can be self-enforced is cryptographic identifiers, next up I do think it may be ok for schema identifiers to be embedded into it... which is kinda what a protocol is doing, but I think these should be optional/flexible/not-rigid. Finally, you'd probably want to do something like gun://soul never a domain or specific server, as the soul is the lookup for it, the servers shouldn't matter at the end of day.