Fix some syntax issues
This commit is contained in:
parent
a42776be67
commit
e3931c23a2
@ -4,19 +4,18 @@ import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
|
||||
ftypes "github.com/Secured-Finance/dione/rpc/filecoin/types"
|
||||
|
||||
oracleEmitter "github.com/Secured-Finance/dione/contracts/oracleemitter"
|
||||
|
||||
"github.com/Secured-Finance/dione/node"
|
||||
|
||||
"github.com/filecoin-project/go-state-types/crypto"
|
||||
|
||||
ftypes "github.com/Secured-Finance/dione/rpc/filecoin/types"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/filecoin-project/go-state-types/crypto"
|
||||
|
||||
types2 "github.com/Secured-Finance/dione/consensus/types"
|
||||
"github.com/Secured-Finance/dione/sigs"
|
||||
"github.com/Secured-Finance/dione/types"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/mitchellh/hashstructure/v2"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
@ -95,18 +94,6 @@ func (ppp *PrePreparePool) IsValidPrePrepare(prePrepare *types2.Message) bool {
|
||||
|
||||
logrus.Errorf("the incoming task and cached request event don't match!")
|
||||
return false
|
||||
// === verify filecoin message signature ===
|
||||
if consensusMsg.Task.RequestType == "GetTransaction" && consensusMsg.Task.OriginChain == 1 {
|
||||
var msg ftypes.SignedMessage
|
||||
if err := msg.UnmarshalCBOR(bytes.NewReader(consensusMsg.Task.Payload)); err != nil {
|
||||
if err := msg.Message.UnmarshalCBOR(bytes.NewReader(consensusMsg.Task.Payload)); err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
if err = sigs.Verify(msg.Signature, msg.Message.From.Bytes(), msg.Message.Cid().Bytes()); err != nil {
|
||||
logrus.Errorf("Couldn't verify transaction %v", err)
|
||||
}
|
||||
}
|
||||
/////////////////////////////////
|
||||
|
||||
@ -178,6 +165,21 @@ func (ppp *PrePreparePool) IsValidPrePrepare(prePrepare *types2.Message) bool {
|
||||
}
|
||||
//////////////////////////////////////
|
||||
|
||||
// === verify filecoin message signature ===
|
||||
if consensusMsg.Task.RequestType == "GetTransaction" && consensusMsg.Task.OriginChain == 1 {
|
||||
var msg ftypes.SignedMessage
|
||||
if err := msg.UnmarshalCBOR(bytes.NewReader(consensusMsg.Task.Payload)); err != nil {
|
||||
if err := msg.Message.UnmarshalCBOR(bytes.NewReader(consensusMsg.Task.Payload)); err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
if err = sigs.Verify(msg.Signature, msg.Message.From.Bytes(), msg.Message.Cid().Bytes()); err != nil {
|
||||
logrus.Errorf("Couldn't verify transaction %v", err)
|
||||
}
|
||||
}
|
||||
/////////////////////////////////
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -1,106 +1,107 @@
|
||||
package node
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/Secured-Finance/dione/config"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func TestConsensus(t *testing.T) {
|
||||
logrus.SetLevel(logrus.DebugLevel)
|
||||
//log.SetAllLoggers(log.LevelDebug)
|
||||
|
||||
// boolgen := newBoolgen()
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
port := rand.Intn(100) + 10000
|
||||
|
||||
cfg := &config.Config{
|
||||
ListenPort: port,
|
||||
ListenAddr: "0.0.0.0",
|
||||
Rendezvous: "dione",
|
||||
PubSub: config.PubSubConfig{
|
||||
ProtocolID: "/dione/1.0",
|
||||
},
|
||||
ConsensusMinApprovals: 3,
|
||||
}
|
||||
|
||||
var nodes []*Node
|
||||
|
||||
bNode := newNode(cfg)
|
||||
t.Logf("Bootstrap ID: %s", bNode.Host.ID())
|
||||
cfg.BootstrapNodes = []string{bNode.Host.Addrs()[0].String() + fmt.Sprintf("/p2p/%s", bNode.Host.ID().String())}
|
||||
nodes = append(nodes, bNode)
|
||||
|
||||
maxNodes := 10
|
||||
|
||||
for i := 1; i <= maxNodes; i++ {
|
||||
cfg.ListenPort += 1
|
||||
node := newNode(cfg)
|
||||
nodes = append(nodes, node)
|
||||
}
|
||||
|
||||
time.Sleep(5 * time.Second)
|
||||
|
||||
// var wg sync.WaitGroup
|
||||
|
||||
// wg.Add(len(nodes))
|
||||
// for _, n := range nodes {
|
||||
// var testData string
|
||||
// if boolgen.Bool() {
|
||||
// testData = "test"
|
||||
// } else {
|
||||
// testData = "test1"
|
||||
// }
|
||||
// n.ConsensusManager.NewTestConsensus(testData, "123", func(finalData string) {
|
||||
// if finalData != "test" {
|
||||
// t.Errorf("Expected final data %s, not %s", "test", finalData)
|
||||
// }
|
||||
// wg.Done()
|
||||
// })
|
||||
// }
|
||||
// wg.Wait()
|
||||
}
|
||||
|
||||
func newNode(cfg *config.Config) *Node {
|
||||
privKey, err := generatePrivateKey()
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
ctx, ctxCancel := context.WithCancel(context.Background())
|
||||
|
||||
node := &Node{
|
||||
OracleTopic: "dione",
|
||||
Config: cfg,
|
||||
GlobalCtx: ctx,
|
||||
GlobalCtxCancel: ctxCancel,
|
||||
}
|
||||
node.setupNode(ctx, privKey, 1*time.Second)
|
||||
return node
|
||||
}
|
||||
|
||||
type boolgen struct {
|
||||
src rand.Source
|
||||
cache int64
|
||||
remaining int
|
||||
}
|
||||
|
||||
func newBoolgen() *boolgen {
|
||||
return &boolgen{src: rand.NewSource(time.Now().UnixNano())}
|
||||
}
|
||||
|
||||
func (b *boolgen) Bool() bool {
|
||||
if b.remaining == 0 {
|
||||
b.cache, b.remaining = b.src.Int63(), 63
|
||||
}
|
||||
|
||||
result := b.cache&0x01 == 1
|
||||
b.cache >>= 1
|
||||
b.remaining--
|
||||
|
||||
return result
|
||||
}
|
||||
//
|
||||
//import (
|
||||
// "context"
|
||||
// "fmt"
|
||||
// "math/rand"
|
||||
// "testing"
|
||||
// "time"
|
||||
//
|
||||
// "github.com/Secured-Finance/dione/config"
|
||||
// "github.com/sirupsen/logrus"
|
||||
//)
|
||||
//
|
||||
//func TestConsensus(t *testing.T) {
|
||||
// logrus.SetLevel(logrus.DebugLevel)
|
||||
// //log.SetAllLoggers(log.LevelDebug)
|
||||
//
|
||||
// // boolgen := newBoolgen()
|
||||
// rand.Seed(time.Now().UnixNano())
|
||||
// port := rand.Intn(100) + 10000
|
||||
//
|
||||
// cfg := &config.Config{
|
||||
// ListenPort: port,
|
||||
// ListenAddr: "0.0.0.0",
|
||||
// Rendezvous: "dione",
|
||||
// PubSub: config.PubSubConfig{
|
||||
// ProtocolID: "/dione/1.0",
|
||||
// },
|
||||
// ConsensusMinApprovals: 3,
|
||||
// }
|
||||
//
|
||||
// var nodes []*Node
|
||||
//
|
||||
// bNode := newNode(cfg)
|
||||
// t.Logf("Bootstrap ID: %s", bNode.Host.ID())
|
||||
// cfg.BootstrapNodes = []string{bNode.Host.Addrs()[0].String() + fmt.Sprintf("/p2p/%s", bNode.Host.ID().String())}
|
||||
// nodes = append(nodes, bNode)
|
||||
//
|
||||
// maxNodes := 10
|
||||
//
|
||||
// for i := 1; i <= maxNodes; i++ {
|
||||
// cfg.ListenPort += 1
|
||||
// node := newNode(cfg)
|
||||
// nodes = append(nodes, node)
|
||||
// }
|
||||
//
|
||||
// time.Sleep(5 * time.Second)
|
||||
//
|
||||
// // var wg sync.WaitGroup
|
||||
//
|
||||
// // wg.Add(len(nodes))
|
||||
// // for _, n := range nodes {
|
||||
// // var testData string
|
||||
// // if boolgen.Bool() {
|
||||
// // testData = "test"
|
||||
// // } else {
|
||||
// // testData = "test1"
|
||||
// // }
|
||||
// // n.ConsensusManager.NewTestConsensus(testData, "123", func(finalData string) {
|
||||
// // if finalData != "test" {
|
||||
// // t.Errorf("Expected final data %s, not %s", "test", finalData)
|
||||
// // }
|
||||
// // wg.Done()
|
||||
// // })
|
||||
// // }
|
||||
// // wg.Wait()
|
||||
//}
|
||||
//
|
||||
//func newNode(cfg *config.Config) *Node {
|
||||
// privKey, err := generatePrivateKey()
|
||||
// if err != nil {
|
||||
// logrus.Fatal(err)
|
||||
// }
|
||||
// ctx, ctxCancel := context.WithCancel(context.Background())
|
||||
//
|
||||
// node := &Node{
|
||||
// OracleTopic: "dione",
|
||||
// Config: cfg,
|
||||
// GlobalCtx: ctx,
|
||||
// GlobalCtxCancel: ctxCancel,
|
||||
// }
|
||||
// node.setupNode(ctx, privKey, 1*time.Second)
|
||||
// return node
|
||||
//}
|
||||
//
|
||||
//type boolgen struct {
|
||||
// src rand.Source
|
||||
// cache int64
|
||||
// remaining int
|
||||
//}
|
||||
//
|
||||
//func newBoolgen() *boolgen {
|
||||
// return &boolgen{src: rand.NewSource(time.Now().UnixNano())}
|
||||
//}
|
||||
//
|
||||
//func (b *boolgen) Bool() bool {
|
||||
// if b.remaining == 0 {
|
||||
// b.cache, b.remaining = b.src.Int63(), 63
|
||||
// }
|
||||
//
|
||||
// result := b.cache&0x01 == 1
|
||||
// b.cache >>= 1
|
||||
// b.remaining--
|
||||
//
|
||||
// return result
|
||||
//}
|
||||
|
@ -100,13 +100,11 @@ func (psr *PubSubRouter) handleMessage(p *pubsub.Message) {
|
||||
}
|
||||
|
||||
func (psr *PubSubRouter) Hook(messageType types.MessageType, handler Handler) {
|
||||
handlers, ok := psr.handlers[messageType]
|
||||
_, ok := psr.handlers[messageType]
|
||||
if !ok {
|
||||
emptyArray := []Handler{}
|
||||
psr.handlers[messageType] = emptyArray
|
||||
handlers = emptyArray
|
||||
psr.handlers[messageType] = []Handler{}
|
||||
}
|
||||
psr.handlers[messageType] = append(handlers, handler)
|
||||
psr.handlers[messageType] = append(psr.handlers[messageType], handler)
|
||||
}
|
||||
|
||||
func (psr *PubSubRouter) BroadcastToServiceTopic(msg *types.Message) error {
|
||||
|
Loading…
Reference in New Issue
Block a user