github.com/DxChainNetwork/dxc@v0.8.1-0.20220824085222-1162e304b6e7/cmd/stress-test/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"math/big"
     6  	"os"
     7  
     8  	"github.com/DxChainNetwork/dxc/common"
     9  	"github.com/DxChainNetwork/dxc/common/fdlimit"
    10  	"github.com/DxChainNetwork/dxc/internal/flags"
    11  	"github.com/DxChainNetwork/dxc/log"
    12  	"github.com/DxChainNetwork/dxc/params"
    13  	"gopkg.in/urfave/cli.v1"
    14  )
    15  
    16  var (
    17  	// Git SHA1 commit hash of the release (set via linker flags)
    18  	gitCommit = ""
    19  	gitDate   = ""
    20  )
    21  
    22  // const test params
    23  var (
    24  	receiver = common.HexToAddress("0x4Bee7F41037532509368b7B4CA8255b44Dd8Fb77")
    25  	fee      = new(big.Int).Mul(big.NewInt(10), big.NewInt(params.Ether))
    26  
    27  	hbTransferLimit    = uint64(21000)
    28  	tokenTransferLimit = uint64(100000)
    29  	tokenTransferSig   = "a9059cbb"
    30  
    31  	defaultDecimal = 18
    32  
    33  	jobsPerThread = 20
    34  
    35  	storePath = ".keys"
    36  )
    37  
    38  var app *cli.App
    39  
    40  func init() {
    41  	app = flags.NewApp(gitCommit, gitDate, "ethereum checkpoint helper tool")
    42  	app.Commands = []cli.Command{
    43  		commandStressTestNormal,
    44  		commandStressTestToken,
    45  	}
    46  	app.Flags = []cli.Flag{
    47  		nodeURLFlag,
    48  		privKeyFlag,
    49  	}
    50  	cli.CommandHelpTemplate = flags.OriginCommandHelpTemplate
    51  }
    52  
    53  // Commonly used command line flags.
    54  var (
    55  	nodeURLFlag = cli.StringFlag{
    56  		Name:  "rpc",
    57  		Value: "http://localhost:8545",
    58  		Usage: "The rpc endpoint list of servial local or remote geth nodes(separator ',')",
    59  	}
    60  	privKeyFlag = cli.StringFlag{
    61  		Name: "privkey",
    62  		// 0x4Bee7F41037532509368b7B4CA8255b44Dd8Fb77
    63  		Value: "14b3237e4c9a9cf5c4884cd980ed17f056bd7f09bfd08c58117d36d0dbac997e",
    64  		Usage: "The main account used for test",
    65  	}
    66  	accountNumberFlag = cli.IntFlag{
    67  		Name:  "accountNumber",
    68  		Value: 100,
    69  		Usage: "The number of accounts used for test",
    70  	}
    71  	totalTxsFlag = cli.IntFlag{
    72  		Name:  "totalTxs",
    73  		Value: 10000,
    74  		Usage: "The total number of transactions sent for test",
    75  	}
    76  	threadsFlag = cli.IntFlag{
    77  		Name:  "threads",
    78  		Value: 100,
    79  		Usage: "The go routine number for test",
    80  	}
    81  	tokenFlag = cli.StringFlag{
    82  		Name:  "token",
    83  		Value: "0x000000000000000000000000000000000000f003",
    84  		Usage: "The token address of test",
    85  	}
    86  	decimalFlag = cli.IntFlag{
    87  		Name:  "decimal",
    88  		Value: defaultDecimal,
    89  		Usage: "The decimal of token",
    90  	}
    91  )
    92  
    93  func main() {
    94  	log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StreamHandler(os.Stderr, log.TerminalFormat(true))))
    95  	fdlimit.Raise(10000)
    96  
    97  	if err := app.Run(os.Args); err != nil {
    98  		fmt.Fprintln(os.Stderr, err)
    99  		os.Exit(1)
   100  	}
   101  }