Svarog a7299c1b87
Add stability tests (#1587)
* Add stability-tests

* Fix requires

* Fix golint errors

* Update README.md

* Remove payloadHash from everywhere

* don't run vet on kaspad in stability-tests/install_and_test
2021-03-09 15:01:08 +02:00

59 lines
1015 B
Go

package mine
import (
"compress/gzip"
"encoding/json"
"os"
)
// JSONBlock is a json representation of a block in mine format
type JSONBlock struct {
ID string `json:"id"`
Parents []string `json:"parents"`
}
func readBlocks(jsonFile string) (<-chan JSONBlock, error) {
f, err := os.Open(jsonFile)
if err != nil {
return nil, err
}
gzipReader, err := gzip.NewReader(f)
if err != nil {
panic(err)
}
defer gzipReader.Close()
decoder := json.NewDecoder(gzipReader)
blockChan := make(chan JSONBlock)
spawn("mineFromJson.readBlocks", func() {
// read open bracket
_, err := decoder.Token()
if err != nil {
panic(err)
}
// while the array contains values
for decoder.More() {
var block JSONBlock
// decode an array value (Message)
err := decoder.Decode(&block)
if err != nil {
panic(err)
}
blockChan <- block
}
// read closing bracket
_, err = decoder.Token()
if err != nil {
panic(err)
}
close(blockChan)
})
return blockChan, nil
}