mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-22 09:21:32 +00:00
go fmt
This commit is contained in:
109
merkle/util.go
109
merkle/util.go
@ -1,78 +1,83 @@
|
||||
package merkle
|
||||
|
||||
import (
|
||||
. "github.com/tendermint/tendermint/binary"
|
||||
"os"
|
||||
"fmt"
|
||||
"crypto/sha256"
|
||||
"crypto/sha256"
|
||||
"fmt"
|
||||
. "github.com/tendermint/tendermint/binary"
|
||||
"os"
|
||||
)
|
||||
|
||||
/*
|
||||
Compute a deterministic merkle hash from a list of byteslices.
|
||||
*/
|
||||
func HashFromBinarySlice(items []Binary) ByteSlice {
|
||||
switch len(items) {
|
||||
case 0:
|
||||
panic("Cannot compute hash of empty slice")
|
||||
case 1:
|
||||
hasher := sha256.New()
|
||||
_, err := items[0].WriteTo(hasher)
|
||||
if err != nil { panic(err) }
|
||||
return ByteSlice(hasher.Sum(nil))
|
||||
default:
|
||||
hasher := sha256.New()
|
||||
_, err := HashFromBinarySlice(items[0:len(items)/2]).WriteTo(hasher)
|
||||
if err != nil { panic(err) }
|
||||
_, err = HashFromBinarySlice(items[len(items)/2:]).WriteTo(hasher)
|
||||
if err != nil { panic(err) }
|
||||
return ByteSlice(hasher.Sum(nil))
|
||||
}
|
||||
switch len(items) {
|
||||
case 0:
|
||||
panic("Cannot compute hash of empty slice")
|
||||
case 1:
|
||||
hasher := sha256.New()
|
||||
_, err := items[0].WriteTo(hasher)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return ByteSlice(hasher.Sum(nil))
|
||||
default:
|
||||
hasher := sha256.New()
|
||||
_, err := HashFromBinarySlice(items[0 : len(items)/2]).WriteTo(hasher)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
_, err = HashFromBinarySlice(items[len(items)/2:]).WriteTo(hasher)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return ByteSlice(hasher.Sum(nil))
|
||||
}
|
||||
}
|
||||
|
||||
func PrintIAVLNode(node *IAVLNode) {
|
||||
fmt.Println("==== NODE")
|
||||
if node != nil {
|
||||
printIAVLNode(node, 0)
|
||||
}
|
||||
fmt.Println("==== END")
|
||||
fmt.Println("==== NODE")
|
||||
if node != nil {
|
||||
printIAVLNode(node, 0)
|
||||
}
|
||||
fmt.Println("==== END")
|
||||
}
|
||||
|
||||
func printIAVLNode(node *IAVLNode, indent int) {
|
||||
indentPrefix := ""
|
||||
for i:=0; i<indent; i++ {
|
||||
indentPrefix += " "
|
||||
}
|
||||
indentPrefix := ""
|
||||
for i := 0; i < indent; i++ {
|
||||
indentPrefix += " "
|
||||
}
|
||||
|
||||
if node.right != nil {
|
||||
printIAVLNode(node.rightFilled(nil), indent+1)
|
||||
}
|
||||
if node.right != nil {
|
||||
printIAVLNode(node.rightFilled(nil), indent+1)
|
||||
}
|
||||
|
||||
fmt.Printf("%s%v:%v\n", indentPrefix, node.key, node.height)
|
||||
fmt.Printf("%s%v:%v\n", indentPrefix, node.key, node.height)
|
||||
|
||||
if node.left != nil {
|
||||
printIAVLNode(node.leftFilled(nil), indent+1)
|
||||
}
|
||||
if node.left != nil {
|
||||
printIAVLNode(node.leftFilled(nil), indent+1)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func randstr(length int) String {
|
||||
if urandom, err := os.Open("/dev/urandom"); err != nil {
|
||||
panic(err)
|
||||
} else {
|
||||
slice := make([]byte, length)
|
||||
if _, err := urandom.Read(slice); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
urandom.Close()
|
||||
return String(slice)
|
||||
}
|
||||
panic("unreachable")
|
||||
if urandom, err := os.Open("/dev/urandom"); err != nil {
|
||||
panic(err)
|
||||
} else {
|
||||
slice := make([]byte, length)
|
||||
if _, err := urandom.Read(slice); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
urandom.Close()
|
||||
return String(slice)
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
func maxUint8(a, b uint8) uint8 {
|
||||
if a > b {
|
||||
return a
|
||||
}
|
||||
return b
|
||||
if a > b {
|
||||
return a
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user