diff --git a/core/builder.go b/core/builder.go index 62e9319b947..e621ee2e6d1 100644 --- a/core/builder.go +++ b/core/builder.go @@ -136,6 +136,12 @@ func setupNode(ctx context.Context, n *IpfsNode, cfg *BuildCfg) error { var err error bs := bstore.NewBlockstore(n.Repo.Datastore()) opts := bstore.DefaultCacheOpts() + conf, err := n.Repo.Config() + if err != nil { + return err + } + + opts.HasBloomFilterSize = conf.Datastore.BloomFilterSize if !cfg.Permament { opts.HasBloomFilterSize = 0 } diff --git a/repo/config/datastore.go b/repo/config/datastore.go index 2b9bf600df2..2b861a113cf 100644 --- a/repo/config/datastore.go +++ b/repo/config/datastore.go @@ -15,9 +15,10 @@ type Datastore struct { StorageGCWatermark int64 // in percentage to multiply on StorageMax GCPeriod string // in ns, us, ms, s, m, h - Params *json.RawMessage - NoSync bool - HashOnRead bool + Params *json.RawMessage + NoSync bool + HashOnRead bool + BloomFilterSize int } func (d *Datastore) ParamData() []byte { diff --git a/repo/config/init.go b/repo/config/init.go index 8a6c72222ce..5123e39e9e4 100644 --- a/repo/config/init.go +++ b/repo/config/init.go @@ -85,6 +85,7 @@ func datastoreConfig() (Datastore, error) { StorageGCWatermark: 90, // 90% GCPeriod: "1h", HashOnRead: false, + BloomFilterSize: 0, }, nil }