aboutsummaryrefslogtreecommitdiffstats
path: root/xeth
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-03-23 18:21:41 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-03-23 18:21:41 +0800
commit91a2275ad359b2f72565b926dac7dcd77b14a241 (patch)
tree7ba7643d0efcfe6d865651552f0ce994b07ffd20 /xeth
parent439481d177aa6d19ef0254e4e4e0d5a39a8ff09a (diff)
downloaddexon-91a2275ad359b2f72565b926dac7dcd77b14a241.tar.gz
dexon-91a2275ad359b2f72565b926dac7dcd77b14a241.tar.zst
dexon-91a2275ad359b2f72565b926dac7dcd77b14a241.zip
Move RemoteAgent to miner pkg
Diffstat (limited to 'xeth')
-rw-r--r--xeth/miner_agent.go82
-rw-r--r--xeth/xeth.go6
2 files changed, 3 insertions, 85 deletions
diff --git a/xeth/miner_agent.go b/xeth/miner_agent.go
deleted file mode 100644
index b00439ed4..000000000
--- a/xeth/miner_agent.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package xeth
-
-import (
- "github.com/ethereum/ethash"
- "github.com/ethereum/go-ethereum/common"
- "github.com/ethereum/go-ethereum/core/types"
- "github.com/ethereum/go-ethereum/miner"
-)
-
-type RemoteAgent struct {
- work *types.Block
- currentWork *types.Block
-
- quit chan struct{}
- workCh chan *types.Block
- returnCh chan<- miner.Work
-}
-
-func NewRemoteAgent() *RemoteAgent {
- agent := &RemoteAgent{}
- go agent.run()
-
- return agent
-}
-
-func (a *RemoteAgent) Work() chan<- *types.Block {
- return a.workCh
-}
-
-func (a *RemoteAgent) SetWorkCh(returnCh chan<- miner.Work) {
- a.returnCh = returnCh
-}
-
-func (a *RemoteAgent) Start() {
- a.quit = make(chan struct{})
- a.workCh = make(chan *types.Block, 1)
-}
-
-func (a *RemoteAgent) Stop() {
- close(a.quit)
- close(a.workCh)
-}
-
-func (a *RemoteAgent) GetHashRate() int64 { return 0 }
-
-func (a *RemoteAgent) run() {
-out:
- for {
- select {
- case <-a.quit:
- break out
- case work := <-a.workCh:
- a.work = work
- }
- }
-}
-
-func (a *RemoteAgent) GetWork() [3]string {
- var res [3]string
-
- // XXX Wait here until work != nil ?
- if a.work != nil {
- res[0] = a.work.HashNoNonce().Hex()
- seedHash, _ := ethash.GetSeedHash(a.currentWork.NumberU64())
- res[1] = common.Bytes2Hex(seedHash)
- res[2] = common.Bytes2Hex(a.work.Difficulty().Bytes())
- }
-
- return res
-}
-
-func (a *RemoteAgent) SubmitWork(nonce uint64, mixDigest, seedHash common.Hash) bool {
- // Return true or false, but does not indicate if the PoW was correct
-
- // Make sure the external miner was working on the right hash
- if a.currentWork != nil && a.work != nil && a.currentWork.Hash() == a.work.Hash() {
- a.returnCh <- miner.Work{a.currentWork.Number().Uint64(), nonce, mixDigest.Bytes(), seedHash.Bytes()}
- return true
- }
-
- return false
-}
diff --git a/xeth/xeth.go b/xeth/xeth.go
index 5faeeb766..23e523980 100644
--- a/xeth/xeth.go
+++ b/xeth/xeth.go
@@ -102,7 +102,7 @@ type XEth struct {
// register map[string][]*interface{} // TODO improve return type
// Miner agent
- agent *RemoteAgent
+ agent *miner.RemoteAgent
}
// New creates an XEth that uses the given frontend.
@@ -120,7 +120,7 @@ func New(eth Backend, frontend Frontend) *XEth {
frontend: frontend,
logs: make(map[int]*logFilter),
messages: make(map[int]*whisperFilter),
- agent: NewRemoteAgent(),
+ agent: miner.NewRemoteAgent(),
}
eth.Miner().Register(xeth.agent)
@@ -170,7 +170,7 @@ func (self *XEth) stop() {
func (self *XEth) DefaultGas() *big.Int { return defaultGas }
func (self *XEth) DefaultGasPrice() *big.Int { return defaultGasPrice }
-func (self *XEth) RemoteMining() *RemoteAgent { return self.agent }
+func (self *XEth) RemoteMining() *miner.RemoteAgent { return self.agent }
func (self *XEth) AtStateNum(num int64) *XEth {
chain := self.Backend().ChainManager()