Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 26 19:44
    dweorh updated the wiki
  • Jan 26 17:10
    phantomlsh commented #1193
  • Jan 26 12:22
    Jourdelune closed #1183
  • Jan 26 12:22
    Jourdelune commented #1183
  • Jan 26 10:17
    atordvairn commented #1183
  • Jan 26 10:16
    atordvairn commented #1183
  • Jan 26 01:36
    phantomlsh opened #1193
  • Jan 25 06:54
    janbkrejci commented #1119
  • Jan 24 22:51
    lmangani commented #68
  • Jan 24 22:39
    ericvrp commented #68
  • Jan 24 13:27
    705queenbee commented on ce20e07
  • Jan 21 08:17
    Orimay synchronize #1191
  • Jan 21 08:11
    Orimay synchronize #1191
  • Jan 19 18:24
    julesl23 opened #1192
  • Jan 16 08:22
    davay42 updated the wiki
  • Jan 16 08:20
    davay42 updated the wiki
  • Jan 16 06:22
    Orimay opened #1191
  • Jan 16 05:22

    amark on master

    Update README.md (#1181) (compare)

  • Jan 16 05:22
    amark closed #1181
  • Jan 16 05:22
    amark commented #1181
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.
rococtz
@rococtz:matrix.org
[m]
@amark: How can we make them choose the right shard key? Can you tell a node relay "Hey, other than being a relay, can you also make sure you always watch this subgraph?" ? The other worry is how do you watch user spaces since they are all root nodes?