From c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c Mon Sep 17 00:00:00 2001 From: Sonic Date: Wed, 3 Apr 2019 16:28:29 +0800 Subject: dex: remove node table (#330) * dex: remove node table Node table is not so useful, go back to rely on kademlia * p2p: fix direct dial still have resolve delay --- dex/nodetable_test.go | 121 -------------------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 dex/nodetable_test.go (limited to 'dex/nodetable_test.go') diff --git a/dex/nodetable_test.go b/dex/nodetable_test.go deleted file mode 100644 index 06078a0d8..000000000 --- a/dex/nodetable_test.go +++ /dev/null @@ -1,121 +0,0 @@ -package dex - -import ( - "crypto/ecdsa" - "net" - "testing" - "time" - - "github.com/dexon-foundation/dexon/common" - "github.com/dexon-foundation/dexon/crypto" - "github.com/dexon-foundation/dexon/p2p/enode" - "github.com/dexon-foundation/dexon/p2p/enr" -) - -func TestNodeTable(t *testing.T) { - table := newNodeTable() - ch := make(chan newRecordsEvent) - table.SubscribeNewRecordsEvent(ch) - - records1 := []*enr.Record{ - randomNode().Record(), - randomNode().Record(), - } - - records2 := []*enr.Record{ - randomNode().Record(), - randomNode().Record(), - } - - go table.AddRecords(records1) - - select { - case newRecords := <-ch: - m := map[common.Hash]struct{}{} - for _, record := range newRecords.Records { - m[rlpHash(record)] = struct{}{} - } - - if len(m) != len(records1) { - t.Errorf("len mismatch: got %d, want: %d", - len(m), len(records1)) - } - - for _, record := range records1 { - if _, ok := m[rlpHash(record)]; !ok { - t.Errorf("expected record (%s) not exists", rlpHash(record)) - } - } - case <-time.After(1 * time.Second): - t.Error("did not receive new records event within one second") - } - - go table.AddRecords(records2) - select { - case newRecords := <-ch: - m := map[common.Hash]struct{}{} - for _, record := range newRecords.Records { - m[rlpHash(record)] = struct{}{} - } - - if len(m) != len(records2) { - t.Errorf("len mismatch: got %d, want: %d", - len(m), len(records2)) - } - - for _, record := range records2 { - if _, ok := m[rlpHash(record)]; !ok { - t.Errorf("expected record (%s) not exists", rlpHash(record)) - } - } - case <-time.After(1 * time.Second): - t.Error("did not receive new records event within one second") - } - - var records []*enr.Record - records = append(records, records1...) - records = append(records, records2...) - allRecords := table.Records() - if len(allRecords) != len(records) { - t.Errorf("all metas num mismatch: got %d, want %d", - len(records), len(allRecords)) - } - - for _, r := range records { - n, err := enode.New(enode.V4ID{}, r) - if err != nil { - t.Errorf(err.Error()) - } - if rlpHash(r) != rlpHash(table.GetNode(n.ID()).Record()) { - t.Errorf("record (%s) mismatch", n.ID().String()) - } - } -} - -func randomNode() *enode.Node { - var err error - var privkey *ecdsa.PrivateKey - for { - privkey, err = crypto.GenerateKey() - if err == nil { - break - } - } - var r enr.Record - r.Set(enr.IP(net.IP{})) - r.Set(enr.UDP(0)) - r.Set(enr.TCP(0)) - if err := enode.SignV4(&r, privkey); err != nil { - panic(err) - } - node, err := enode.New(enode.V4ID{}, &r) - if err != nil { - panic(err) - - } - return node -} - -func randomID() enode.ID { - return randomNode().ID() -} -- cgit v1.2.3