diff options
author | Wei-Ning Huang <w@cobinhood.com> | 2018-10-13 13:53:42 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 21:32:49 +0800 |
commit | fb8fb70b0c63e400a3779d36c4986e0d4520c141 (patch) | |
tree | ade151c07084a1237f30bc374bb21d1c3918bbd2 /dex | |
parent | 83286d09174c739dcd94709377b3adb6ad55d80b (diff) | |
download | dexon-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.go | 12 | ||||
-rw-r--r-- | dex/config.go | 4 | ||||
-rw-r--r-- | dex/governance.go | 17 |
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) { } |