add: updateStake when miner starts to mine new task
This commit is contained in:
parent
d99443d9f0
commit
1ea482c379
@ -15,9 +15,10 @@ import (
|
||||
)
|
||||
|
||||
type Miner struct {
|
||||
address peer.ID
|
||||
api MinerAPI
|
||||
mutex sync.Mutex
|
||||
address peer.ID
|
||||
ethAddress common.Address
|
||||
api MinerAPI
|
||||
mutex sync.Mutex
|
||||
}
|
||||
|
||||
type MinerAPI interface {
|
||||
@ -81,7 +82,7 @@ func (m *MinerBase) UpdateStake(c *ethclient.EthereumClient, miner common.Addres
|
||||
|
||||
// Start, Stop mining functions
|
||||
|
||||
func (m *Miner) MineTask(ctx context.Context, base *MiningBase, mb *MinerBase) (*types.DioneTask, error) {
|
||||
func (m *Miner) MineTask(ctx context.Context, base *MiningBase, mb *MinerBase, ethClient *ethclient.EthereumClient) (*types.DioneTask, error) {
|
||||
round := base.epoch + base.nullRounds + 1
|
||||
logrus.Debug("attempting to mine the task at epoch: ", round)
|
||||
|
||||
@ -93,6 +94,10 @@ func (m *Miner) MineTask(ctx context.Context, base *MiningBase, mb *MinerBase) (
|
||||
rbase = bvals[len(bvals)-1]
|
||||
}
|
||||
|
||||
if err := mb.UpdateStake(ethClient, m.ethAddress); err != nil {
|
||||
return nil, xerrors.Errorf("failed to update miner stake: %w", err)
|
||||
}
|
||||
|
||||
ticket, err := m.computeTicket(ctx, &rbase, base, mb)
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("scratching ticket failed: %w", err)
|
||||
|
1
go.mod
1
go.mod
@ -23,6 +23,7 @@ require (
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
|
||||
github.com/golang/snappy v0.0.2-0.20190904063534-ff6b7dc882cf // indirect
|
||||
github.com/google/gopacket v1.1.18 // indirect
|
||||
github.com/google/logger v1.1.0
|
||||
github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f // indirect
|
||||
github.com/ipfs/go-datastore v0.4.5 // indirect
|
||||
github.com/ipfs/go-ds-badger2 v0.1.1-0.20200708190120-187fc06f714e // indirect
|
||||
|
2
go.sum
2
go.sum
@ -286,6 +286,8 @@ github.com/google/gopacket v1.1.17 h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbB
|
||||
github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
|
||||
github.com/google/gopacket v1.1.18 h1:lum7VRA9kdlvBi7/v2p7/zcbkduHaCH/SVVyurs7OpY=
|
||||
github.com/google/gopacket v1.1.18/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
|
||||
github.com/google/logger v1.1.0 h1:saB74Etb4EAJNH3z74CVbCKk75hld/8T0CsXKetWCwM=
|
||||
github.com/google/logger v1.1.0/go.mod h1:w7O8nrRr0xufejBlQMI83MXqRusvREoJdaAxV+CoAB4=
|
||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
|
16
node/node.go
16
node/node.go
@ -5,14 +5,15 @@ import (
|
||||
"crypto/rand"
|
||||
"flag"
|
||||
"fmt"
|
||||
pex "github.com/Secured-Finance/go-libp2p-pex"
|
||||
"time"
|
||||
|
||||
pex "github.com/Secured-Finance/go-libp2p-pex"
|
||||
|
||||
"github.com/Secured-Finance/dione/config"
|
||||
"github.com/Secured-Finance/dione/consensus"
|
||||
"github.com/Secured-Finance/dione/ethclient"
|
||||
"github.com/Secured-Finance/dione/pb"
|
||||
"github.com/Secured-Finance/dione/rpc"
|
||||
"github.com/Secured-Finance/dione/ethclient"
|
||||
"github.com/libp2p/go-libp2p"
|
||||
crypto "github.com/libp2p/go-libp2p-core/crypto"
|
||||
"github.com/libp2p/go-libp2p-core/host"
|
||||
@ -21,7 +22,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultPEXUpdateTime = 1*time.Minute
|
||||
DefaultPEXUpdateTime = 1 * time.Minute
|
||||
)
|
||||
|
||||
type Node struct {
|
||||
@ -34,7 +35,7 @@ type Node struct {
|
||||
Lotus *rpc.LotusClient
|
||||
Ethereum *ethclient.EthereumClient
|
||||
ConsensusManager *consensus.PBFTConsensusManager
|
||||
MinerBase *consensus.MinerBase
|
||||
MinerBase *consensus.MinerBase
|
||||
}
|
||||
|
||||
func NewNode(configPath string) (*Node, error) {
|
||||
@ -52,7 +53,9 @@ func NewNode(configPath string) (*Node, error) {
|
||||
|
||||
func (n *Node) setupNode(ctx context.Context, prvKey crypto.PrivKey, pexDiscoveryUpdateTime time.Duration) {
|
||||
n.setupLibp2pHost(context.TODO(), prvKey, pexDiscoveryUpdateTime)
|
||||
//n.setupEthereumClient()
|
||||
if err := n.setupEthereumClient(); err != nil {
|
||||
logrus.Fatal("Can't set up an ethereum client, exiting... ", err)
|
||||
}
|
||||
//n.setupFilecoinClient()
|
||||
n.setupPubsub()
|
||||
n.setupConsensusManager(n.Config.ConsensusMaxFaultNodes)
|
||||
@ -116,6 +119,9 @@ func (n *Node) setupLibp2pHost(ctx context.Context, privateKey crypto.PrivKey, p
|
||||
}
|
||||
|
||||
discovery, err := pex.NewPEXDiscovery(host, bootstrapMaddrs, pexDiscoveryUpdateTime)
|
||||
if err != nil {
|
||||
logrus.Fatal("Can't set up PEX discovery protocol, exiting... ", err)
|
||||
}
|
||||
|
||||
logrus.Info("Announcing ourselves...")
|
||||
_, err = discovery.Advertise(context.TODO(), n.Config.Rendezvous)
|
||||
|
Loading…
Reference in New Issue
Block a user