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

Contract sponsored nodes #1147

Closed
igormcoelho opened this issue Oct 5, 2019 · 3 comments
Closed

Contract sponsored nodes #1147

igormcoelho opened this issue Oct 5, 2019 · 3 comments
Labels
consensus Module - Changes that affect the consensus protocol or internal verification logic discussion Initial issue state - proposed but not yet accepted feature Type: Large changes or new features network-policy Module - Issues that affect the network-policy like fees, access list and voting

Comments

@igormcoelho
Copy link
Contributor

Summary
This is an "ingredient" of governance incentive strategy for projects to host their own participative consensus nodes. With this, nodes could whitelist contracts for free tx execution.

Do you have any solution you want to propose?
Transaction could have an optional field on Sender, that could inform that an specific contract will be executed, and it will execute for free as long as it is whitelisted by speaker node.

Idea is simple: we want more nodes on Neo; nodes require maintainance; projects can do such thing and get free tx for their projects.

If a project is big enough, or visionary enough, it will host a CN, and whitelist its contract for this CN.
The whole network will know that this contract is whitelisted on native policy (this operation may cost a little bit, to avoid useless registrations). When CN proposes a block, it wont receive network fee for this tx (since there's none), so other CN may prefer to select other tx on their turn, if its not whitelisted there. This may cause free tx to take more time to be processed, but this the "price" for being free.

Nodes could vote a maximum sponsorship gas amount per tx, allowing for example, for basic nep5 to execute for free (on sponsored nodes only).
IMPORTANT: this will work very well with dBFT 3 Active Backups proposal, as this will allow good nodes to collaborate on CN,even without voting tenure.

Simple: create a dapp; host a node; stake Neo.to be candidate node; work well to "push" your customers tx when an opportunity arises (dBFT 3 backup round).

Community gets good operating nodes; clients get cheap operations.

Where in the software does this update applies to?

  • Transaction
  • Consensus
  • Network Policy
@igormcoelho igormcoelho added the discussion Initial issue state - proposed but not yet accepted label Oct 5, 2019
@igormcoelho
Copy link
Contributor Author

Any thoughts @canesin?

@canesin
Copy link
Contributor

canesin commented Oct 7, 2019

Could you do a flow diagram of this ? I am a bit confused on the possible feedbacks on the proposal.

@igormcoelho
Copy link
Contributor Author

igormcoelho commented Oct 17, 2019

Ok @canesin, this is the proposal diagram.
Part 1: interested people will get some node ellected (or participate via some other "dbft 3" mechanism)
image

Part 2: since elected node has proposed a valid Policy to whitelist specific contract (up to X GAS), now users may benefit of this
image

Analysis
What happens is: network benefits from interested nodes being run and maintained. These nodes may benefit sponsored dapp applications, by allowing zero network fee and zero system fee (up to X GAS, limited by protocol, but also adaptive in time). Since network fee is zero, other CN won't be interested in putting that into a block (very low priority), but they can eventually do. At least the sponsored node will be interested in proposing this free tx, on its own round, and if that takes too much, tx will just expire. Network benefits from more nodes; and dapps benefit from free execution (but slower than usual).

If contract is allowing spam; this will damage network; NEO holders won't keep malfunction node (it will be downvoted and replaced.. or most likely, "contract sponsorship" revoked).
If prices are variable, and sysfees fractional, NEP-5 sponsorship could match exactly the amount for a transfer, so spam attack area would be widely reduced, although still possible, since transactions are anonymous... but we would get free tx again, in a much more controlled manner.

Would it work?
Would it not work?
Why?

@lock9 lock9 added consensus Module - Changes that affect the consensus protocol or internal verification logic network-policy Module - Issues that affect the network-policy like fees, access list and voting feature Type: Large changes or new features labels Nov 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
consensus Module - Changes that affect the consensus protocol or internal verification logic discussion Initial issue state - proposed but not yet accepted feature Type: Large changes or new features network-policy Module - Issues that affect the network-policy like fees, access list and voting
Projects
None yet
Development

No branches or pull requests

4 participants