我正在使用一个由两个节点组成的专用网络进行负载测试。DApp是一种网络服务,它存储和检索部署在私有Ethereum中的智能契约中的数据。对于负载测试,我使用的是JMeter,它在1小时内模拟大约100个用户。协议流向每个用户提交12个事务,总计约1200个事务。我注意到这种特殊的行为:
即使事务池中有多个事务,每个块也只包含一个事务。截图如下:

可以想象,负载测试在事务池中创建了大量事务积压,需要相当长的时间才能包含在块中。
我想知道为什么在这个块中只包含一个事务。是否有任何方法将多个事务包含在单个块中?
我用Geth和私人区块链交互。其参数是:
Version: 1.5.4-stable
Git Commit: b70acf3c5bd335d8dedc2a5aa6eff05c4c32105e
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.7.3
OS: linux提前谢谢。
里普
发布于 2017-01-11 23:04:00
您是否正确地设置了每个事务的时间?否则,块中将只包含每个用户一个事务(可能是nonce=0的第一个事务)。因为你在1小时内拥有大约100个用户,这意味着大约100 txs在3600秒内,1 tx在36秒内,或者每个块1-0 tx。
每个事务都需要一个时间,每个用户都有自己的即时计数器。只有在轮到事务执行时,才会将事务包含在块中,这意味着当用户的计数器与tx的nonce匹配时。有关tx现在的更多信息,请阅读这个答案。
发布于 2019-10-04 14:58:24
来自布洛克纳蒂的团队..。一个加速的交易通常有:
您需要确保您要发送的快速事务符合该约定,以确保它被发送。
您可以在这里阅读全文:https://blog.blocknative.com/blog/speed-up-transactions
https://ethereum.stackexchange.com/questions/11330
复制相似问题