Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Dec 01 16:01
    ameoba32 opened #1295
  • Dec 01 07:28

    amark on master

    toString must be stringy! (compare)

  • Dec 01 05:29
    amark commented #1287
  • Dec 01 05:21
    amark commented #1289
  • Dec 01 05:20
    amark commented #1293
  • Dec 01 05:12
    amark commented #1294
  • Nov 30 08:27
    soulofmischief commented #1294
  • Nov 28 23:07
    ViteOrder opened #1294
  • Nov 24 06:51
    expelledboy synchronize #1276
  • Nov 22 18:04
    BrendanDN commented #1290
  • Nov 22 18:04
    BrendanDN closed #1290
  • Nov 22 18:04
    BrendanDN commented #1290
  • Nov 22 17:59
    BrendanDN commented #1292
  • Nov 22 04:07
    ndaidong commented #1292
  • Nov 21 20:28
    verschmelzen opened #1293
  • Nov 21 19:44
    BrendanDN commented #1292
  • Nov 21 14:50
    ndaidong opened #1292
  • Nov 19 17:41
    estebanrfp commented #1080
  • Nov 18 21:26
    @rogowski banned @jesus:halogen.city
  • Nov 18 17:04
    yuetloo commented #1290
LnrCdr
@unameit10000000
For example: At this moment i've connected a bunch of peers and a few relay servers. But each peer seem to store a exact copy of all data in the network. So if 100mil+ data records/units (however you wanna call it) are created on the network my entire disk will eventually run out of ammo. How can I control this?
Carlos Vega
@alterx
You can't, really. At least that's how the ideal situation would work: it's a huge network in which everyone stores everyone's content
If you want to control it you need to write custom "middleware" so you can filter at peer (node peer)level
And then the browsers only are supposed to sync the data the client subscribes to
For example, https://github.com/zrrrzzt/bullet-catcher this validates if a message has certain token. You could start from there and just allow certain IP addresses, domains, etc to write to your peer
It depends on your use case, really. But I don't think there's anything built in to specifically control storage space. You'd have to come up with some method that fits your use case
rococtz
@rococtz:matrix.org
[m]
@unameit10000000: The peers only store the data they subscribe too. It's not like bitcoin where everybody stores everything.
Carlos Vega
@alterx
@rococtz:matrix.org this is true for browser peers, but is it true for node peers? I thought they aggressively replicated all the data

OK.
Who is the person running a pirating site ontop of GUN?
Fess up now, to me, in a twitter DM.
Cause I turn on my DHT tests and my computer literally starts streaming 5MB/s of data from random peers out there
and when I peek at the data, its a whole catalogue if movie titles, descriptions, etc.
TBH, I have no clue how this is happening or working.
The DHT test is already connecting to random machines that should be impossible (it's already found Iris' rust peer, even tho we never coded it to find it, and I haven't even published the code yet! I'm not sure how this is possible.)
Ugh...
I've already seen the test crash multiple random relays.
I apologize, please watch your relays as they might get DDoSed as I'm trying to stabilize network.
And then I'll need everyone to upgrade code, so we're running the same stabilizers.
I guess I'll catch up with chats now instead, seeing some bugs reported.
Give me a bit to read thru & reply.

at least this seems to be how it's going to work

