Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

New dht example for values storages #76

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

rach-id
Copy link

@rach-id rach-id commented Aug 9, 2019

The idea is to make a network where nodes can add values to the DHT (and not store them locally, a value should be stored in the closest node to its key) and others who have the keys (which for me are sha2-256 multihash) can retrieve these values.

So to get these nodes to be in the same network without having to hardcode the addresses etc. I found the pubsub pattern (the code im using is the pubsub example in the ipfs-camp-2019) that can give me this, and i found a DHT already defined there for routing.

This example uses Provide() to tell nodes that it has a certain CID and peers :

  • Create a CID of the value i want to store
  • Find the closest Peer to this CID by dht.GetClosestPeers()
  • I take this peer and make a connection to it and send it the CID and the value (using the chat example)
  • Each node has a local storage (i use a map for this) to store these values, so when it receives it, it adds to its local storage
  • After adding the key:value to the storage, it executes dht.Provide()to announce that it has that entry
  • Every node who wants this value and has the key, it executes dht.FindProviders()to find a peer having that, and it establishes a connection with it to retrieve the value from its local storage.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant