MCPcopy Create free account
hub / github.com/SmartPool/smartpool-client / processDuringRead

Function processDuringRead

ethereum/share.go:91–127  ·  view source on GitHub ↗
(
	datasetPath string, mt *mtree.DagTree)

Source from the content-addressed store, hash-verified

89}
90
91func processDuringRead(
92 datasetPath string, mt *mtree.DagTree) {
93
94 f, err := os.Open(datasetPath)
95 if err != nil {
96 log.Fatal(err)
97 }
98 r := bufio.NewReader(f)
99 buf := [128]byte{}
100 // ignore first 8 bytes magic number at the beginning
101 // of dataset. See more at https://gopkg.in/ethereum/wiki/wiki/Ethash-DAG-Disk-Storage-Format
102 _, err = io.ReadFull(r, buf[:8])
103 if err != nil {
104 log.Fatal(err)
105 }
106 var i uint32 = 0
107 for {
108 n, err := io.ReadFull(r, buf[:128])
109 if n == 0 {
110 if err == nil {
111 continue
112 }
113 if err == io.EOF {
114 break
115 }
116 log.Fatal(err)
117 }
118 if n != 128 {
119 log.Fatal("Malformed dataset")
120 }
121 mt.Insert(smartpool.Word(buf), i)
122 if err != nil && err != io.EOF {
123 log.Fatal(err)
124 }
125 i++
126 }
127}
128
129func (s *Share) buildDagTree() {
130 indices := ethash.Instance.GetVerificationIndices(s)

Callers 2

SetEpochDataMethod · 0.85
buildDagTreeMethod · 0.85

Calls 1

InsertMethod · 0.80

Tested by

no test coverage detected