Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Permissioned System for Priority and Feeless Transactions #26

Conversation

chrischarlesharrison
Copy link
Collaborator

@chrischarlesharrison chrischarlesharrison commented Jun 21, 2023

This PR introduces a permissioned system for the core blockchain which facilitates priority transactions and a gas price waiver:

  • Electroneum will afford transaction level permissions to specific entities whose principal endeavours are worthy of those permissions by their virtue of their ongoing contribution to the overall project. Permissions may be given out on a subscription basis in future, but the details of this are yet to be established. The permissions are managed by interacting with a smart contract, which is read during block verification and creation to ensure that transactions with priority settings have been sent by priority transactors appropriate permissions.
  • Transactions between and out of accounts accounts contained within the my.electroneum.com will now be completely free and have priority status.
  • A new priorityTx transaction type has been created.
  • Priority transactors will embed a secp256k1 signature within their priority transactions that is signed with their priority private key. This signature is what is read during block validation and the public key is checked against the priority transactors contract.
  • Priority Transactions will be included in blocks before regular transactions and, at least in the beginning, transaction ordering amongst priority senders will be pari-passu.
  • Some, but not all priority senders will be afforded a gas price waiver, meaning that they can send transactions for free. The holder of such a priority key need not make use of this gas price waiver when sending transactions; they can send transactions with a base fee and a tip if they so chose (and there may be multiple reasons for doing this, some of which may emerge over time requiring such behaviour). However if a priority sender does not make use of their gas price waiver, they will be subject to the same fee based consensus rules as a normal user of the network.
  • Priority transactions have their own txpool level priority slots, which helps them propagate through the network even when there is a bottleneck for regular transactions.

@chrischarlesharrison chrischarlesharrison changed the title Optional setting for prioritising electroneum tx when mining -- do not merge -- Optional setting for prioritising electroneum tx when mining -- testing and tweaking before merge -- Jun 21, 2023
cmd/utils/flags.go Outdated Show resolved Hide resolved
cmd/utils/flags.go Outdated Show resolved Hide resolved
internal/ethapi/api.go Outdated Show resolved Hide resolved
les/client.go Outdated Show resolved Hide resolved
internal/ethapi/api.go Outdated Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
@chrischarlesharrison chrischarlesharrison force-pushed the optional-setting-for-prioritising-electroneum-tx-when-mining branch from d2a3e97 to 950b8e5 Compare June 24, 2023 21:31
@chrischarlesharrison chrischarlesharrison force-pushed the optional-setting-for-prioritising-electroneum-tx-when-mining branch from 1517da5 to cecacaa Compare June 26, 2023 10:00
@chrischarlesharrison chrischarlesharrison force-pushed the optional-setting-for-prioritising-electroneum-tx-when-mining branch 2 times, most recently from 3024bfa to 129b061 Compare June 28, 2023 15:32
@chrischarlesharrison chrischarlesharrison force-pushed the optional-setting-for-prioritising-electroneum-tx-when-mining branch from 129b061 to 75233e0 Compare June 28, 2023 15:35
@chrischarlesharrison chrischarlesharrison changed the title Optional setting for prioritising electroneum tx when mining -- testing and tweaking before merge -- A permissioned system of priority transactions -- do not merge -- Jul 10, 2023
@chrischarlesharrison chrischarlesharrison changed the title A permissioned system of priority transactions -- do not merge -- Permissioned system of priority transactions -- do not merge -- Jul 10, 2023
andrepatta and others added 20 commits July 19, 2023 15:27
…o improve the efficiency of the block validation process by pulling priority the list of transactors once
… kick txes that have became invalid + refactor validateTx()
…flected in the rest of the blocks execution for both block verification and creation processes
…mplement the caching in block processing, mining, reorgs
…ting between transaction priority signatures and a populated priority list
…ated to end height. Opt for an improved range based solution next fork - perhaps side chain with specific guarantees
…ead block so that the pool can use it upon initialisation
@chrischarlesharrison chrischarlesharrison force-pushed the optional-setting-for-prioritising-electroneum-tx-when-mining branch from b206897 to 0453243 Compare July 25, 2023 15:53
@chrischarlesharrison chrischarlesharrison changed the title Permissioned system of priority transactions -- do not merge -- Permissioned System for Priority and Feeless Transactions Jul 28, 2023
@chrischarlesharrison chrischarlesharrison added enhancement New feature or request Aurelius V5 Aurelius labels Jul 28, 2023
@chrischarlesharrison chrischarlesharrison merged commit fb3e461 into master Jul 28, 2023
3 checks passed
@chrischarlesharrison chrischarlesharrison deleted the optional-setting-for-prioritising-electroneum-tx-when-mining branch December 5, 2023 10:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Aurelius V5 Aurelius enhancement New feature or request
Development

Successfully merging this pull request may close these issues.

2 participants