forked from TrueCloudLab/neoneo-go
storage: put uint32 into keys using in big endianness
Which allows to iterate over the contents easily.
This commit is contained in:
parent
1ca918e631
commit
600da6909c
3 changed files with 6 additions and 21 deletions
|
@ -46,7 +46,7 @@ import (
|
|||
// Tuning parameters.
|
||||
const (
|
||||
headerBatchCount = 2000
|
||||
version = "0.2.3"
|
||||
version = "0.2.4"
|
||||
|
||||
defaultInitialGAS = 52000000_00000000
|
||||
defaultGCPeriod = 10000
|
||||
|
|
|
@ -6,7 +6,6 @@ import (
|
|||
"encoding/binary"
|
||||
"errors"
|
||||
iocore "io"
|
||||
"sort"
|
||||
|
||||
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
||||
"github.com/nspcc-dev/neo-go/pkg/core/state"
|
||||
|
@ -506,33 +505,19 @@ func (dao *Simple) GetStateSyncCurrentBlockHeight() (uint32, error) {
|
|||
// GetHeaderHashes returns a sorted list of header hashes retrieved from
|
||||
// the given underlying store.
|
||||
func (dao *Simple) GetHeaderHashes() ([]util.Uint256, error) {
|
||||
hashMap := make(map[uint32][]util.Uint256)
|
||||
var hashes = make([]util.Uint256, 0)
|
||||
|
||||
dao.Store.Seek(storage.SeekRange{
|
||||
Prefix: storage.IXHeaderHashList.Bytes(),
|
||||
}, func(k, v []byte) bool {
|
||||
storedCount := binary.LittleEndian.Uint32(k[1:])
|
||||
hashes, err := read2000Uint256Hashes(v)
|
||||
newHashes, err := read2000Uint256Hashes(v)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
hashMap[storedCount] = hashes
|
||||
hashes = append(hashes, newHashes...)
|
||||
return true
|
||||
})
|
||||
|
||||
var (
|
||||
hashes = make([]util.Uint256, 0, len(hashMap))
|
||||
sortedKeys = make([]uint32, 0, len(hashMap))
|
||||
)
|
||||
|
||||
for k := range hashMap {
|
||||
sortedKeys = append(sortedKeys, k)
|
||||
}
|
||||
sort.Slice(sortedKeys, func(i, j int) bool { return sortedKeys[i] < sortedKeys[j] })
|
||||
|
||||
for _, key := range sortedKeys {
|
||||
hashes = append(hashes[:key], hashMap[key]...)
|
||||
}
|
||||
|
||||
return hashes, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ func AppendPrefix(k KeyPrefix, b []byte) []byte {
|
|||
// AppendPrefixInt(SYSCurrentHeader, 10001)
|
||||
func AppendPrefixInt(k KeyPrefix, n int) []byte {
|
||||
b := make([]byte, 4)
|
||||
binary.LittleEndian.PutUint32(b, uint32(n))
|
||||
binary.BigEndian.PutUint32(b, uint32(n))
|
||||
return AppendPrefix(k, b)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue