Ability to pin ipns names
- Dominant language
- Go
- Stars
- 17.1k
- Forks
- 3.2k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 11
Description
It would be very nice to be able pin IPNS names, such that the daemon periodically polls the DHT to find if there are any new hashes published to the requested names, and then automatically pins them if so.
Depending on the structure of the code (I'm not familiar with Go), this may be a simple matter of creating a new thread to sit in a loop that does
```
while(running){
for each (name in pinned_names){
new_hash = resolve(name)
if(new_hash != last_good_known[name]){
pin(new_hash)
unpin(last_good_known[name])
last_good_known[name] = new_hash
}
}
sleep(something_sensible)
}
```
This would make it very easy to use IPFS as a backup solution, either to create a mirror of your website on another of your servers, or to make general backups to a remote machine (e.g. passworded duplicity backups would work quite well here).
Note that there should be some way within the command line syntax to allow the user to include a '-r' recursive pin/unpin option, for distinguishing if the user wants to pin a single node or the entire tree. Possible syntax could be something like ipfs pin name add -r .
Contributor guide
Research direction
Start by tracing the daemon's existing pin and IPNS resolution flows, then inspect the command-line pin syntax and DHT polling behavior. Clarify how recurring updates, recursive pinning, and replacement of previously resolved hashes should work; done means the behavior is implemented, exposed through the CLI, and covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100