Comments (4)
Hi there - are you sending all of the transactions from the same account? and with the same nonce? are you incrementing the nonce? I am not sure how you are sending these txs, probably web3j. There may be documentation on how to increment the nonce on that side. If there is a nonce gap as well, that could cause issues.
Transactions with the same sender and same nonce will not be included and are considered invalid. Nonces cannot be re-used. Let me know if this was helpful or if there is more of a bug here that we can try to reproduce.
from besu.
Thanks for response. I sent transactions from various users to itself so nonce didnt affect any problems.
But I found a different issue, caused by 'gas limit'.
Since I use go-ethereum for sending transaction to besu, I allocated all values to genesis.json for free-gas network.
(https://besu.hyperledger.org/development/private-networks/how-to/configure/free-gas)
But when I set same gas limit inside go-ethereum while building transaction, It always send single transaction even though there is enough usable gas.
tx := types.NewTx(&types.LegacyTx{
...
Gas: uint64(9007199254740990)
}
But when client calculates gas limit real-time and allocate it to transaction (using ethclient.EstimateGas), lots of transactions can be sent in single block.
If client uses less than highest gas limit (9007199254740990), many transactions allocated to single block, but not as many as when calculating gas limit real-time.
Here is my assumptions.
- If client sets gas limit higher, Besu uses more gas even though it doesnt need to use that amount to send transaction.
- Since Besu is programmed by java, type of gas limit is little bit different between java and golang.
Is there someone can help me?
from besu.
Please report the Besu configuration overview that is printed at the beginning just after you start it, because I am not sure which txpool implementation you are using
from besu.
I have the same issue as @wnjoon. I used --tx-pool="sequence".
I tried switching to the 'layered' txpool type, but it still the same problem
Here my genesis file
{
"config" : {
"chainId" : 7777,
"homesteadBlock" : 0,
"daoForkBlock" : 0,
"daoForkSupport" : true,
"eip150Block" : 0,
"eip150Hash" : "0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0",
"eip155Block" : 0,
"eip158Block" : 0,
"byzantiumBlock" : 0,
"constantinopleBlock" : 0,
"petersburgBlock": 0,
"istanbulBlock":0,
"muirGlacierBlock" : 0,
"berlinBlock" : 0,
"londonBlock" : 0,
"arrowGlacierBlock" : 0,
"grayGlacierBlock" : 0,
"parisBlock" : 0,
"shanghaiTime" : 0,
"cancunTime" : 0,
"zeroBaseFee" : true,
"qbft" : {
"blockperiodseconds" : 2,
"epochlength" : 30000,
"requesttimeoutseconds" : 4
}
},
"nonce" : "0x0",
"timestamp" : "0x58ee40ba",
"gasLimit" : "0x1fffffffffffff",
"difficulty" : "0x1",
"mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase" : "0x0000000000000000000000000000000000000000",
"alloc" : {
"0fe2c00ca55f25655a6c49a359552ab4c176a883" : {
"comment" : "Node 1 address",
"balance" : "1000000000000000000000000000"
},
"8b819fc1afb3be79b561939411fc4cd91bbe3b3f" : {
"comment" : "Node 2 address",
"balance" : "1000000000000000000000000000"
},
"d1aaa514cfda4b16e914c315f181f8f2ffb626af" : {
"comment" : "Node 3 address",
"balance" : "1000000000000000000000000000"
},
"fd6bc1c8a1fe39f93247d91bdfd9ea0dfe1cdabd" : {
"comment" : "Node 4 address",
"balance" : "1000000000000000000000000000"
},
"76E046c0811edDA17E57dB5D2C088DB0F30DcC74" : {
"balance" : "1000000000000000000000000000"
},
"79310C4f47e1CC21eB7e3BE7aAF15D79b3d1b2d1" : {
"balance" : "1000000000000000000000000000"
}
},
"extraData" : "0xf87aa00000000000000000000000000000000000000000000000000000000000000000f854940fe2c00ca55f25655a6c49a359552ab4c176a883948b819fc1afb3be79b561939411fc4cd91bbe3b3f94d1aaa514cfda4b16e914c315f181f8f2ffb626af94fd6bc1c8a1fe39f93247d91bdfd9ea0dfe1cdabdc080c0"
}
here is config.toml file:
ata-path="./data"
genesis-file="../networkFiles/genesis_v1.0.json"
profile="private"
rpc-http-enabled=true
rpc-http-api=["ETH","NET","QBFT","TXPOOL","WEB3"]
rpc-http-cors-origins=["all"]
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-max-active-connections=10000 #The maximum number of allowed HTTP JSON-RPC connections.
rpc-gas-cap=50000000
rpc-ws-enabled=true
rpc-ws-api=["ETH","NET","IBFT"]
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
host-allowlist=["*"]
p2p-host="178.128.116.25"
p2p-port=30303
min-gas-price=0
#min priority gas price
## TXPOOL
#tx-pool="sequenced"
#tx-pool-enable-save-restore=true
#tx-pool-limit-by-account-percentage=1
#tx-pool-retention-hours=1
tx-pool="layered"
tx-pool-enable-save-restore=true
tx-pool-max-future-by-sender="250"
#tx-pool-price-bump=0
revert-reason-enabled=true
rpc-max-logs-range=0
The besu version i used is 24.5.4
from besu.
Related Issues (20)
- Extend Tracing for zk EVMs HOT 1
- Sonarqube - fix the workflow HOT 1
- Fix docs status badge in README
- Better Peer handling for tasks
- Erroneous stateDiff in API calls for failed transactions HOT 1
- TrieLogPruner.preloadQueue Performance Issue HOT 5
- How to get around "Host not authorized" error when accessing besu from second host or Metamask? HOT 1
- Compose Protocol Spec with Dagger
- Rename data gas to blob gas
- Fix Besu docs update automation
- eth_syncing endpoint returns false when execution client is not synced
- Add 7702 transactions to BlockDataGenerator.transaction
- Add 7702 support to LayersTest.getOrCreate
- Add 7702 support to TransactionTestFixture.createTransaction
- Add 7002 support to PendingTransaction.computeSetCodeMemorySize
- Change 7702 to new version for devnet-2
- Remove Privacy ATs - have been disabled for some time
- Remove the duplicated AcceptanceTestBase
- Unable to recover blocks after worldstate database issue
- Receipts root mismatch during Full Sync in QBFT
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from besu.