Commit f711527d authored by 李伟@五瓣科技's avatar 李伟@五瓣科技

1s send 1 tx

parent 64c2cd69
......@@ -11,7 +11,6 @@ import (
"github.com/go-redis/redis/v8"
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
......@@ -21,15 +20,15 @@ import (
var privatekey string = "a1994419e9b06a7b27e8d094840ae26a6b7806633bb8be55a1a835f1620d8cec"
var toAddress common.Address = common.HexToAddress("0x4592d8f8d7b001e72cb26a73e4fa1806a51ac79d")
// var data []byte = make([]byte, 0, md5.Size*(1000))
var data []byte = make([]byte, 0, md5.Size*(3))
// func init() {
// privatekey = "a1994419e9b06a7b27e8d094840ae26a6b7806633bb8be55a1a835f1620d8cec"
// for i := 0; i < 8140; i++ {
// hash := md5.Sum([]byte(fmt.Sprintf("%d", i)))
// data = append(data, hash[:]...)
// }
// }
func init() {
privatekey = "a1994419e9b06a7b27e8d094840ae26a6b7806633bb8be55a1a835f1620d8cec"
for i := 0; i < 3; i++ {
hash := md5.Sum([]byte(fmt.Sprintf("%d", i)))
data = append(data, hash[:]...)
}
}
type EthClientFactory struct{}
......@@ -61,6 +60,7 @@ func (f *EthClientFactory) NewClient(cfg Config) (Client, error) {
}
func (c *EthClient) GenerateTx() (*types.Transaction, error) {
privateKeyAsECDSA, err := crypto.HexToECDSA(privatekey)
if err != nil {
return nil, err
......@@ -81,27 +81,29 @@ func (c *EthClient) GenerateTx() (*types.Transaction, error) {
return nil, err
}
gasPrice, err := client.SuggestGasPrice(context.Background())
if err != nil {
return nil, err
}
chainID, err := client.NetworkID(context.Background())
if err != nil {
return nil, err
}
txs, md5data, err := getBatchTx(100, c.NodeRpcURL, false)
// gasPrice, err := client.SuggestGasPrice(context.Background())
// if err != nil {
// return nil, err
// }
// chainID, err := client.NetworkID(context.Background())
// if err != nil {
// return nil, err
// }
txs, md5data, err := getBatchTx(3, c.NodeRpcURL, false)
if err != nil {
return nil, err
}
_ = txs
gasLimit, err := client.EstimateGas(context.Background(), ethereum.CallMsg{
To: &toAddress,
Data: md5data,
})
// gasLimit, err := client.EstimateGas(context.Background(), ethereum.CallMsg{
// To: &toAddress,
// Data: md5data,
// })
tx := types.NewTransaction(nonce, toAddress, big.NewInt(10000000000000), gasLimit, gasPrice, md5data)
signedTx, err := types.SignTx(tx, types.NewEIP155Signer(chainID), privateKeyAsECDSA)
//fmt.Printf("gasLimit: %d gasPrice: %d \n", gasLimit, gasPrice)
tx := types.NewTransaction(nonce, toAddress, big.NewInt(10000000000000), 24894, big.NewInt(1000000000), md5data)
//tx := types.NewTransaction(nonce, toAddress, big.NewInt(10000000000000), 24894, big.NewInt(1000000000), data)
signedTx, err := types.SignTx(tx, types.NewEIP155Signer(big.NewInt(256)), privateKeyAsECDSA)
if err != nil {
return nil, err
}
......
......@@ -250,7 +250,7 @@ func (t *Transactor) sendTransactions() error {
var sent int
var sentBytes int64
defer func() { t.trackSentTxs(sent, sentBytes) }()
t.logger.Info("Sending batch of transactions", "toSend", toSend)
t.logger.Info("Sending batch of transactions", "now", time.Now().Format("15:04:05"), "toSend", toSend)
batchStartTime := time.Now()
for ; sent < toSend; sent++ {
tx, err := t.client.GenerateTx()
......
......@@ -8,11 +8,11 @@ import (
func TestTransactor(t *testing.T) {
cfg := Config{
Rate: 10,
Count: 10,
Rate: 2,
Count: 100,
Connections: 1,
Time: 60,
SendPeriod: 10,
Time: 100,
SendPeriod: 1,
ClientFactory: "ethclient",
}
......@@ -21,9 +21,9 @@ func TestTransactor(t *testing.T) {
if err != nil {
t.Error(err)
}
transactor.sendTransactions()
//transactor.sendTransactions()
//transactor.sendLoop()
//transactor.Start()
transactor.Start()
time.Sleep(time.Second * 60)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment