aboutsummaryrefslogtreecommitdiffstats
path: root/dex
diff options
context:
space:
mode:
authorWei-Ning Huang <w@cobinhood.com>2018-10-13 13:53:42 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:49 +0800
commitfb8fb70b0c63e400a3779d36c4986e0d4520c141 (patch)
treeade151c07084a1237f30bc374bb21d1c3918bbd2 /dex
parent83286d09174c739dcd94709377b3adb6ad55d80b (diff)
downloaddexon-fb8fb70b0c63e400a3779d36c4986e0d4520c141.tar.gz
dexon-fb8fb70b0c63e400a3779d36c4986e0d4520c141.tar.zst
dexon-fb8fb70b0c63e400a3779d36c4986e0d4520c141.zip
dex: pass p2p nodeKey to Dexon instance
Diffstat (limited to 'dex')
-rw-r--r--dex/backend.go12
-rw-r--r--dex/config.go4
-rw-r--r--dex/governance.go17
3 files changed, 20 insertions, 13 deletions
diff --git a/dex/backend.go b/dex/backend.go
index b6a7bdc4d..2396f0f71 100644
--- a/dex/backend.go
+++ b/dex/backend.go
@@ -22,7 +22,7 @@ import (
dexCore "github.com/dexon-foundation/dexon-consensus-core/core"
"github.com/dexon-foundation/dexon-consensus-core/core/blockdb"
- "github.com/dexon-foundation/dexon-consensus-core/core/crypto/ecdsa"
+ coreEcdsa "github.com/dexon-foundation/dexon-consensus-core/core/crypto/ecdsa"
"github.com/dexon-foundation/dexon/accounts"
"github.com/dexon-foundation/dexon/consensus"
@@ -87,12 +87,6 @@ func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) {
}
network := NewDexconNetwork()
- // TODO(w): replace this with node key.
- privKey, err := ecdsa.NewPrivateKey()
- if err != nil {
- panic(err)
- }
-
chainDb, err := CreateDB(ctx, config, "chaindata")
if err != nil {
return nil, err
@@ -154,8 +148,10 @@ func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) {
//}
dex.APIBackend.gpo = gasprice.NewOracle(dex.APIBackend, gpoParams)
- dex.governance = NewDexconGovernance(dex.APIBackend)
+ dex.governance = NewDexconGovernance(dex.APIBackend, config.PrivateKey)
dex.app = NewDexconApp(dex.txPool, dex.blockchain, dex.governance, chainDb, config, vmConfig)
+
+ privKey := coreEcdsa.NewPrivateKeyFromECDSA(config.PrivateKey)
dex.consensus = dexCore.NewConsensus(dex.app, dex.governance, db, network, privKey)
return dex, nil
diff --git a/dex/config.go b/dex/config.go
index df5babc73..7e33ae05f 100644
--- a/dex/config.go
+++ b/dex/config.go
@@ -17,6 +17,7 @@
package dex
import (
+ "crypto/ecdsa"
"math/big"
"os"
"os/user"
@@ -73,6 +74,9 @@ type Config struct {
// If nil, the Ethereum main net block is used.
Genesis *core.Genesis `toml:",omitempty"`
+ // PrivateKey, also represents the node identity.
+ PrivateKey *ecdsa.PrivateKey `toml:",omitempty"`
+
// Protocol options
NetworkId uint64 // Network ID to use for selecting peers to connect to
SyncMode downloader.SyncMode
diff --git a/dex/governance.go b/dex/governance.go
index d2cfe05c6..8993152df 100644
--- a/dex/governance.go
+++ b/dex/governance.go
@@ -2,12 +2,13 @@ package dex
import (
"context"
+ "crypto/ecdsa"
"math/big"
"time"
coreCommon "github.com/dexon-foundation/dexon-consensus-core/common"
coreCrypto "github.com/dexon-foundation/dexon-consensus-core/core/crypto"
- "github.com/dexon-foundation/dexon-consensus-core/core/crypto/ecdsa"
+ coreEcdsa "github.com/dexon-foundation/dexon-consensus-core/core/crypto/ecdsa"
coreTypes "github.com/dexon-foundation/dexon-consensus-core/core/types"
"github.com/dexon-foundation/dexon/core/vm"
"github.com/dexon-foundation/dexon/rlp"
@@ -15,14 +16,16 @@ import (
)
type DexconGovernance struct {
- b *DexAPIBackend
+ b *DexAPIBackend
+ privateKey *ecdsa.PrivateKey
}
// NewDexconGovernance retruns a governance implementation of the DEXON
// consensus governance interface.
-func NewDexconGovernance(backend *DexAPIBackend) *DexconGovernance {
+func NewDexconGovernance(backend *DexAPIBackend, privKey *ecdsa.PrivateKey) *DexconGovernance {
return &DexconGovernance{
- b: backend,
+ b: backend,
+ privateKey: privKey,
}
}
@@ -95,11 +98,15 @@ func (d *DexconGovernance) NodeSet(round uint64) []coreCrypto.PublicKey {
var pks []coreCrypto.PublicKey
for _, n := range s.Nodes() {
- pks = append(pks, ecdsa.NewPublicKeyFromByteSlice(n.PublicKey))
+ pks = append(pks, coreEcdsa.NewPublicKeyFromByteSlice(n.PublicKey))
}
return pks
}
+// NotifyRoundHeight register the mapping between round and height.
+func (d *DexconGovernance) NotifyRoundHeight(targetRound, consensusHeight uint64) {
+}
+
// AddDKGComplaint adds a DKGComplaint.
func (d *DexconGovernance) AddDKGComplaint(round uint64, complaint *coreTypes.DKGComplaint) {
}