Replies: 2 comments
-
Link to the PR |
Beta Was this translation helpful? Give feedback.
0 replies
-
I had previously used the word "congestion pricing", but this was wrong. What was meant was "non-linear pricing". I updated the description accordingly. This proposal uses fixed fees, but the more bytes you send, the higher your fixed fee. This is similar to normal transactions where the crypto transfer may be $0.0001, but the more signatures you add, or the more bytes you add to the memo, the higher the price. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Context:
Hedera limits all transactions to a maximum size of 6KB. By limiting the size of transactions, Hedera makes it easier for clients to get fair access to the network. Ethereum, on the other hand, supports
callData
sizes of up to 128KB. The 6KB limit is highly problematic for developer experience, and unexpectedly, for network efficiency. This is especially true when creating contracts, and for oracles sending large amounts of data to the network.Issue:
When creating a new smart contract, if the smart contract bytecode and all other bytes for the
EthereumTransaction
(including signatures) together exceed 6KB, then the user cannot simply create a contract the way they would on Ethereum or other networks. They must instead use the Hedera File Service (HFS) to create a file, and then callContractCreate
with that function. This has several challenges:If the smart contract has already been deployed and the user has a lot of
callData
(such as an oracle with a large amount of data), then the user likewise must use HFS to upload thecallData
in chunks to a file on chain, and then issue anEthereumTransaction
in such a way as to use that previously uploaded file as thecallData
.In addition, JSON-RPC relays need to find a business model whereby they can charge users for these HFS transactions. This creates a poor developer experience. This again breaks the business model of many cross chain relay operators and makes access to cheap relays difficult.
Affected Users:
All relay operators and all EVM transaction submitters of callData over 5kb
Solution:
EthereumTransaction
callData (calledethereum_data
in the protobuf) to be as large as 128KBEthereumTransaction
sSince events also have a maximum size, it is slightly more difficult for an artbitrary user's transaction to be included in an event in the presence of jumbo transactions. To mitigate this and encourage maximal fairness on the network, we will encourage smaller transactions by applying non-linear pricing to transactions with greater than 6KB total size, and by limiting their count through a new bytes-per-second throttle.
Acceptance Criteria
A user can submit an ETH tx with a callData > 6kb and will pay all the associated gas. A relay operator will no longer require HFS usage or pay for any fees in the valid case.
Beta Was this translation helpful? Give feedback.
All reactions