Open unlogicalcode opened 1 month ago
Issue also appears with Version 23.4.1 of the Docker container.
Can you show us all the parameters you are sending in eth_sendRawTransaction? I use Hardhat to deploy contracts in a zero fee network and I need to define {gasPrice: null, gasLimit: null,}
I can deploy contracts with zero fees.
Hi sure, this is the decoded Raw Transaction:
{
"chainId": "1337",
"type": "LegacyTransaction",
"valid": true,
"hash": "0xc49cd7262c2b45fdaf69954703ea440a42bfaaf354648a3ab59933d185780320",
"nonce": "0",
"gasPrice": "0",
"gasLimit": "1500000",
"from": "0xBC892d2496cf2651dE0C5d768f38dc1244afb94A",
"v": "0a95",
"r": "60a999ea52f052eb5fd1e45567beccc8e0e8ee5cb2b71ead64dcf3fb29f5b2de",
"s": "1bfbc22f8450dc97998733cf4ffcb2b0c37b00e4a80366d2cc496ac7e74d3d3f",
"value": "0",
"input": "replaced_contract_data",
"functionHash": "60a0604052",
"possibleFunctions": []
}
But, you saying, that you set the Gas Limit also to "null" could be a Clue.
I tried it with a Gas-Limit of 0:
{
"chainId": "1337",
"type": "LegacyTransaction",
"valid": true,
"hash": "0x39695439c00d4046154e2a0f7d46cbb8f42f28c39328bfa9a8ea5f74c22a2740",
"nonce": "0",
"gasPrice": "0",
"gasLimit": "0",
"from": "0xBC892d2496cf2651dE0C5d768f38dc1244afb94A",
"v": "0a96",
"r": "bf308cf3c87d87329228886097d0563ba80bbd35061cdf43f1aa0c72625b701a",
"s": "43725993621aa9e610b90eb1d94244358cd9c0875a6a9d7e2c587b65bac42fb5",
"value": "0",
"input": "replaced_contract_data",
"functionHash": "60a0604052",
"possibleFunctions": []
}
Sadly, this also does produce the same Result.
Are you following all that is said here? https://besu.hyperledger.org/private-networks/how-to/configure/free-gas
In my Hardhat configuration I also have this: gasPrice: 0, gas: 0x1ffffffffffffe, gasMultiplier: 0,
Yes, I follow the free gas Configuration. Thats also why I attached all my Configurations and the docker-compose and so on, since I might are overlooking something. Even tough I triple checked every Step before reporting the Issue.
The Contract isn't deployed via HardHat tho. It is a Contract developed with hardhat. But it is embedded within a Java Appliction. This Application sends the Contract as the Input of the Eth Raw Transaction. From what I see from the decoded Transaction above it should work. But sadly it doesn't. Do the decoded Eth Transactions generated by HardHat maybe look differently?
When I do transactions defined in the server, Python in my case, I also set these parameters:
'maxFeePerGas': 0, 'maxPriorityFeePerGas': 0,
See if it works.
Yes, those are already set to 0. As you can see in the Raw Transaction. The Transaction is sent with a GasPrice of 0, but Besu denies it because of the Gas Price too low Message. Also when you ask Besu it says that the GasPrice is 0.
We currently work around this Issue by actually using Gas. Funds come from a Wallet which has Balance set via the Genesis File.
I'm doing 0 gas transactions in a private Besu network. Here's an example of a transaction from an address that has 0 ETH:
{ "accessList": [], "blockHash": "0xaa7747f6ab909432bf320b39ae210880a30b7bfad92764436b9941c45bbb8262", "blockNumber": "0x3b5a7", "chainId": "0x539", "from": "0xcb88953e60948e3a76fa658d65b7c2d5043c6409", "gas": "0x444e6", "gasPrice": "0x0", "maxPriorityFeePerGas": "0x0", "maxFeePerGas": "0x0", "hash": "0x4140de7ef4d2eef855d5c8553430f3b094a419c0e98b9cb20d091c7588fe5f82", "input": "REPLACED", "nonce": "0x18", "to": "0xbcc4324ffc1fd079ae9c3e9daed82e184740a2bf", "transactionIndex": "0x0", "type": "0x2", "value": "0x0", "yParity": "0x1", "v": "0x1", "r": "0xe28504d4f3c92baa058e412375b8f0cfd766b2244132a64d84d3ac6f2492c117", "s": "0x6d8477c19a78ef1bae628e8b67d9c35c3da53b08768fce991eaf7d229bda2f0" }
Is it maybe the transaction type? I'm doing EIP-1559 transactions.
I am facing the same issue. @unlogicalcode, were you able to find a workaround?
@guillermovahi @unlogicalcode is it possible to share the trace logs of your besu node while you deploy your smart contracts?
@unlogicalcode are you starting all nodes in the network with --min-gas-price=0?
If so, there're instances where gasPrice and gasLimit are not properly passed from Java applications, please review if using hex or not within your web3j or ethers library
Description
As an Besu, I want to deploy a SmartContract on a free-gas Network so that I can use Besu as a Node for my private Blockchain.
Acceptance Criteria
Steps to Reproduce (Bug)
{"jsonrpc":"2.0","id":1,"error":{"code":-32009,"message":"Gas price below configured minimum gas price"}
Expected behavior: Transaction gets accepted an the Contract is created
Actual behavior: Besu denying the Transaction with Reason
{"jsonrpc":"2.0","id":1,"error":{"code":-32009,"message":"Gas price below configured minimum gas price"}
Frequency: Every ContractCreation request
Logs (if a bug)
besu.log genesis.json
config.toml
docker-compose.yml
Gas Price Calls from both Nodes in the Cluster:
Versions (Add all that apply)
besu --version
] 24.5.1 docker containercat /etc/*release
] dockeruname -a
] dockerdocker version
] Docker Desktop 4.30.0 (149282),Smart contract information (If you're reporting an issue arising from deploying or calling a smart contract, please supply related information)
Contract is deployed with
eth_sendRawTransaction
and works elsewhere.Additional Information (Add any of the following or anything else that may be relevant)