Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Dec 03 11:56
    Emad-salah commented #1170
  • Dec 03 11:50
    Emad-salah synchronize #1170
  • Dec 03 03:20
    aethiop closed #1163
  • Dec 03 02:39
    amark commented #1167
  • Dec 03 02:39

    amark on master

    make change to lib/unset.js (#1… (compare)

  • Dec 03 02:39
    amark closed #1167
  • Dec 03 02:37
    amark commented #1163
  • Dec 03 02:35
    amark commented #1167
  • Dec 03 02:20
    amark commented #1170
  • Dec 02 16:48
    u007 commented #1173
  • Dec 02 16:47
    u007 commented #1173
  • Dec 02 16:47
    u007 closed #1173
  • Dec 02 16:44
    u007 commented #1173
  • Dec 02 16:29
    u007 opened #1173
  • Dec 02 12:39
    fsvieira opened #1172
  • Dec 01 23:00
    amark commented #1167
  • Dec 01 21:21
    Oxey405 opened #1171
  • Nov 30 15:07
    Emad-salah opened #1170
  • Nov 29 22:49
    fsvieira edited #1168
  • Nov 29 22:47
    fsvieira commented #1168
Ruslan Jankurazov
@ruslanjan
I did that for now, and it works. Before I called await gun.get(data) all the time
Mark Nadal
@amark
@libensveto_twitter w00000! Thanks for the demo :D tho can you explain the reject part its confusing me? Basically the realtime gun powered dashboard still gets updates of all attempted transactions? Is that the intent of the demo?
@mimiza <3 <3 <3 <3
@awaisnazir21 thank you! Yesss! map is very much there for table/sql like thinking ( https://gun.eco/docs/Graph-Guide ) .(what do you mean email/password?) :clap: @rococtz:matrix.org is correct that .then() does not work with map because JS Streams are not Promises.
@huberttl you can't save primitives to root level nodes, it should log such a warning rather than crashing but looks like I need to fix that, thanks for the heads up, I'll make that more clear with an error.
@mundane_pftts:matrix.org :wave: :). :clap: @jabis ! Great pro tip on how to reset dev gun network!
@ruslanjan either as an Array Object, or stringify, or .set( for loosely ordered lists.
@bresnow :fire:
@mmalmi I AM SO EXCITED THIS IS SO COOL!!!!! Just got off multiple hour call with you seeing this, so epic.
@gunchatbridge hi ralev!
@ruslanjan check out .open( in docs/API#open
will be back on later tonight.
Ally Jr
@3210jr
Hey all! Is it a best practice to not have nodes you wish to delete later as root nodes? As you cannot set primitive values (null tombstone) to it?
The docs seem to indicate I can just gun.get('uid').put(null) to delete something but I keep getting the same error as @huberttl but for react-native: TypeError: Cannot read property 'push' of undefined, js engine: hermes
libensveto
@libensveto_twitter

yep, the rejection is bc i got no eth to pay for it. I should play around on a testnet. The mvp would be

product creation -> checkout generator with product built in snippet -> analytics of all transactions that checkout produces -> potential profiling of repeat customers & streamlining for them.

Then b2b functionality for business to start trading in eth, with automated payments, one off payments and invoicing in eth.

like if xero or quickbooks could do b2b transactions and plug and play checkouts

@amark
libensveto
@libensveto_twitter
successful transaction with data put in a bucket on the other end
rococtz
@rococtz:matrix.org
[m]
@3210jr: It's not best practice to use root nodes in the first place because root nodes are part of the public space. That means that everybody can delete/edit that data and you don't want that. If you want to build a real app, you must use the user space which everyone can read, but the write is restricted. By default, only the owner of the user space can write, but you can grant other people write access using SEA.certify. These certificates can allow specific people or even everybody but based on certain rules (for example, you can write under my user node, but only into a sub-node that contains your pub key).
1 reply
achilles
@achilldotes_twitter
Hello all, I have finished up a project and have a lot more free time to study gun. I learn best by reverse engineering pre built things while following along with the documentation. My main concerns are understanding how log in and register systems work on gundb. I am looking for a project that performs logging/registering and perhaps some other tasks like private messaging if possible. The first open source project that pops up into my mind would be NotABug. I haven't had the time to look into their code, but the site seems very well formed from the outside. Is this the best possible project I could devoid my time to? Or has a more impressive forum/chat open source project been made for gun? Thank you for your time.
rococtz
@rococtz:matrix.org
[m]
@achilldotes_twitter: The authentication part is actually part of the SEA module, not really part of the core of Gun.
If you are interested in chat/messaging/social media built with gun, you can checkout iris messenger:
https://github.com/irislib/iris-messenger
https://github.com/irislib/iris-lib
Also, if you want to reverse engineer it, why not just straight-forward engineering without reversing it?
https://gun.eco/docs/Porting-GUN
achilles
@achilldotes_twitter
@rococtz:matrix.org thank you so much, I think this might be my prime choice as long as it's open source. Looks very robust. My only complaint is how it automatically creates an account on first page visit. However, I bet that is more of a DAPP thing and is pretty well respected in the DAPP community. I will be considering that in my implementation.
rococtz
@rococtz:matrix.org
[m]
who creates an account on first visit? iris messenger?
that's nothing to do with gun
it's just an app decision in iris messenger
Mark Nadal
@amark
@3210jr :wave: ! :clap: @rococtz:matrix.org
@libensveto_twitter ahh duh I should have realized that lol sorry. Interesting. I'm not super familiar with blockchain/payment world, so is what gun is doing here is realtime updates - but don't they depend upon reading ethereum status, so therefore just as slow?
@achilldotes_twitter :wave: ! :clap: :clap: @rococtz:matrix.org !
libensveto
@libensveto_twitter
@amark a failed transaction -> failed gun put() so yea just as slow. Guns the backbone for attaching wallets to people, analytics for sales and inventory management.
Ruslan Jankurazov
@ruslanjan
Does .then() no longer required?
rococtz
@rococtz:matrix.org
[m]
@3210jr: anytime, good luck with the app 👍️ I think we always have to assume bad intentions from the users when building apps
@ruslanjan: what do you mean by that?
Ruslan Jankurazov
@ruslanjan
@rococtz:matrix.org I can do this data = await gun.get("someNode") and it works. But docs says that I should call .then() beforehand
i001962
@i001962:matrix.org
[m]
Uplibensveto_twitter (libensveto) this is inspiring!
Martti Malmi
@mmalmi
Iris should automatically create an account if you navigate to a url other than the root (https://iris.to). I chose that so I don’t need to make views for non-logged-in users, keeping things simple
Yet you’re not blocked by the login screen when following a direct link to someone’s profile
Ally Jr
@3210jr
Hey again, the docs indicate that the user.grant() method is deprecated, what is recommended instead of that? is it to create a certificate like: var certificate = await SEA.certify(alice.pub, ["^AliceOnly.*"], bob) and then use the cert in writing to the users node?
I'm coming across it in a few examples and snippets, and have some uncertainty around it. Thanks!
1 reply
erokken
@erokken:matrix.org
[m]
Maybe stupid question but couldn't find in docs... Is there anyway to protect data from unauthorized modification or maybe immutable unchangeable data?
1 reply
pwFoo
@pwFoo

Hi,
I played with user nodes as read only data and was surprised to see users child nodes listed by get users node by pub key?

gun.get('~<PUBKEY>').once(console.log)
[...]
BUM: {#: '~MHmPSW9L6hPIz6LSOT_awz53vgOV3KzJU_q6EjtwbYc.hAorZTIMtoVvGiIOSlFVG0Ts_PlwDsoRm6gJikT_ZL4/BUM'}
BUM2: {#: '~MHmPSW9L6hPIz6LSOT_awz53vgOV3KzJU_q6EjtwbYc.hAorZTIMtoVvGiIOSlFVG0Ts_PlwDsoRm6gJikT_ZL4/BUM2'}
BUM3: {#: '~MHmPSW9L6hPIz6LSOT_awz53vgOV3KzJU_q6EjtwbYc.hAorZTIMtoVvGiIOSlFVG0Ts_PlwDsoRm6gJikT_ZL4/BUM3'}
BUM4: {#: '~MHmPSW9L6hPIz6LSOT_awz53vgOV3KzJU_q6EjtwbYc.hAorZTIMtoVvGiIOSlFVG0Ts_PlwDsoRm6gJikT_ZL4/BUM4'}
[...]

So it's possible to read the hole user nodes / graph if the public key is known?

erokken
@erokken:matrix.org
[m]
So have a user/trusted node encrypt data in a signed fashion so as long as you trust that user you can rely on the data?
pwFoo
@pwFoo
Some days back there was an example with path like node names / IDs... Thats nice to get child nodes. But is there a technical reason why I shouldn't use path style (/parent/child/node) to create new nodes? I can keep that strings simple without special characters apart from /...
pwFoo
@pwFoo

Some days back there was an example with path like node names / IDs... Thats nice to get child nodes. But is there a technical reason why I shouldn't use path style (/parent/child/node) to create new nodes? I can keep that strings simple without special characters apart from /...

Ok, read graph / tree like a path seams to work, but create nodes that way seems to be not the same...

libensveto
@libensveto_twitter
@i001962:matrix.org thanks hopefully it doesnt take to long to build, and there will be abit of traction
Mark Nadal
@amark
@ruslanjan SEA includes the await ability, GUN does not by default.
@mmalmi :clap:
@3210jr :clap: @jakethejab .
@erokken:matrix.org :clap: @jakethejab
@pwFoo .open(cb after requiring it, docs/API#open
/ has no special meaning, at any point the soul or UUID could be random, not a path, so be careful.
@libensveto_twitter :clap:
pwFoo
@pwFoo
@amark I don't need recursive documents. Is it possible to hide child documents?
rococtz
@rococtz:matrix.org
[m]
@pwFoo: What do you mean by hide? Hide them when you request them or just hide them so nobody can access them at all?
pwFoo
@pwFoo
Or are all user documents visible by public key of the user?
@rococtz:matrix.org I think it's needed by design... But wasn't clear to me.
pwFoo
@pwFoo
I thought I just share one "link" (pubkey + document) to a user document and people just know about that document. But user node includes the document path of sub documents and so everybody could explore the hole user tree
rococtz
@rococtz:matrix.org
[m]
@pwFoo: yes, in gun ALL data is visible by everybody, even if they don't know the pub key
Mark Nadal
@amark
@pwFoo :clap: @rococtz:matrix.org correct, which is why SEA exists to encrypt the data so nobody can read it.
rococtz
@rococtz:matrix.org
[m]
@pwFoo: right, I should have mentioned that! everything is visible, but if you encrypt it on the client side using SEA.encrypt, everybody will still be able to see it but it won't mean anything to them
Ruslan Jankurazov
@ruslanjan
Can I use any gun relay, or specifically made for the app?
Would be cool If we could just use existing network
btw how AXE is going?
Mark Nadal
@amark
@ruslanjan better if you can deploy yoru own with the 1-click. I was gone for the 3 weeks and gotta get back to docs before I do AXE so AXE is still... trashed :( but don't worry, that's the future, so must-requirement for me.
erokken
@erokken:matrix.org
[m]
The 1-click is just running npm start in the github project right?
rococtz
@rococtz:matrix.org
[m]
erokken: correct
@amark: Imagine this situation, please: I deploy my peer to heroku and it will have AXE turned on by default. My peer will automatically be added to a cluster. After a while, my peer gets taken down for whatever reason. Is there any way to ensure the data was replicated redundantly on other peers? Is there any way to force that?
Mark Nadal
@amark
@erokken:matrix.org :clap: @rococtz:matrix.org !
@rococtz:matrix.org because we have millions of unreliable browsers to start with, that will already be emulating that behavior, yes, relay peers will have the same logic.
Peers will choose a shard key, and the health of that shard key (online replication factor) will have to be monitored.