Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Consensus upgrade to only bill CPU and network bandwidth to first authorizer of a transaction #6332
Currently, the set of all unique authorizing accounts of a transaction are each billed for the total CPU and network bandwidth consumed by the transaction. From the perspective of protecting the network from abuse, the CPU and network bandwidth only needs to be billed once to some account.
By only billing one of the authorizing accounts of the transaction, less CPU and network bandwidth is expended for transactions with multiple authorizers. Furthermore, by allowing the transaction creator and signers choice over which of the authorizing accounts are billed, it becomes possible for a service to elect to pay for the costs of a transaction on a per-transaction basis in exchange for some form of compensation.
Consensus upgrade feature
The goal of this consensus upgrade feature is to only bill the first authorizing account of a transaction for the CPU and network bandwidth costs of the transaction. This enables transaction creators to craft the transaction (including, if necessary, adding a no-op action to the beginning of the transaction authorized by the account to be billed) to bill the desired account.
A new consensus protocol upgrade feature will be added to trigger the changes described in this consensus upgrade proposal. The actual digest for the feature understood at the blockchain level is to be determined. For the purposes of this proposal the codename