Simple example of datapod profile publish process

I already published an example of datapod profile publication in Duniter Panel, but it was using embedded IPFS node and mixed with the Vue logic. @kimamila @poka and @vjrj asked me to provide a simpler example of how to publish a datapod profile. Here it is:

Please keep in mind that submitting data to the https://rpc.datapod.gyroi.de/ lets the datapod network know about the data, but no pinning mechanism has been implemented yet, so the data is guaranteed to disappear on the next garbage collection.

For the data submitted here to be guaranteed to survive, some IPFS nodes should implement a pinning strategy. This can be based on :

  • some kind of address whitelist
  • payments in Ğ1 in exchange of a quota of bytes
  • trust level expressed using the web of trust or profiles “likes” (unimplemented yet)

This is quite easy to implement and plug on your node, I’ll give a basic example soon.

2 Likes

Sorry, I’m lost.

I’m using the mutations to manage the profiles.

But for now it does not work:

flutter: │ [GraphQLError(message: http exception when calling webhook, locations: null, path: null, extensions: {path: $, code: unexpected})]
flutter: │ #0   updateProfileV2 (package:ginkgo/g1/datapod_api.dart:398:15)

Similar error with profile delete.

The mutation scheme is not compatible with the decentralized signed tracable ipfs-based datapod system yet. So the mutations are reserved for instance admins (for moderation purpose for instance).

@poka worked on a centralized datapod infrastructure with mutations that is talked about here : V2s-datapod: Hasura with Deno middleware to store profiles. You can use this, however :

  • you will have to setup an instance for users to put data on it
  • there will be no mechanism to decentralized data
  • you will be responsible for user data and service uptime

I recall that my datapod suggestion aims to be decentralized and is at the PoC stage. Clients developers can choose on which backed they want to store offchain data, each with benefits and drawbacks. One could event use firebase, even this would be quite far from Duniter philosophy.