@cryptotaxi247 / kubo / commits / 62d23c064

skip putting blocks we already have

License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>

Jeromy committed Jan 24, 2017 at 15:05 UTC 62d23c06483252b43f44b2afa039605f8e319044
1 file changed +18
filestore/filestore.go
+18
@@ -129,6 +129,15 @@ func (f *Filestore) Has(c *cid.Cid) (bool, error) {
129 }
130
131 func (f *Filestore) Put(b blocks.Block) error {
132 + has, err := f.Has(b.Cid())
133 + if err != nil {
134 + return err
135 + }
136 +
137 + if has {
138 + return nil
139 + }
140 +
141 switch b := b.(type) {
142 case *posinfo.FilestoreNode:
143 return f.fm.Put(b)
@@ -142,6 +151,15 @@ func (f *Filestore) PutMany(bs []blocks.Block) error {
151 var fstores []*posinfo.FilestoreNode
152
153 for _, b := range bs {
154 + has, err := f.Has(b.Cid())
155 + if err != nil {
156 + return err
157 + }
158 +
159 + if has {
160 + continue
161 + }
162 +
163 switch b := b.(type) {
164 case *posinfo.FilestoreNode:
165 fstores = append(fstores, b)