Skip to content

Commit

Permalink
reprovider: add config option to set reprovide interval
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
  • Loading branch information
whyrusleeping committed Aug 19, 2016
1 parent 7276fd8 commit ad488c6
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 1 deletion.
15 changes: 14 additions & 1 deletion core/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,20 @@ func (n *IpfsNode) startOnlineServices(ctx context.Context, routingOption Routin
}

n.Reprovider = rp.NewReprovider(n.Routing, n.Blockstore)
go n.Reprovider.ProvideEvery(ctx, kReprovideFrequency)

if cfg.Reprovider.Interval != "0" {
interval := kReprovideFrequency
if cfg.Reprovider.Interval != "" {
dur, err := time.ParseDuration(cfg.Reprovider.Interval)
if err != nil {
return err
}

interval = dur
}

go n.Reprovider.ProvideEvery(ctx, interval)
}

// setup local discovery
if do != nil {
Expand Down
4 changes: 4 additions & 0 deletions docs/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ a running daemon do not read the config file at runtime.
- [`Identity`](#identity)
- [`Ipns`](#ipns)
- [`Mounts`](#mounts)
- [`ReproviderInterval`](#reproviderinterval)
- [`SupernodeRouting`](#supernoderouting)
- [`Swarm`](#swarm)
- [`Tour`](#tour)
Expand Down Expand Up @@ -192,6 +193,9 @@ Mountpoint for `/ipns/`.
- `FuseAllowOther`
Sets the FUSE allow other option on the mountpoint.

## `ReproviderInterval`
Sets the time between rounds of reproviding local content to the routing system. If unset, it defaults to 12 hours. If set to the value `"0"` it will disable content reproviding.

## `SupernodeRouting`
Deprecated.

Expand Down
2 changes: 2 additions & 0 deletions repo/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ type Config struct {
SupernodeRouting SupernodeClientConfig // local node's routing servers (if SupernodeRouting enabled)
API API // local node's API settings
Swarm SwarmConfig

Reprovider Reprovider
}

const (
Expand Down
3 changes: 3 additions & 0 deletions repo/config/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ func Init(out io.Writer, nBitsForKeypair int) (*Config, error) {
"Access-Control-Allow-Headers": []string{"X-Requested-With"},
},
},
Reprovider: Reprovider{
Interval: "12h",
},
}

return conf, nil
Expand Down
5 changes: 5 additions & 0 deletions repo/config/reprovider.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package config

type Reprovider struct {
Interval string // Time period to reprovide locally stored objects to the network
}

0 comments on commit ad488c6

Please sign in to comment.