Agent Centric Data and a Game about locations

Hey everyone, the project I’m thinking of building on holochain is a GPS based game where players would leave items places permanently.

Now in a blockchain, i’d be able to give each location an address hashed from it’s lat and long or something, but holochain is agent centric, so I’m not sure this approach would work.

I think I’d need to store a users placed items in their own agent data in holochain right?
If that is true, would a player being offline for long enough maybe result in their placed items disappearing from the DLT?

The game is pretty simple, It’d be a sticker placing game with some governance to hopefully run itself, even without me.

1 Like

I’m still curious if anyone knows anything about this?

Mmm yes absolutely, it’s quite easy to store geolocation addresses using anchors and paths. Have you seen the anchors and paths gym exercises?

As said elsewhere, the caveat is that geolocation data can be really easily mocked, and Holochain doesn’t have any built-in mechanism for that. If you want to implement some anti-gaming thing, you need to build it yourself (it could get quite complicated).

1 Like

Yes I have done those exersizes.
I’m not worried about that, I’m more worried about the following example:

Say I have this game as a mobile app,
It is a very idle game, similar to geocaching, so say people only log in occasionally, and while there’s only 100 active members at any given time, but there may be 50,000 total members. These other members have probably all placed a few items at locations around the world, so i’d link them to the location, but would that mean the 100 members would have to juggle the data for 50,000 or it would be at risk of being lost?

If members log off and never come back, is homochain an economical option for keeping their items persistent forever or would it put a strain on members and would I need some kind of full node solution?

Oh right, 100 nodes will be more than enough to hold all that data. Keep in mind that a link is like 1Kb of memory, if you want to run the computations of that is like 50 MB of links in total, and that would be sharded among the agents, assuming 25 nodes holding each entry that would be like 12Mb per agent. So storage is not an issue.

If you are concerned about always having nodes in the DHT, you can boot up always online nodes, or pay holofuel for holoports to do that for you.

1 Like

Thank you, that’s exactly what I was wondering.

For validation I was thinking of maybe using a TEE (trusted execution enviroment) though I’m not sure if holoports have them so people may need to use their own hardware.

But you can’t trust that nodes will execute their code in that trusted environment. How would you know? You don’t control those PCs.

you can use it as a credential.
If you associate your account with an anonymous but unique device using it’s TEE you could limit valid entries to ones signed by the PK inside the TEE couldn’t you?

But how would you know whether the actual instance is being executed from a TEE ? I could generate a private key in a TEE that gets authorized and then copy it in another device and use it from there…

How do you know a TX is signed by a wallet owner?
Isn’t that the same issue? Couldn’t I just use the signing method and pretend someone else has a link to something in their profile?

Well, the private key must not leave the device. If it does, the agent needs to revoke it. Then you can verify the signature with normal cryptographic primitives. Actually this is the first building block of all DLTs I think.