pre-pow
This commit is contained in:
parent
7e6b72cb5c
commit
35fe4313d5
@ -128,3 +128,21 @@ func TestChainMultipleInsertions(t *testing.T) {
|
|||||||
t.Error("Invalid canonical chain")
|
t.Error("Invalid canonical chain")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetAncestors(t *testing.T) {
|
||||||
|
db, _ := ethdb.NewMemDatabase()
|
||||||
|
var eventMux event.TypeMux
|
||||||
|
chainMan := NewChainManager(db, &eventMux)
|
||||||
|
chain, err := loadChain("valid1", t)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, block := range chain {
|
||||||
|
chainMan.write(block)
|
||||||
|
}
|
||||||
|
|
||||||
|
ancestors := chainMan.GetAncestors(chain[len(chain)-1], 4)
|
||||||
|
fmt.Println(ancestors)
|
||||||
|
}
|
||||||
|
@ -3,7 +3,9 @@ package crypto
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// These tests are sanity checks.
|
// These tests are sanity checks.
|
||||||
@ -34,3 +36,14 @@ func checkhash(t *testing.T, name string, f func([]byte) []byte, msg, exp []byte
|
|||||||
t.Errorf("hash %s returned wrong result.\ngot: %x\nwant: %x", name, sum, exp)
|
t.Errorf("hash %s returned wrong result.\ngot: %x\nwant: %x", name, sum, exp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkSha3(b *testing.B) {
|
||||||
|
a := []byte("hello world")
|
||||||
|
amount := 1000000
|
||||||
|
start := time.Now()
|
||||||
|
for i := 0; i < amount; i++ {
|
||||||
|
Sha3(a)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(amount, ":", time.Since(start))
|
||||||
|
}
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
package filter
|
package filter
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/ethereum/go-ethereum/core"
|
||||||
@ -79,7 +78,6 @@ out:
|
|||||||
self.filterMu.RUnlock()
|
self.filterMu.RUnlock()
|
||||||
|
|
||||||
case state.Messages:
|
case state.Messages:
|
||||||
fmt.Println("got messages")
|
|
||||||
self.filterMu.RLock()
|
self.filterMu.RLock()
|
||||||
for _, filter := range self.filters {
|
for _, filter := range self.filters {
|
||||||
if filter.MessageCallback != nil {
|
if filter.MessageCallback != nil {
|
||||||
|
5
pow/dash/crypto.c
Normal file
5
pow/dash/crypto.c
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
extern char *Sha3(char *, int);
|
||||||
|
char *sha3_cgo(char *data, int l)
|
||||||
|
{
|
||||||
|
return Sha3(data, l);
|
||||||
|
}
|
14
pow/dash/crypto.go
Normal file
14
pow/dash/crypto.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package dash
|
||||||
|
|
||||||
|
/*
|
||||||
|
char *sha3_cgo(char *, int); // Forward declaration
|
||||||
|
*/
|
||||||
|
import "C"
|
||||||
|
import (
|
||||||
|
"github.com/ethereum/go-ethereum/crypto"
|
||||||
|
)
|
||||||
|
|
||||||
|
//export Sha3
|
||||||
|
func Sha3(data []byte, l int) []byte {
|
||||||
|
return crypto.Sha3(data)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user