OSDN Git Service

feat(remove mining): remove mining code (#1877)
authorjacksoom <lifengliu1994@gmail.com>
Fri, 9 Apr 2021 06:13:20 +0000 (14:13 +0800)
committerGitHub <noreply@github.com>
Fri, 9 Apr 2021 06:13:20 +0000 (14:13 +0800)
12 files changed:
Makefile
README.md
account/accounts.go
api/accounts.go
api/api.go
cmd/bytomcli/commands/bytomcli.go
cmd/bytomcli/commands/mining.go [deleted file]
cmd/bytomd/commands/run_node.go
config/config.go
consensus/general.go
protocol/txpool_test.go
test/integration/run_test.go

index 16337c3..7d3ba91 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -38,7 +38,6 @@ bytomd:
 
 bytomd-simd:
        @echo "Building SIMD version bytomd to cmd/bytomd/bytomd"
-       @cd mining/tensority/cgo_algorithm/lib/ && make
        @go build -tags="simd" $(BUILD_FLAGS) -o cmd/bytomd/bytomd cmd/bytomd/main.go
 
 bytomcli:
index 985023d..f3a8859 100644 (file)
--- a/README.md
+++ b/README.md
@@ -98,7 +98,6 @@ Flags:
   -h, --help                             help for node
       --log_file string                  Log output file (default "log")
       --log_level string                 Select log level(debug, info, warn, error or fatal)
-      --mining                           Enable mining
       --p2p.dial_timeout int             Set dial timeout (default 3)
       --p2p.handshake_timeout int        Set handshake timeout (default 30)
       --p2p.keep_dial string             Peers addresses try keeping connecting to, separated by ',' (for example "1.1.1.1:46657;2.2.2.2:46658")
index 512d1a6..6ec96a9 100644 (file)
@@ -19,11 +19,11 @@ import (
        "github.com/bytom/bytom/crypto"
        "github.com/bytom/bytom/crypto/ed25519/chainkd"
        "github.com/bytom/bytom/crypto/sha3pool"
+       dbm "github.com/bytom/bytom/database/leveldb"
        "github.com/bytom/bytom/errors"
        "github.com/bytom/bytom/protocol"
        "github.com/bytom/bytom/protocol/bc"
        "github.com/bytom/bytom/protocol/vm/vmutil"
-       dbm "github.com/bytom/bytom/database/leveldb"
 )
 
 const (
@@ -541,15 +541,6 @@ func (m *Manager) GetLocalCtrlProgramByAddress(address string) (*CtrlProgram, er
        return cp, json.Unmarshal(rawProgram, cp)
 }
 
-// GetMiningAddress will return the mining address
-func (m *Manager) GetMiningAddress() (string, error) {
-       cp, err := m.GetCoinbaseCtrlProgram()
-       if err != nil {
-               return "", err
-       }
-       return cp.Address, nil
-}
-
 // IsLocalControlProgram check is the input control program belong to local
 func (m *Manager) IsLocalControlProgram(prog []byte) bool {
        var hash common.Hash
@@ -606,26 +597,6 @@ func (m *Manager) RemoveUnconfirmedUtxo(hashes []*bc.Hash) {
        m.utxoKeeper.RemoveUnconfirmedUtxo(hashes)
 }
 
-// SetMiningAddress will set the mining address
-func (m *Manager) SetMiningAddress(miningAddress string) (string, error) {
-       program, err := m.getProgramByAddress(miningAddress)
-       if err != nil {
-               return "", err
-       }
-
-       cp := &CtrlProgram{
-               Address:        miningAddress,
-               ControlProgram: program,
-       }
-       rawCP, err := json.Marshal(cp)
-       if err != nil {
-               return "", err
-       }
-
-       m.db.Set(miningAddressKey, rawCP)
-       return m.GetMiningAddress()
-}
-
 func (m *Manager) SetCoinbaseArbitrary(arbitrary []byte) {
        m.db.Set(CoinbaseAbKey, arbitrary)
 }
index df903df..9aa4a36 100644 (file)
@@ -177,30 +177,3 @@ func (a *API) listAddresses(ctx context.Context, ins struct {
        start, end := getPageRange(len(addresses), ins.From, ins.Count)
        return NewSuccessResponse(addresses[start:end])
 }
-
-type minigAddressResp struct {
-       MiningAddress string `json:"mining_address"`
-}
-
-func (a *API) getMiningAddress(ctx context.Context) Response {
-       miningAddress, err := a.wallet.AccountMgr.GetMiningAddress()
-       if err != nil {
-               return NewErrorResponse(err)
-       }
-       return NewSuccessResponse(minigAddressResp{
-               MiningAddress: miningAddress,
-       })
-}
-
-// POST /set-mining-address
-func (a *API) setMiningAddress(ctx context.Context, in struct {
-       MiningAddress string `json:"mining_address"`
-}) Response {
-       miningAddress, err := a.wallet.AccountMgr.SetMiningAddress(in.MiningAddress)
-       if err != nil {
-               return NewErrorResponse(err)
-       }
-       return NewSuccessResponse(minigAddressResp{
-               MiningAddress: miningAddress,
-       })
-}
index d57d8bc..533b45a 100644 (file)
@@ -214,9 +214,6 @@ func (a *API) buildHandler() {
                m.Handle("/validate-address", jsonHandler(a.validateAddress))
                m.Handle("/list-pubkeys", jsonHandler(a.listPubKeys))
 
-               m.Handle("/get-mining-address", jsonHandler(a.getMiningAddress))
-               m.Handle("/set-mining-address", jsonHandler(a.setMiningAddress))
-
                m.Handle("/create-asset", jsonHandler(a.createAsset))
                m.Handle("/update-asset-alias", jsonHandler(a.updateAssetAlias))
                m.Handle("/get-asset", jsonHandler(a.getAsset))
index 6796709..0da010e 100644 (file)
@@ -167,9 +167,6 @@ func AddCommands() {
        BytomcliCmd.AddCommand(getTransactionFeedCmd)
        BytomcliCmd.AddCommand(updateTransactionFeedCmd)
 
-       BytomcliCmd.AddCommand(isMiningCmd)
-       BytomcliCmd.AddCommand(setMiningCmd)
-
        BytomcliCmd.AddCommand(netInfoCmd)
        BytomcliCmd.AddCommand(gasRateCmd)
 
diff --git a/cmd/bytomcli/commands/mining.go b/cmd/bytomcli/commands/mining.go
deleted file mode 100644 (file)
index 7e37ecb..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-package commands
-
-import (
-       "os"
-       "strings"
-
-       "github.com/spf13/cobra"
-       jww "github.com/spf13/jwalterweatherman"
-
-       "github.com/bytom/bytom/util"
-)
-
-var isMiningCmd = &cobra.Command{
-       Use:   "is-mining",
-       Short: "If client is actively mining new blocks",
-       Args:  cobra.NoArgs,
-       Run: func(cmd *cobra.Command, args []string) {
-               data, exitCode := util.ClientCall("/is-mining")
-               if exitCode != util.Success {
-                       os.Exit(exitCode)
-               }
-               printJSON(data)
-       },
-}
-
-var setMiningCmd = &cobra.Command{
-       Use:   "set-mining <true or false>",
-       Short: "start or stop mining",
-       Args:  cobra.ExactArgs(1),
-       Run: func(cmd *cobra.Command, args []string) {
-               param := strings.ToLower(args[0])
-               isMining := false
-               switch param {
-               case "true":
-                       isMining = true
-               default:
-                       isMining = false
-               }
-
-               miningInfo := &struct {
-                       IsMining bool `json:"is_mining"`
-               }{IsMining: isMining}
-
-               if _, exitCode := util.ClientCall("/set-mining", miningInfo); exitCode != util.Success {
-                       os.Exit(exitCode)
-               }
-
-               if isMining {
-                       jww.FEEDBACK.Println("start mining success")
-               } else {
-                       jww.FEEDBACK.Println("stop mining success")
-               }
-       },
-}
index 8a140fd..0810e17 100644 (file)
@@ -19,7 +19,6 @@ var runNodeCmd = &cobra.Command{
 
 func init() {
        runNodeCmd.Flags().String("prof_laddr", config.ProfListenAddress, "Use http to profile bytomd programs")
-       runNodeCmd.Flags().Bool("mining", config.Mining, "Enable mining")
 
        runNodeCmd.Flags().Bool("simd.enable", config.Simd.Enable, "Enable SIMD mechan for tensority")
 
index 666b14f..71fcf1f 100644 (file)
@@ -102,8 +102,6 @@ type BaseConfig struct {
        // TCP or UNIX socket address for the profiling server to listen on
        ProfListenAddress string `mapstructure:"prof_laddr"`
 
-       Mining bool `mapstructure:"mining"`
-
        // Database backend: leveldb | memdb
        DBBackend string `mapstructure:"db_backend"`
 
@@ -126,7 +124,6 @@ func DefaultBaseConfig() BaseConfig {
        return BaseConfig{
                Moniker:           "anonymous",
                ProfListenAddress: "",
-               Mining:            false,
                DBBackend:         "leveldb",
                DBPath:            "data",
                KeysPath:          "keystore",
index cfa9027..5aa83c6 100644 (file)
@@ -22,11 +22,6 @@ const (
        baseSubsidy                = uint64(41250000000)
        InitialBlockSubsidy        = uint64(140700041250000000)
 
-       // config for pow mining
-       BlocksPerRetarget     = uint64(2016)
-       TargetSecondsPerBlock = uint64(150)
-       SeedPerRetarget       = uint64(256)
-
        // MaxTimeOffsetSeconds is the maximum number of seconds a block time is allowed to be ahead of the current time
        MaxTimeOffsetSeconds = uint64(60 * 60)
        MedianTimeBlocks     = 11
index 56910a4..c71bd2e 100644 (file)
@@ -97,18 +97,12 @@ var testTxs = []*types.Tx{
 
 type mockStore struct{}
 
-func (s *mockStore) GetBlockHeader(hash *bc.Hash) (*types.BlockHeader, error) {
-       panic("implement me")
-}
-
-func (s *mockStore) GetCheckpoint(hash *bc.Hash) (*state.Checkpoint, error) {
-       panic("implement me")
-}
-
-func (s *mockStore) GetCheckpointsByHeight(u uint64) ([]*state.Checkpoint, error) {
-       panic("implement me")
+func (s *mockStore) SaveChainStatus(*state.BlockNode, *state.UtxoViewpoint, *state.ContractViewpoint) error {
+       return nil
 }
-
+func (s *mockStore) GetBlockHeader(hash *bc.Hash) (*types.BlockHeader, error)     { return nil, nil }
+func (s *mockStore) GetCheckpoint(hash *bc.Hash) (*state.Checkpoint, error)       { return nil, nil }
+func (s *mockStore) GetCheckpointsByHeight(u uint64) ([]*state.Checkpoint, error) { return nil, nil }
 func (s *mockStore) BlockExist(hash *bc.Hash) bool                                { return false }
 func (s *mockStore) GetBlock(*bc.Hash) (*types.Block, error)                      { return nil, nil }
 func (s *mockStore) GetStoreStatus() *BlockStoreState                             { return nil }
@@ -117,7 +111,6 @@ func (s *mockStore) GetTransactionsUtxo(*state.UtxoViewpoint, []*bc.Tx) error
 func (s *mockStore) GetUtxo(*bc.Hash) (*storage.UtxoEntry, error)                 { return nil, nil }
 func (s *mockStore) LoadBlockIndex(uint64) (*state.BlockIndex, error)             { return nil, nil }
 func (s *mockStore) SaveBlock(*types.Block, *bc.TransactionStatus) error          { return nil }
-func (s *mockStore) SaveChainStatus(*state.BlockNode, *state.UtxoViewpoint) error { return nil }
 
 func TestAddOrphan(t *testing.T) {
        cases := []struct {
@@ -603,18 +596,12 @@ func TestRemoveOrphan(t *testing.T) {
 
 type mockStore1 struct{}
 
-func (s *mockStore1) GetBlockHeader(hash *bc.Hash) (*types.BlockHeader, error) {
-       panic("implement me")
-}
-
-func (s *mockStore1) GetCheckpoint(hash *bc.Hash) (*state.Checkpoint, error) {
-       panic("implement me")
-}
-
-func (s *mockStore1) GetCheckpointsByHeight(u uint64) ([]*state.Checkpoint, error) {
-       panic("implement me")
+func (s *mockStore1) SaveChainStatus(*state.BlockNode, *state.UtxoViewpoint, *state.ContractViewpoint) error {
+       return nil
 }
-
+func (s *mockStore1) GetBlockHeader(hash *bc.Hash) (*types.BlockHeader, error)     { return nil, nil }
+func (s *mockStore1) GetCheckpoint(hash *bc.Hash) (*state.Checkpoint, error)       { return nil, nil }
+func (s *mockStore1) GetCheckpointsByHeight(u uint64) ([]*state.Checkpoint, error) { return nil, nil }
 func (s *mockStore1) BlockExist(hash *bc.Hash) bool                                { return false }
 func (s *mockStore1) GetBlock(*bc.Hash) (*types.Block, error)                      { return nil, nil }
 func (s *mockStore1) GetStoreStatus() *BlockStoreState                             { return nil }
@@ -625,10 +612,9 @@ func (s *mockStore1) GetTransactionsUtxo(utxoView *state.UtxoViewpoint, tx []*bc
        }
        return nil
 }
-func (s *mockStore1) GetUtxo(*bc.Hash) (*storage.UtxoEntry, error)                 { return nil, nil }
-func (s *mockStore1) LoadBlockIndex(uint64) (*state.BlockIndex, error)             { return nil, nil }
-func (s *mockStore1) SaveBlock(*types.Block, *bc.TransactionStatus) error          { return nil }
-func (s *mockStore1) SaveChainStatus(*state.BlockNode, *state.UtxoViewpoint) error { return nil }
+func (s *mockStore1) GetUtxo(*bc.Hash) (*storage.UtxoEntry, error)        { return nil, nil }
+func (s *mockStore1) LoadBlockIndex(uint64) (*state.BlockIndex, error)    { return nil, nil }
+func (s *mockStore1) SaveBlock(*types.Block, *bc.TransactionStatus) error { return nil }
 
 func TestProcessTransaction(t *testing.T) {
        txPool := &TxPool{
index 90de8e9..f9bf06b 100644 (file)
@@ -12,7 +12,6 @@ import (
 func mockConfig() *cfg.Config {
        var config = cfg.DefaultConfig()
        config.Wallet.Disable = false
-       config.Mining = true
        config.ApiAddress = "127.0.0.1:9888"
        return config
 }