Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix bugs and opt cmd #4573

Merged
merged 1 commit into from
Oct 27, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions app/submodule/mpool/mpool_submodule.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ package mpool
import (
"bytes"
"context"
"github.com/filecoin-project/venus/app/client/apiface"
"os"
"reflect"
"runtime"
"strconv"
"time"

"github.com/filecoin-project/venus/app/client/apiface"

"github.com/filecoin-project/go-address"
logging "github.com/ipfs/go-log"
"github.com/pkg/errors"
Expand Down Expand Up @@ -107,7 +108,7 @@ func NewMpoolSubmodule(cfg messagepoolConfig,
walletAPI: wallet.API(),
network: network,
networkCfg: cfg.Repo().Config().NetworkParams,
msgSigner: messagepool.NewMessageSigner(wallet.Wallet, mp, cfg.Repo().MetaDatastore()),
msgSigner: messagepool.NewMessageSigner(wallet.WalletIntersection(), mp, cfg.Repo().MetaDatastore()),
}, nil
}

Expand Down
5 changes: 5 additions & 0 deletions app/submodule/wallet/wallet_submodule.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package wallet

import (
"context"

"github.com/filecoin-project/venus/app/client/apiface"
chain2 "github.com/filecoin-project/venus/pkg/chain"

Expand Down Expand Up @@ -88,6 +89,10 @@ func (wallet *WalletSubmodule) V0API() apiface.IWallet {
}
}

func (wallet *WalletSubmodule) WalletIntersection() wallet.WalletIntersection {
return wallet.adapter
}

func getPassphraseConfig(cfg *pconfig.Config) (pconfig.PassphraseConfig, error) {
return pconfig.PassphraseConfig{
ScryptN: cfg.Wallet.PassphraseConfig.ScryptN,
Expand Down
38 changes: 37 additions & 1 deletion cmd/miner_actor.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"fmt"
"strings"

"github.com/filecoin-project/go-state-types/network"

"github.com/filecoin-project/venus/pkg/constants"

"github.com/filecoin-project/go-address"
Expand Down Expand Up @@ -166,6 +168,9 @@ var actorWithdrawCmd = &cmds.Command{
cmds.StringArg("address", true, false, "Address of miner to show"),
cmds.StringArg("amount", true, false, "[amount (FIL)]"),
},
Options: []cmds.Option{
cmds.Uint64Option("confidence", "number of block confirmations to wait for").WithDefault(constants.MessageConfidence),
},
Run: func(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment) error {
ctx := req.Context
maddr, err := address.NewFromString(req.Arguments[0])
Expand Down Expand Up @@ -212,8 +217,39 @@ var actorWithdrawCmd = &cmds.Command{
if err != nil {
return err
}
_ = re.Emit(fmt.Sprintf("Requested rewards withdrawal in message %s", smsg.Cid()))

return re.Emit(fmt.Sprintf("Requested rewards withdrawal in message %s", smsg.Cid()))
confidence, _ := req.Options["confidence"].(uint64)
// wait for it to get mined into a block
_ = re.Emit(fmt.Sprintf("waiting for %d epochs for confirmation..", confidence))
wait, err := env.(*node.Env).ChainAPI.StateWaitMsg(ctx, smsg.Cid(), confidence, -1, true)
if err != nil {
return err
}

// check it executed successfully
if wait.Receipt.ExitCode != 0 {
return err
}

nv, err := env.(*node.Env).ChainAPI.StateNetworkVersion(ctx, wait.TipSet)
if err != nil {
return err
}

if nv >= network.Version14 {
var withdrawn abi.TokenAmount
if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.ReturnValue)); err != nil {
return err
}

_ = re.Emit(fmt.Sprintf("Successfully withdrew %s", types.MustParseFIL(withdrawn.String()+"attofil")))
if withdrawn.LessThan(amount) {
_ = re.Emit(fmt.Sprintf("Note that this is less than the requested amount of %s\n", amount.String()+"attofil"))
}
}

return nil
},
Type: "",
}
Expand Down
2 changes: 1 addition & 1 deletion fixtures/networks/net_2k.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func Net2k() *NetworkConf {
},
Network: config.NetworkParamsConfig{
NetworkType: constants.Network2k,
GenesisNetworkVersion: network.Version0,
GenesisNetworkVersion: network.Version14,
BlockDelay: 4,
ConsensusMinerMinPower: 2048,
MinVerifiedDealSize: 256,
Expand Down
20 changes: 17 additions & 3 deletions pkg/gen/genesis/miners.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"math/rand"

power4 "github.com/filecoin-project/specs-actors/v4/actors/builtin/power"
builtin6 "github.com/filecoin-project/specs-actors/v6/actors/builtin"

reward4 "github.com/filecoin-project/specs-actors/v4/actors/builtin/reward"

Expand Down Expand Up @@ -428,11 +429,24 @@ func SetupStorageMiners(ctx context.Context, cs *chain.Store, sroot cid.Cid, min
}

// Commit one-by-one, otherwise pledge math tends to explode
confirmParams := &builtin0.ConfirmSectorProofsParams{
Sectors: []abi.SectorNumber{preseal.SectorID},
var paramBytes []byte

if av >= specactors.Version6 {
// TODO: fixup
confirmParams := &builtin6.ConfirmSectorProofsParams{
Sectors: []abi.SectorNumber{preseal.SectorID},
}

paramBytes = mustEnc(confirmParams)
} else {
confirmParams := &builtin0.ConfirmSectorProofsParams{
Sectors: []abi.SectorNumber{preseal.SectorID},
}

paramBytes = mustEnc(confirmParams)
}

_, err = doExecValue(ctx, vmi, minerInfos[i].maddr, power.Address, big.Zero(), miner.Methods.ConfirmSectorProofsValid, mustEnc(confirmParams))
_, err = doExecValue(ctx, vmi, minerInfos[i].maddr, power.Address, big.Zero(), miner.Methods.ConfirmSectorProofsValid, paramBytes)
if err != nil {
return cid.Undef, xerrors.Errorf("failed to confirm presealed sectors: %w", err)
}
Expand Down