Javascript 如何使用JS向以太坊发送大量事务

Javascript 如何使用JS向以太坊发送大量事务,javascript,node.js,transactions,ethereum,web3,Javascript,Node.js,Transactions,Ethereum,Web3,我正试图用一个用js编写的程序向以太坊发送大量事务。我使用NodeJS、web3和infura-ropsten。问题是:如果我立即发送事务,大多数事务就会消失。为了解决这个问题,我每隔一段时间发送事务。它起作用了,但速度很慢。我只花了大约一个小时发送100笔交易。有什么解决方案可以让它更快、更正确地工作吗?我正在考虑在前一个事务开始挂起后发送事务,但我不知道如何才能做到这一点。函数sendRaw仅在一段时间后获取事务编号。此代码读取文件,获取地址、金额和可选数据,并使用智能合约的方法传输令牌。

我正试图用一个用js编写的程序向以太坊发送大量事务。我使用NodeJS、web3和infura-ropsten。问题是:如果我立即发送事务,大多数事务就会消失。为了解决这个问题,我每隔一段时间发送事务。它起作用了,但速度很慢。我只花了大约一个小时发送100笔交易。有什么解决方案可以让它更快、更正确地工作吗?我正在考虑在前一个事务开始挂起后发送事务,但我不知道如何才能做到这一点。函数sendRaw仅在一段时间后获取事务编号。此代码读取文件,获取地址、金额和可选数据,并使用智能合约的方法传输令牌。 代码如下:

function sendRaw(rawTx) {
var privateKey = new Buffer(key, 'hex');
var transaction = new tx(rawTx);
transaction.sign(privateKey);
var serializedTx = transaction.serialize().toString('hex');
web3.eth.sendRawTransaction(
'0x' + serializedTx, function(err, result) {
    if(err) {
        console.log(err);
    } else {

        console.log(result);
        Ntrans=result;
    }
});
}


var nonce = web3.eth.getTransactionCount(address);
var gasPrice = web3.eth.gasPrice;
var gasLimit = 90000;

var fs = require("fs");
var buf1 = new Buffer(1024);
var buf2 = new Buffer(1024);
var buf3 = new Buffer(1024);
var i = 0;
var j = 0;
var k = 0;

var fd = fs.openSync('/home/kate/Desktop/file.txt', 'r+');


function recurs()
{
    if(k==5) return -1;
    j = 0;
    do
    {
          fs.readSync(fd, buf1, j, 1, i);
          i++;
          j++;
    }
    while(buf1[j-1] != 32);
    AddressC = String(buf1.slice(0, j-1))
    console.log(AddressC);
    j = 0;
    do
    {
          fs.readSync(fd, buf2, j, 1, i)
          i++;
          j++;
    }
    while(buf2[j-1]!=32);
    ValueT = Number(buf2.slice(0, j-1))
    console.log(ValueT);
    j = 0;
    do
    {
          fs.readSync(fd, buf3, j, 1, i);
          i++;
          j++;
    }
    while(buf3[j-1]!=10);
    TxC = String(buf3.slice(0, j-1));

    txOptions =
    {
         nonce: web3.toHex(nonce),
         gasLimit: web3.toHex(gasLimit),
         gasPrice: web3.toHex(gasPrice),
         to: contractAddress

    }

    console.log(TxC);
    console.log(txOptions);
    rawTx = txutils.functionTx(interface, 'foreignBuy', [AddressC, 
    ValueT, TxC], txOptions);
    sendRaw(rawTx);
    k++;
    nonce++;
   /* while(web3.eth.getTransactionReceipt(Ntrans)=="null")
    {

    } */
}

setTimeout(function(){
    recurs();
}, 5000);
}
recurs();