Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 00:47
    amark updated the wiki
  • Aug 06 21:03
    amark updated the wiki
  • Aug 05 14:44
    fitouch commented #1268
  • Aug 05 14:42
    fitouch synchronize #1268
  • Aug 05 13:19
    fitouch commented #1268
  • Aug 05 13:19
    fitouch commented #1268
  • Aug 05 12:49
    amark commented #1268
  • Aug 03 23:33

    amark on master

    argh, axe needed skip reset. + … is this good enough? it's alive!!!! and 3 more (compare)

  • Aug 03 23:11
    amark updated the wiki
  • Aug 02 21:46
    fitouch commented #1267
  • Aug 02 21:46
    fitouch commented #1267
  • Aug 02 21:46
    fitouch commented #1267
  • Aug 02 21:44
    fitouch commented #1268
  • Aug 02 21:44
    fitouch opened #1268
  • Aug 01 23:44
    fitouch commented #1267
  • Aug 01 22:12
    amark updated the wiki
  • Aug 01 22:12
    amark updated the wiki
  • Aug 01 22:00

    amark on master

    fix ws error/reconnect ordering requery - oye, hopefully safer perf seemed worth it to add MC … and 4 more (compare)

  • Jul 30 22:35
    fitouch commented #1267
  • Jul 30 21:34
    fitouch commented #1267
lain
@lain:iwakura.xyz
[m]
hmmm
James
@u007
hi guys, how do i check if a path have list or count the list?
4 replies
Kier
@syonfox

hi guys, how do i check if a path have list or count the list?

somthing like this I think

function isThere(thing, cb){
   thing.once(d=>{cb(typeof d == "undefiend")})
}
var things = gun.get('things');
things.set('cat');things.set('dog');

let jsArray = [];
things.map().once(thing=>{
  jsArray.push(thing);
  console.log(thing)
})
James
@u007
how do we know if its already finish receiving?
im also getting strange error: "Signature did not match." after .auth(). didnt get this issue previously. i did a removal of all radata folder and restart it. then i create the user, then login from frontend works. but on node stack, it login without error but throws Signature did not match.
7 replies
Kier
@syonfox
it wont call the once callback until its there for the first time.
someone correct me if im wrong but
case: no local it returns after val is goten from first peer?
case: local it returns synchronously from local storage ... (and again after network sync? pls confirm somone)
case offline no local synchronously returns undefiend
edit: to clarify for the once()
lain
@lain:iwakura.xyz
[m]
:point_up: Edit: idk what unbuild is but its using a dynamic require statement, ie require(var) which webpack doesnt like. i dont get the error if i import gun/src. EDIT i do get other errors though so this not a solution
lain
@lain:iwakura.xyz
[m]
im trying to set up a relay server / super peer. i ran the install script from the repo, but how do i connect to it from my client? i used const gun = GUN({ peers: ["<ip>:80/gun"] }); but it doesnt seem to be working
is there a sample project i can use to test it? idk if its my code or if the server isnt working
lain
@lain:iwakura.xyz
[m]
ah fixed it lol. i didn't have http:// before the ip address
Edoardo Cremaschi
@NuclearManatee

I think I'm doing something wrong and possibly stupid.

const gunSpace = Gun(['https://gunjs.herokuapp.com/gun']).get(appSpace);
gunSpace.put('name' : 'my name');

console.log(gunSpace.get('name')); // <-- [Object Object]

what am I missing? i Just want to get the 'my name' string.

6 replies
lain
@lain:iwakura.xyz
[m]
or you can use await and do const value = await gunSpace.get('name')
2 replies
Kier
@syonfox

or you can use await and do const value = await gunSpace.get('name')

https://gun.eco/docs/API#-a-name-then-a-gun-then-cb-not-official-yet-

also Bullet.js does some cool stuff but i went down the same hole the gun way makse sence if you start thinking in graphs

lain
@lain:iwakura.xyz
[m]
o ok
Kier
@syonfox
... So im looking into SEA/ users. And how do do user's decrypt data... say the server wants to give some data to a user do you HAVE to use the grant api and access it from bob.get('shared')put('yolo').grant(gun.get('~@Alice')) then can the Alice see gun.get('~@bob').get('shared') or does it also need to be placed in a public place. with something like bob> gun.get('shared').put(bob.get(shared)) // Alice can read but Keven cant??
Kier
@syonfox
or is it a just roll your own with sea kind of deal. ... is the user space accessible from other users. how does one publish a object that a user owns so others cant edit but anyone can see/decrypt depending on application
Mac16661
@Mac16661
How I can extract data return from content-addressing? Because it returning hash: data
Radu
@rococtz
@syonfox you never use public space for anything. you always use user space (with certify) or Content Addressing. For encryption see this
https://github.com/amark/gun/wiki/Snippets
1 reply
lain
@lain:iwakura.xyz
[m]
do you guys have any recommendations for increasing performance? i have a game and im using gun to sync player positions, calling .put(position) every say 50ms, but its pretty resource intensive and has a lot of latency
Radu
@rococtz
@lain:iwakura.xyz If you don't need to persist data (for example player position), why not use this one? https://peerjs.com/
also, how do you measure latency? latency between what and what?
3 replies
SiJinmin
@SiJinmin
hi @amark ! I'm sorry to spend your time for a very personal question, I promise I will be a fun of gun forever. ^^ The question is could you remember the link to the awesome tutorial of cryptography that you once provided in gun's documentation a few years ago? (In the new version gun documentation I cannot find it anymore.) I need this online tutorial to learn cryptography. thanks! ^^
asd417
@asd417
hi I'm new to this whole thing and I wonder how GUN handles proof of work or validating a peer's data
lain
@lain:iwakura.xyz
[m]
i had used yjs (a webrtc crdt database thing) before so i can use that for it i guess
Radu
@rococtz
@asd417 You can probably write a book about that :) But you can have a look yourself in the docs, maybe start with the Architecture chapter https://gun.eco/docs/
Or maybe this https://gun.eco/docs/Cartoon-Cryptography#cryptography for @SiJinmin as-well
SiJinmin
@SiJinmin
@rococtz yes, I have read these cartoons, but I want to learn the detail principles and algorithms for crypto, so I need a more detail tutorial about crypto. Thank you!
Edoardo Cremaschi
@NuclearManatee

a question about data modeling. How can I handle objects with arrays in it? Example:

let object = {
  scopes : [ 
    { name: 'a'},
   { name: 'b'}
  ],
  value : 'my value'

do I have any alternative other than decomposing the object and the array and saving into gun using gun.set() ?

Ty Rauber
@tyrauber
Hey All, I am exploring the use of Gun in Expo following the ReactNative example. I guess I have some questions on dependencies, specifically in regards to SEA. It looks like Metro doesn’t support dynamic imports? I am getting the error "Dynamic require defined at line 5; not supported by Metro”, related to the use function at line 15 of SEA.js. Anyone have some experience using Gun in Expo, or interest in helping sort out a demonstration? I am interested in building a simple client/server monorepo that demonstrates basic auth and chat.
James
@u007
gun.unset code chnanged? my code didnt work
gun.user().get('coins').unset(gun.user().get('coin/code1'));
1 reply
and also this issue
// does login here
let machines = gun.user().get('machines');
let machine = gun.user().get('machine/tesseract');
machine.put({faces: 24, cells: 8, edges: 32});
machines.set(machine);
// let's add machine to the list of machines;

let machine2 = gun.user().get('machine/tesseract2');
machine2.put({faces: 1, cells: 1, edges: 1});

machines.set(machine2);

gun.user().get('machines').map().once(() => {
    //this is called once only with machine, not machine2

})
Adam Bowman
@abow
if it did break, I'm guessing that rel and node aren't always "#" and "_"
gunchatbridge
@gunchatbridge
[D]Alta: should I mod gundb to have the features I need, and risk having my version and the original try to talk with each other or should I write my own version from scratch?
Mark Nadal
@amark
@resession :clap: :clap: ! w000!
@u007 when Browser B makes a query, it gets relayed to Browser A even if Relay has 0 data, and Browser A serves the data, then this gets re-cached on Relay.
@gun-db-fan:matrix.org :clap: @rococtz !
@syonfox that was a bug in the CPU scheduled JSON parser I wrote the other month, see PR that has a fix we're merging, or tell GUN to use regular JSON not mine. Sorry :(
@lain:iwakura.xyz :clap: @finwo , or maybe user a webpack ignore fs etc. (?) Or one of you want to do a screencall with me to see why webpack has changed... for the 7th time in 5 years? They really make library dev life miserable by constantly changing.
@u007 wat? Several other apps (like Svelte Fireship one) all export gun.user() and then reuse it several other places, same as with vanilla. What env are you in?
Hmm, so maybe Browser is fine but NodeJS really doesn't like the User and isn't staying logged in?
interesting @syonfox !
@syonfox once() usually calls undefined if no data can be found within some timespan on the current network. However .map() will make things stream, so you'd want to .once(checkNotFound).map().once()
@lain:iwakura.xyz :sweat_smile: I'm glad you were able to figure it out and fix!
@NuclearManatee :wave: ! :) :clap: @lain:iwakura.xyz !
... will catch up later on rest ... (or ping me if still need help on some)
tedd pasta
@azdez:matrix.org
[m]

just got released, if anyone wants to download agregore, here is the release link

https://github.com/AgregoreWeb/agregore-browser/releases/tag/v1.0.0-44

gun-fetch README.md is outdated btw, i'll update it before i go to sleep
i001962
@i001962:matrix.org
[m]
Thought this was pretty interesting idea and appropriate to some of the work here on SEA https://static1.squarespace.com/static/6182fa0bdec2ad76a2de22f0/t/61a54d333ed02a77d17716df/1638223155336/Polychain.pdf Not sure if the author is in this group anymore he was in the discord fro awhile
gunchatbridge
@gunchatbridge
[D]Alta: What happened to Amark?
Hsingai Tigris Altaica
@DrAlta
gunDB is awesome but I think I just want to use it because if I make a cool piece of software with gunDB the gundb community will talk about it... and using it asa marketing ploy seems wrong....
gunchatbridge
@gunchatbridge
[D]KMac (i001962): Discord ban likely for too many posts too quickly in a server (bluesky). Find him on chat.gun.eco
tedd pasta
@azdez:matrix.org
[m]
@DrAlta: are you talking about me? agregore is not my project.
Hsingai Tigris Altaica
@DrAlta
@azdez:matrix.org no. I'm talking about my My Country Talks clone for all types of divides not just political divides
Gideon Wislang
@GideonWislang
@amark How would you handle cross-signing with metamask public key and signed message
tedd pasta
@azdez:matrix.org
[m]
i have a dilema. i can either save secret/private keys in memory and on-disk. it will be encrypted of course, but still less safe since i will hold the data. or i can recreate a function i need from the dht/bencode module that the webtorrent dht uses, this would mean if the webtorrent team/feross ever updates that original function then it will break my module until i update mine and match their changes, this choice is safer though since i am not holding any secret/private keys, i am only holding signatures, so much more safer. which would you rather do?
tedd pasta
@azdez:matrix.org
[m]
i'll go with the second choice, safety comes first.
ranon rat
@ranon-rat
Hi
Im having a little bit weird problem
hm
im trying to put some data in a row or something idk called users