AndrewRailton
@AndrewRailton
Having a bunch of uncontactable peers (I was using the volunteers list) seems to tank my apps performance, is that normal?
It's really snappy when it's just the relay I control
Carlos Vega
@alterx
I think I remember Martti had some issues with Iris when he had more than one peer
Mark Nadal
@amark
@VittorioParagallo yo @mmalmi can you talk to @tylerjwatson etc. ?
@ahg:it-dengler.de or vanilla or SecureRender?
@Hr4rjuku :+1:
@worldpeaceenginelabs can't the data be converted into plain object properties of text / numbers, etc.? Just save that to GUN, Cesium probably has special Class constructors, ignore it, just grab the values.
@fitouch pinged sirpy. Dang, sad to hear about RN perf even with native bridges. Maybe this will help throw more weight towards SecureRender?
@alterx what's the side project?? :)
@unameit10000000 :clap: @abow @Lexi:matrix.org . AXE cuts off data if not subscribed, so you need to subscribe to data. Also, try latest github main, quite a few fixes to AXE.
@verschmelzen:matrix.org :clap: @Lexi:matrix.org . Yeah, if you already have a common secret key, use that as await SEA.encrypt("hi group", commonSecret) don't forget to study the https://gun.eco/docs/Cartoon-Cryptography .
:clap: @alterx :clap: @rococtz:matrix.org . In future (much closer now, with book) relays can define a shard key (a range of data they save).
@AndrewRailton which version? I'm currently experimenting with this stuff. Did your peer get auto-connected to, or?
@computervillain_twitter :fire: <3 thanks!!!!
@ahg:it-dengler.de certs can set an expiry, tho you can also have a a 2ndary "revoke" list your app subscribes to & checks.
whoooooo wants to help add lots of tests to book / new RAD?
Can I get 3 people here to try testing their current app out against latest github? All my tests (unit & PANIC) are passing, and I'd like to get it published.
Mark Nadal
@amark
it has fixes (from what I can test) for login issues, reconnect issue (tho this might cause some perf issues during reconnect), much better peer handling logic (in prep for AXE), a NaN fix, and several cool new scaling features nobody here will probably care about: put sampling, mob checks, frame skipping, etc.
I keep delaying the v0.2022 because as many of the fixes I can do in old version (remember, I rewrote the whole thing with CPU scheduling, without version breaking!!) I want to. But RAD is in a bad shape, and the sooner I can get to v0.2022 to kill the enametoolong, have multi logged in users, frozen chaining, etc. the better
Mark Nadal
@amark
which btw, those last 2 items are vanity, therefore not something I've done yet, would be deeply appreciated if someone could help? Oh, also switching certify to embed itself in the value, not pass as opt since opt doesn't go to disk.
I guess put sampling should've been a version change, but false positives on it probably still safer than without since RAD hasn't been upgraded.
verschmelzen
@verschmelzen:matrix.org
[m]

I am getting deeper and deeper into cryptography, and all I want to do is get a key pair from a shared secret.

SubtleCrypto can only deriveKey from already valid key. So I found this package. But they have keyFromSecret only on EdDSA curve, and afaiu ECDSA does not support key generation from random data (which is weird because if I was able to replace internal random number generator with my own I would get what I want, no matter the curve).

So I have 2 options now:

  1. have some key pair embedded in code to use as initial point on ECDSA curve
  2. just use EdDSA keys instead

The question with 2 right now is if GUN could use those keys or is it only can work with what is compatible with SubtleCrypto?

also apparently secp256k1 is not safe 🤷
verschmelzen
@verschmelzen:matrix.org
[m]
And I am probably wrong for calling EdDSA or ECDSA a curve
Carlos Vega
@alterx
@amark I can test tomorrow 👀
Andre
@ahg:it-dengler.de
[m]
Get node by soul seems to work from "root" like gun.get(soul) and fails from a graph sub node like gun.get("first").get(soul) also if the node with soul is a child of "first". But I think if it's user graph could be better to use gun.user().get(soul)?
Is there a way to get / find the correct node base? If it's user or public context? Or is that for simple get(soul) not important (for example because of write context?!)?
7 replies
Chandan Das
@champ5898
getting this : RangeError: Maximum call stack size exceeded
Warning: You're syncing 1K+ records a second, faster than DOM can update - consider limiting query.
LnrCdr
@unameit10000000
@alterx @rococtz:matrix.org @amark Allright, thanks for answering. I can definitely work with this! 🚀
fitouch
@fitouch
@amark There's new React Native JSI that removes the need for a bridge between Native(Java/ObjC) and Javascript code. It also removes the requirement to serialize/deserialize all the information as JSON for communication between the two worlds. https://blog.notesnook.com/getting-started-react-native-jsi/ This might be big helpful for GUN
2 replies
Bo
@worldpeaceenginelabs

@draeder

@draeder is the code execution a gun feature or a gunsafe feature? is it possible to use the execution function from gunsafe solo?

It's a gunsafe feature, but really should be used with caution because both methods have access to the global scope.

hmm... what about encryption? the form and the globe could share a secret? than nobody except the original app's form and the original app's globe could communicate, or not?

