|
|
|
@ -158,13 +158,12 @@ func ImportChain(chainmgr *core.ChainManager, fn string) error { |
|
|
|
|
var i int |
|
|
|
|
for ; ; i++ { |
|
|
|
|
var b types.Block |
|
|
|
|
err := stream.Decode(&b) |
|
|
|
|
if err == io.EOF { |
|
|
|
|
if err := stream.Decode(&b); err == io.EOF { |
|
|
|
|
break |
|
|
|
|
} else if err != nil { |
|
|
|
|
return fmt.Errorf("at block %d: %v", i, err) |
|
|
|
|
} |
|
|
|
|
if err := chainmgr.InsertChain(types.Blocks{b}); err != nil { |
|
|
|
|
if err := chainmgr.InsertChain(types.Blocks{&b}); err != nil { |
|
|
|
|
return fmt.Errorf("invalid block %d: %v", i, err) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -174,7 +173,7 @@ func ImportChain(chainmgr *core.ChainManager, fn string) error { |
|
|
|
|
|
|
|
|
|
func ExportChain(chainmgr *core.ChainManager, fn string) error { |
|
|
|
|
fmt.Printf("exporting blockchain '%s'\n", fn) |
|
|
|
|
fh, err := os.OpenFile(fn, os.O_WRONLY|os.O_TRUNC, os.ModePerm) |
|
|
|
|
fh, err := os.OpenFile(fn, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.ModePerm) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|