ipfs / ipfs/kubo

Ability to pin ipns names

Open
#1,467 13 comments 61 reactions 0 assignees View on GitHub
kind/enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.