@amark you right, that special class constructors could exist, ill give it a try
Danny Criss
@DannyCriss1_twitter
Hello, does gun work with Angular? bcs it gives me "WebSocket connection to 'ws://localhost:8765/gun' failed:" with it; React integration works fine
2 replies
Fedox
@fedox:fedox.pl
[m]
Could someone provide me with some directions as to when I can use load/open and when I should use once/on
?
ADAM BLVCK
@adam_blvck:matrix.org
[m]
Daniel Raeder
@draeder

@draeder

@draeder is the code execution a gun feature or a gunsafe feature? is it possible to use the execution function from gunsafe solo?

It's a gunsafe feature, but really should be used with caution because both methods have access to the global scope.

hmm... what about encryption? the form and the globe could share a secret? than nobody except the original app's form and the original app's globe could communicate, or not?

@worldpeaceenginelabs If it's your code from your app, it should be okay. You could sign the code with SEA.sign() and verify it with SEA.verify() to ensure it truly is your app's code.

ADAM BLVCK
@adam_blvck:matrix.org
[m]
Hey all, I've made this architectural image to represent how I see gun moving forward
ADAM BLVCK
@adam_blvck:matrix.org
[m]
Gun-nodes and relays will eventually cost money to run, and most of us are trying to make apps. So how to include simple payments into this app, while still using gun for operations? For example, say I'm building an AI-image generation service for users, through gun, images saved and encrypted with SEA in S3. The image tries to summarise building blocks to pull the problem apart. @amark the model includes your comments on payments with globally consistent data bases, vs eventually locally consistent. I just checked that I'm not using the WebView Bridge, I'm going to try that!
Bo
@worldpeaceenginelabs
@draeder cool. is that also secure against the console injection you guys warning often?
Manwë
@Manwe-777
@adam_blvck:matrix.org what is the point pf using gun in such infrastructure? Key pair identity is standard these days, so is encryption, im just failing to see the upsides over any regular centralized systems since the backend for business will still be centralized there
1 reply
Daniel Raeder
@draeder
@worldpeaceenginelabs I don't believe so.. Console injection is usually done through social engineering.. You could add a warning like what iris has that says something like "If someone is asking you to paste code here, it's a scam!", I have not tested Gunsafe in the browser. It should work.. but I haven't tested it
ADAM BLVCK
@adam_blvck:matrix.org
[m]
@Manwe-777: You could also see it in terms of distinctions. In a network of users, a few will provide a service (write pdf, make logo, generate video, help fixing the car, ...) which attracts more people. This service provider can then take small payments, if it's willing to setup a business configured node (centralisation of service).
Azarattum
@azarattum:matrix.org
[m]

What would be the best way to clear local GUN’s cache from specific nodes? Let’s say we have gun.get("cache") and gun.get("important"). Cache could get really big really fast, so I want to provide users with an option to clear it locally while leaving the important node intact. So, gun.get("cache").set(null) is not an option since it will propagate changes to the network.

What should I do? Should I access the localStorage directly? Is there a way to clear all the data that GUN currently isn’t subscribed to?

verschmelzen
@verschmelzen:matrix.org
[m]

Hey. Got a little question.

When I am doing user.get('members').map().on((m, key, ref) => {}), I am receiving some object as ref. I cannot find it in doc now, but I am sure that I saw somewhere that it sould be a reference to the gun node it .on is fired on (i.e. be equivalent of user.get('members').get(key)). But it is not like this and I am getting some different kind of object.

Question: should ref in user.get('members').map().on((m, key, ref) => {}) be same as user.get('members').get(key) or is ref a part of internal chaining api?

verschmelzen
@verschmelzen:matrix.org
[m]

Ok. I maybe got the source of my confusion now, I saw gun.promOnce return value and expected other methods to return the same, but gun.promPut for instance works differently.

Maybe all those methods and usual ones like .on, .once, etc can be better returning the same? Just a thought 🤔

for .on my use case is being able to chain .map().on(cb) and get a reference to the node in the map in cb along with data and key. This is more like sugar and unnecesary, but would be convenient
verschmelzen
@verschmelzen:matrix.org
[m]
I just found out that I have around 74 items in my GUN set, but when I run .map().on() it gets called ~6000 times
.map().once() triggers 74 times
and I have no peers (gun = new Gun()), so that means I am doing 6000 updates?
verschmelzen
@verschmelzen:matrix.org
[m]
I commented all put and set statements and tested .map().on() again, still a whopping 10 000 calls
but the number of calls gets down to 4 when I uncomments single .get('members').promSet
I am lost at this point