From 0f3dc1e84a717210c5de43201a0c64ef099cc49d Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Fri, 24 Jun 2016 22:10:31 +0200 Subject: [PATCH] core: Add config option for datastore read rehashing License: MIT Signed-off-by: Jakub Sztandera --- core/builder.go | 16 +++++++++++----- repo/config/datastore.go | 5 +++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core/builder.go b/core/builder.go index c17d6ff6e..0d21f5b20 100644 --- a/core/builder.go +++ b/core/builder.go @@ -130,16 +130,22 @@ func setupNode(ctx context.Context, n *IpfsNode, cfg *BuildCfg) error { } var err error - n.Blockstore, err = bstore.WriteCached(bstore.NewBlockstore(n.Repo.Datastore()), kSizeBlockstoreWriteCache) + bs := bstore.NewBlockstore(n.Repo.Datastore()) + n.Blockstore, err = bstore.WriteCached(bs, kSizeBlockstoreWriteCache) if err != nil { return err } + rcfg, err := n.Repo.Config() + if err != nil { + return err + } + + if rcfg.Datastore.HashOnRead { + bs.RuntimeHashing(true) + } + if cfg.Online { - rcfg, err := n.Repo.Config() - if err != nil { - return err - } do := setupDiscoveryOption(rcfg.Discovery) if err := n.startOnlineServices(ctx, cfg.Routing, cfg.Host, do); err != nil { return err diff --git a/repo/config/datastore.go b/repo/config/datastore.go index 52582bd5c..2b9bf600d 100644 --- a/repo/config/datastore.go +++ b/repo/config/datastore.go @@ -15,8 +15,9 @@ 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 + Params *json.RawMessage + NoSync bool + HashOnRead bool } func (d *Datastore) ParamData() []byte {