fix: Comment out affected Actor interactions from API shift

This commit is contained in:
Mike Greenberg 2020-07-17 15:10:55 -04:00
parent d30e120608
commit 7e46fc1d8f
2 changed files with 120 additions and 110 deletions

View File

@ -4,17 +4,17 @@ import (
"bytes" "bytes"
"context" "context"
"fmt" "fmt"
"strings" //"strings"
"sync" "sync"
"time" "time"
"github.com/filecoin-project/go-address" "github.com/filecoin-project/go-address"
"github.com/filecoin-project/lotus/chain/events/state" //"github.com/filecoin-project/lotus/chain/events/state"
"github.com/filecoin-project/specs-actors/actors/abi" "github.com/filecoin-project/specs-actors/actors/abi"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
"golang.org/x/xerrors" "golang.org/x/xerrors"
"github.com/libp2p/go-libp2p-core/peer" //"github.com/libp2p/go-libp2p-core/peer"
"github.com/filecoin-project/specs-actors/actors/abi/big" "github.com/filecoin-project/specs-actors/actors/abi/big"
"github.com/filecoin-project/specs-actors/actors/builtin" "github.com/filecoin-project/specs-actors/actors/builtin"
@ -263,32 +263,33 @@ func (p *Processor) storeMinersActorState(miners []minerActorInfo) error {
if err != nil { if err != nil {
return err return err
} }
for _, m := range miners { // TODO: Consume new Actor API
var pid string //for _, m := range miners {
if len(m.state.Info.PeerId) != 0 { //var pid string
peerid, err := peer.IDFromBytes(m.state.Info.PeerId) //if len(m.state.Info.PeerId) != 0 {
if err != nil { //peerid, err := peer.IDFromBytes(m.state.Info.PeerId)
// this should "never happen", but if it does we should still store info about the miner. //if err != nil {
log.Warnw("failed to decode peerID", "peerID (bytes)", m.state.Info.PeerId, "miner", m.common.addr, "tipset", m.common.tsKey.String()) //// this should "never happen", but if it does we should still store info about the miner.
} else { //log.Warnw("failed to decode peerID", "peerID (bytes)", m.state.Info.PeerId, "miner", m.common.addr, "tipset", m.common.tsKey.String())
pid = peerid.String() //} else {
} //pid = peerid.String()
} //}
if _, err := stmt.Exec( //}
m.common.addr.String(), //if _, err := stmt.Exec(
m.state.Info.Owner.String(), //m.common.addr.String(),
m.state.Info.Worker.String(), //m.state.Info.Owner.String(),
pid, //m.state.Info.Worker.String(),
m.state.Info.SectorSize.ShortString(), //pid,
m.state.PreCommitDeposits.String(), //m.state.Info.SectorSize.ShortString(),
m.state.LockedFunds.String(), //m.state.PreCommitDeposits.String(),
m.state.NextDeadlineToProcessFaults, //m.state.LockedFunds.String(),
); err != nil { //m.state.NextDeadlineToProcessFaults,
log.Errorw("failed to store miner state", "state", m.state, "info", m.state.Info, "error", err) //); err != nil {
return xerrors.Errorf("failed to store miner state: %w", err) //log.Errorw("failed to store miner state", "state", m.state, "info", m.state.Info, "error", err)
} //return xerrors.Errorf("failed to store miner state: %w", err)
//}
} //}
if err := stmt.Close(); err != nil { if err := stmt.Close(); err != nil {
return err return err
} }
@ -380,12 +381,17 @@ func (p *Processor) storeMinersSectorState(miners []minerActorInfo) error {
if _, err := stmt.Exec( if _, err := stmt.Exec(
m.common.addr.String(), m.common.addr.String(),
uint64(sector.ID), uint64(sector.ID),
int64(sector.Info.ActivationEpoch), // TODO: Consume new Actor API
int64(sector.Info.Info.Expiration), //int64(sector.Info.ActivationEpoch),
0,
//int64(sector.Info.Info.Expiration),
0,
sector.Info.DealWeight.String(), sector.Info.DealWeight.String(),
sector.Info.VerifiedDealWeight.String(), sector.Info.VerifiedDealWeight.String(),
sector.Info.Info.SealedCID.String(), //sector.Info.Info.SealedCID.String(),
int64(sector.Info.Info.SealRandEpoch), "",
//int64(sector.Info.Info.SealRandEpoch),
0,
); err != nil { ); err != nil {
return err return err
} }
@ -466,7 +472,7 @@ func (p *Processor) updateMinersSectors(ctx context.Context, miners []minerActor
log.Debugw("Updated Miners Sectors", "duration", time.Since(start).String()) log.Debugw("Updated Miners Sectors", "duration", time.Since(start).String())
}() }()
pred := state.NewStatePredicates(p.node) //pred := state.NewStatePredicates(p.node)
eventTx, err := p.db.Begin() eventTx, err := p.db.Begin()
if err != nil { if err != nil {
@ -493,86 +499,87 @@ func (p *Processor) updateMinersSectors(ctx context.Context, miners []minerActor
updateWg.Done() updateWg.Done()
}() }()
minerGrp, ctx := errgroup.WithContext(ctx) // TODO: Resolve Actor interface shift
complete := 0 //minerGrp, ctx := errgroup.WithContext(ctx)
for _, m := range miners { //complete := 0
m := m //for _, m := range miners {
minerGrp.Go(func() error { //m := m
// special case genesis miners //minerGrp.Go(func() error {
sectorDiffFn := pred.OnMinerActorChange(m.common.addr, pred.OnMinerSectorChange()) //// special case genesis miners
changed, val, err := sectorDiffFn(ctx, m.common.parentTsKey, m.common.tsKey) //sectorDiffFn := pred.OnMinerActorChange(m.common.addr, pred.OnMinerSectorChange())
if err != nil { //changed, val, err := sectorDiffFn(ctx, m.common.parentTsKey, m.common.tsKey)
if strings.Contains(err.Error(), "address not found") { //if err != nil {
return nil //if strings.Contains(err.Error(), "address not found") {
} //return nil
log.Errorw("error getting miner sector diff", "miner", m.common.addr, "error", err) //}
return err //log.Errorw("error getting miner sector diff", "miner", m.common.addr, "error", err)
} //return err
if !changed { //}
complete++ //if !changed {
return nil //complete++
} //return nil
changes, ok := val.(*state.MinerSectorChanges) //}
if !ok { //changes, ok := val.(*state.MinerSectorChanges)
log.Fatalw("Developer Error") //if !ok {
} //log.Fatalw("Developer Error")
log.Debugw("sector changes for miner", "miner", m.common.addr.String(), "Added", len(changes.Added), "Extended", len(changes.Extended), "Removed", len(changes.Removed), "oldState", m.common.parentTsKey, "newState", m.common.tsKey) //}
//log.Debugw("sector changes for miner", "miner", m.common.addr.String(), "Added", len(changes.Added), "Extended", len(changes.Extended), "Removed", len(changes.Removed), "oldState", m.common.parentTsKey, "newState", m.common.tsKey)
for _, extended := range changes.Extended { //for _, extended := range changes.Extended {
if _, err := eventStmt.Exec(extended.To.Info.SectorNumber, "EXTENDED", m.common.addr.String(), m.common.stateroot.String()); err != nil { //if _, err := eventStmt.Exec(extended.To.Info.SectorNumber, "EXTENDED", m.common.addr.String(), m.common.stateroot.String()); err != nil {
return err //return err
} //}
sectorUpdatesCh <- sectorUpdate{ //sectorUpdatesCh <- sectorUpdate{
terminationEpoch: 0, //terminationEpoch: 0,
terminated: false, //terminated: false,
expirationEpoch: extended.To.Info.Expiration, //expirationEpoch: extended.To.Info.Expiration,
sectorID: extended.From.Info.SectorNumber, //sectorID: extended.From.Info.SectorNumber,
minerID: m.common.addr, //minerID: m.common.addr,
} //}
log.Debugw("sector extended", "miner", m.common.addr.String(), "sector", extended.To.Info.SectorNumber, "old", extended.To.Info.Expiration, "new", extended.From.Info.Expiration) //log.Debugw("sector extended", "miner", m.common.addr.String(), "sector", extended.To.Info.SectorNumber, "old", extended.To.Info.Expiration, "new", extended.From.Info.Expiration)
} //}
curTs, err := p.node.ChainGetTipSet(ctx, m.common.tsKey) //curTs, err := p.node.ChainGetTipSet(ctx, m.common.tsKey)
if err != nil { //if err != nil {
return err //return err
} //}
for _, removed := range changes.Removed { //for _, removed := range changes.Removed {
log.Debugw("removed", "miner", m.common.addr) //log.Debugw("removed", "miner", m.common.addr)
// decide if they were terminated or extended //// decide if they were terminated or extended
if removed.Info.Expiration > curTs.Height() { //if removed.Info.Expiration > curTs.Height() {
if _, err := eventStmt.Exec(removed.Info.SectorNumber, "TERMINATED", m.common.addr.String(), m.common.stateroot.String()); err != nil { //if _, err := eventStmt.Exec(removed.Info.SectorNumber, "TERMINATED", m.common.addr.String(), m.common.stateroot.String()); err != nil {
return err //return err
} //}
log.Debugw("sector terminated", "miner", m.common.addr.String(), "sector", removed.Info.SectorNumber, "old", "sectorExpiration", removed.Info.Expiration, "terminationEpoch", curTs.Height()) //log.Debugw("sector terminated", "miner", m.common.addr.String(), "sector", removed.Info.SectorNumber, "old", "sectorExpiration", removed.Info.Expiration, "terminationEpoch", curTs.Height())
sectorUpdatesCh <- sectorUpdate{ //sectorUpdatesCh <- sectorUpdate{
terminationEpoch: curTs.Height(), //terminationEpoch: curTs.Height(),
terminated: true, //terminated: true,
expirationEpoch: removed.Info.Expiration, //expirationEpoch: removed.Info.Expiration,
sectorID: removed.Info.SectorNumber, //sectorID: removed.Info.SectorNumber,
minerID: m.common.addr, //minerID: m.common.addr,
} //}
} //}
if _, err := eventStmt.Exec(removed.Info.SectorNumber, "EXPIRED", m.common.addr.String(), m.common.stateroot.String()); err != nil { //if _, err := eventStmt.Exec(removed.Info.SectorNumber, "EXPIRED", m.common.addr.String(), m.common.stateroot.String()); err != nil {
return err //return err
} //}
log.Debugw("sector removed", "miner", m.common.addr.String(), "sector", removed.Info.SectorNumber, "old", "sectorExpiration", removed.Info.Expiration, "currEpoch", curTs.Height()) //log.Debugw("sector removed", "miner", m.common.addr.String(), "sector", removed.Info.SectorNumber, "old", "sectorExpiration", removed.Info.Expiration, "currEpoch", curTs.Height())
} //}
for _, added := range changes.Added { //for _, added := range changes.Added {
if _, err := eventStmt.Exec(added.Info.SectorNumber, "ADDED", m.common.addr.String(), m.common.stateroot.String()); err != nil { //if _, err := eventStmt.Exec(added.Info.SectorNumber, "ADDED", m.common.addr.String(), m.common.stateroot.String()); err != nil {
return err //return err
} //}
} //}
complete++ //complete++
log.Debugw("Update Done", "complete", complete, "added", len(changes.Added), "removed", len(changes.Removed), "modified", len(changes.Extended)) //log.Debugw("Update Done", "complete", complete, "added", len(changes.Added), "removed", len(changes.Removed), "modified", len(changes.Extended))
return nil //return nil
}) //})
} //}
if err := minerGrp.Wait(); err != nil { //if err := minerGrp.Wait(); err != nil {
return err //return err
} //}
close(sectorUpdatesCh) close(sectorUpdatesCh)
// wait for the update channel to be drained // wait for the update channel to be drained
updateWg.Wait() updateWg.Wait()

View File

@ -118,8 +118,11 @@ func (p *Processor) processRewardActors(ctx context.Context, rewardTips ActorTip
return nil, xerrors.Errorf("unmarshal state (@ %s): %w", rw.common.stateroot.String(), err) return nil, xerrors.Errorf("unmarshal state (@ %s): %w", rw.common.stateroot.String(), err)
} }
rw.baseBlockReward = rewardActorState.LastPerEpochReward // TODO: Resolve Actor API shift
rw.baselinePower = rewardActorState.BaselinePower //rw.baseBlockReward = rewardActorState.LastPerEpochReward
//rw.baselinePower = rewardActorState.BaselinePower
rw.baseBlockReward = big.Zero()
rw.baselinePower = big.Zero()
out = append(out, rw) out = append(out, rw)
} }
} }