obscuren 10 years ago
parent
commit
35fe4313d5
5 changed files with 50 additions and 2 deletions
  1. 18 0
      core/chain_manager_test.go
  2. 13 0
      crypto/crypto_test.go
  3. 0 2
      event/filter/old_filter.go
  4. 5 0
      pow/dash/crypto.c
  5. 14 0
      pow/dash/crypto.go

+ 18 - 0
core/chain_manager_test.go

@@ -128,3 +128,21 @@ func TestChainMultipleInsertions(t *testing.T) {
 		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)
+}

+ 13 - 0
crypto/crypto_test.go

@@ -3,7 +3,9 @@ package crypto
 import (
 	"bytes"
 	"encoding/hex"
+	"fmt"
 	"testing"
+	"time"
 )
 
 // 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)
 	}
 }
+
+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))
+}

+ 0 - 2
event/filter/old_filter.go

@@ -2,7 +2,6 @@
 package filter
 
 import (
-	"fmt"
 	"sync"
 
 	"github.com/ethereum/go-ethereum/core"
@@ -79,7 +78,6 @@ out:
 				self.filterMu.RUnlock()
 
 			case state.Messages:
-				fmt.Println("got messages")
 				self.filterMu.RLock()
 				for _, filter := range self.filters {
 					if filter.MessageCallback != nil {

+ 5 - 0
pow/dash/crypto.c

@@ -0,0 +1,5 @@
+extern char *Sha3(char *, int);
+char *sha3_cgo(char *data, int l)
+{
+	return Sha3(data, l);
+}

+ 14 - 0
pow/dash/crypto.go

@@ -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)
+}