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

How about to pay to full nodes and increase blocksize limit as a temporarily solving of scalability problem #1395

Closed
geronemo opened this issue Sep 10, 2018 · 18 comments

Comments

@geronemo
Copy link

ATTENTION! If you would like to submit an EIP and it has already been written as a draft (see the template for an example), please submit it as a Pull Request.

If you are considering a proposal but would like to get some feedback on the idea before submitting a draft, then continue opening an Issue as a thread for discussion. Note that the more clearly and completely you state your idea the higher the quality of the feedback you are likely to receive.

Keep in mind the following guidelines from EIP-1:

Each EIP must have a champion - someone who writes the EIP using the style and format described below, shepherds the discussions in the appropriate forums, and attempts to build community consensus around the idea. The EIP champion (a.k.a. Author) should first attempt to ascertain whether the idea is EIP-able. Posting to the the Protocol Discussion forum or opening an Issue is the best way to go about this.

Vetting an idea publicly before going as far as writing a EIP is meant to save the potential author time. Asking the Ethereum community first if an idea is original helps prevent too much time being spent on something that is guaranteed to be rejected based on prior discussions (searching the Internet does not always do the trick). It also helps to make sure the idea is applicable to the entire community and not just the author. Just because an idea sounds good to the author does not mean it will work for most people in most areas where Ethereum is used.

Once the champion has asked the Ethereum community as to whether an idea has any chance of acceptance, a draft EIP should be presented as a Pull Request. This gives the author a chance to flesh out the draft EIP to make properly formatted, of high quality, and to address initial concerns about the proposal.

@geronemo
Copy link
Author

You decided to cut miners reward from 3 to 2 eth. It will decrease inflation.

But at the same momeny Ethereum has a big problem with scalability. In Decembe 2017 and June 2018 for several weeks we'd been seeing spammed network and got to use gasorice = 100.

Currently owners of full nodes do not receive any rewards for their work.

  1. They store blockchain
  2. Use their CPU for EVM
  3. Pay for new SSds, internet etc.

These guys do all of this for free for you for many years. I t was not a problem when blockhain was 20 Gb. But now many of them could just stop their work what would be not good for decenralisation.

Casper + Sharding is about 1 year ?

What coud happen for this 1 year.

  1. We can see any spam attacks or gypes as Kryptokitties what will affect all users of Ethereum
  2. What if anyone make good working dApp and current 15 tps would be a bottleneck.
  3. Size of blockchain - it's bigger and bigger. Will Constantinopole resolve the blockhain size broblem ? If not we will see reducing number of full nodes.

The possible way what to do is to give part of 1 eth (3 eth -> 2 eth) to full node owners. Reward can be dinamical depending on number of transactions in pool (what if to increase block limit to 80M gas).
I understabd that here could be a big discussions with miners - they receive all tx conissions and big block is not beneficial for them. So here could be any algorithm.
Just 1 ex.

  1. Miners receive 2 eth for blaock + all tx costs
    Full node owners receive 0.1 ether for block
  2. In case of very high Ethereum network load you pay 0.4 eth additionally (for ex 50/50 to miners and full node owners) and blocks are 80M
  3. In cases of medium loadness we need any algorythm decided which block size (8-80M is optomal) and how much to pay additionally (0-0.4 eth).

So emission will be 2.1 (almost all time ) - 2.5 eth (in case of very high load).

@nateawelch
Copy link
Contributor

nateawelch commented Sep 10, 2018

Full nodes that aren't chain building nodes aren't providing a service. Those people run full nodes out of their own interest, either because they don't trust other nodes claims that the chain is "valid" and want to verify it themselves, or because they have businesses that require full nodes in order for them to make money.

There is also no way I know of to know if someone is actually a full node, so I don't know how you would pay them without them being able to lie.

Now, on the other hand, what would be great is incentivized lightserve nodes. This is easily done using payment channels and some client customizations, it just needs developers to work on it.

@geronemo
Copy link
Author

geronemo commented Sep 10, 2018

Full nodes that aren't chain building nodes aren't providing a service. Those people run full nodes out of their own interest, either because they don't trust other nodes claims that the chain is "valid" and want to verify it themselves, or because they have businesses that require full nodes in order for them to make money.

Ethereum is a decentralized network. So if i man run full node (keeps the whole blockchain and runs EVM) he is definetely useful part of system. He can be enthysiast or miner or somethinge else but whatever. He validate transactions and store all blocks of blockchain. And if 99% of nodes will be broken We can rely on his server.

There is also no way I know of to know if someone is actually a full node, so I don't know how you would pay them without them being able to lie.

How about this https://www.ethernodes.org/network/1/nodes
Isn't it a list of full nodes in the world. If someone is not real full node but tells that he's a full node we can create a minir update to fix it.
If exaggerate - if everybody can lie that he is a full node prob we can have only 1 full node in the world. It's strange if Ethereum network can't know who is full node and who is not

@nateawelch
Copy link
Contributor

Ethereum is a decentralized network. So if i man run full node (keeps the whole blockchain and runs EVM) he is definetely useful part of system. He can be enthysiast or miner or somethinge else but whatever. He validate transactions and store all blocks of blockchain. And if 99% of nodes will be broken We can rely on his server.

He is useful only to himself. Every full node that isn't mining or running a node out of their own interest could shut down right now and nothing would change, nobody would notice (the network would actually get more efficient) and the network would still be sufficiently decentralized. To add to this, if I spin up a full node right now without any other changes to the network, I'm not adding anything to the network. I'm actually taking a (negligibly) small amount of efficiency from the network. I should be paying the network for the ability to run a full node.

How about this https://www.ethernodes.org/network/1/nodes
Isn't it a list of full nodes in the world
If exaggerate - if everybody can lie that he is a full node prob we can have only 1 full node in the world. It's strange if Ethereum network can't know who is full node and who is not

That is a self reported list. I could run a modified Parity light node that claims it's a Geth full node and it could get added to that list.

If someone is not real full node but tells that he's a full node we can create a minir update to fix it.

How would you find out that they weren't a real full node? They aren't gonna admit it. You're also suggested hard forking every time you find out someone lied about being a full node.

If exaggerate - if everybody can lie that he is a full node prob we can have only 1 full node in the world. It's strange if Ethereum network can't know who is full node and who is not

Indeed, we could only have 1 full node in the world. Actually, we could have no full nodes. All I know about full nodes is that there is at least 1. I have a full node, but I have no idea if there are any other full nodes in the world. Obviously there most likely are, because it's beneficial for someone to run their own full node, but it doesn't benefit me.

@geronemo
Copy link
Author

If all nodes shutdown Ethereum blockhain will disappear.
If we have 1 full node it's the same that any centralization organization
If we have 15 full nodes it's like prohect EOS/NEO
But full decentralized network must have many full nodes and each of them are important. And no matter are they launched for own interest or because of reasons of enthusiasm

About identification of full node - as of example - we can check does it validate each block by itself or it connects fro, time to time to anybody else for it.

@nateawelch
Copy link
Contributor

If all nodes shutdown Ethereum blockhain will disappear.

Yes, but if all full nodes disappear, Ethereum will survive just fine. We don't need full nodes, but people want to run full nodes because it's in their own self-interest. Hence why they shouldn't be paid to do something that they're doing out of self interest, e.g. them running the node is a payment in itself.

About identification of full node - as of example - we can check does it validate each block by itself or it connects fro, time to time to anybody else for it.

This is impossible for you to check. Only the NSA can check this /sarcasm

@geronemo
Copy link
Author

geronemo commented Sep 10, 2018

Yes, but if all full nodes disappear, Ethereum will survive just fine

How. Nodes store blockchain and run EVM. All accounts/data. No nodes -> no data -> no blockchain

@geronemo
Copy link
Author

geronemo commented Sep 10, 2018

Hence why they shouldn't be paid to do something that they're doing out of self interest, e.g. them running the node is a payment in itself.

I propose to pay them as block size will be bigger -> bkockchainsize will be bigger -> they will have to buy new SSDs.
If they Quit we will lost in decentralization and will have < 100 full nodes (miners).
(That gives us a question Do we need all this ? Prob Dapp and Decentrlization is no needed at all. We have GAFA, governments ant others)

@nateawelch
Copy link
Contributor

How. Nodes store blockchain and run EVM. All accounts/data. No nodes -> no data -> no blockchain

A full node is a node that downloads the entire blockchain and runs all transactions to validate all blocks. All that's really needed to run Ethereum is the current state and a way to modify state. This could be miners creating blocks that modify the state. Then they'd either broadcast the block (after processing the new block, nodes would throw it out), or even just broadcast the state.

The reason there are nodes that download the full state and validate it is because those nodes don't want to blindly trust miners to modify the state. They do it because it's beneficial to them, not because it's beneficial to others.

I think this level of discussion is getting off-topic for Github though, so if you wanna continue talking, you can message me on Gitter with the same username (@flygoing).

I propose to pay them as block size will be bigger -> bkockchainsize will be bigger -> they will have to buy new SSDs

Again, there is no way to trustlessly know who to pay. You'd have to trust that everyone will say the true amount of full nodes they run, which is a bad idea. If you want bigger blocks, then pay the miners more, since they're the ones doing most of the work.

@geronemo
Copy link
Author

geronemo commented Sep 10, 2018

If you want bigger blocks, then pay the miners more, since they're the ones doing most of the work.

Ok. If Full nodes are nothing for Ethereum network - who stores Blockhain.
Prob you mix up something ?
In every article about Ethereum written that blockahain is stored in full nodes. And Miners have full nodes too.

Let me guess. Are you miner and your goal is to troll this issue ?

@nateawelch
Copy link
Contributor

Ok. If Full nodes are nothing for Ethereum network - who stores Blockhain.

I already explained this. Full nodes store the blockchain, but only for their own selfish reasons. Miners only have full nodes to validate the blocks of other miners, e.g. for their own selfish reasons. Not to "help the network", but because they want to make the most money. Not saying this is bad, it's a great thing.

Let me guess. Are you miner and your goal is to troll this issue ?

No, I'm not a miner. I'm not sure why a miner would even want to troll this issue. I am a blockchain developer though.

Either way, the "incentivizing full nodes" conversation has happened several times in the past, and there is no way to do it trustlessly.

@geronemo
Copy link
Author

Man so
Where is stored blockhain data on your opinion. If we remove all full nodes - which server will show us the full state of blockchain ?

@nateawelch
Copy link
Contributor

nateawelch commented Sep 10, 2018

Where is stored blockhain data on your opinion. If we remove all full nodes - which server will show us the full state of blockchain ?

There are 2 ways.

If I take my full node, and A. Delete a block after processing i, then I no longer have a full node, but I have the full state of the network, or B. Connect to a miner and they just tell me the new state when they mine a block.

@geronemo
Copy link
Author

If I take my full node, and A. Delete a block after processing i,

No. You will delete totally your full node. We talked about this. The case when all full nodes are removed.

or B. Connect to a miner and they just tell me the new state when they mine a block.

Miner will no be able to give you block. As we removed all full nodes (miner's too) he can't validate new block. Blockchain is not exist still we removed all full nodes. Nobody have it.
Only light nodes but we don't have guarantee that there could be all blocks.

@nateawelch
Copy link
Contributor

No. You will delete totally your full node. We talked about this. The case when all full nodes are removed.

A full node is no longer a full node if it doesn't store all blockchain history, that's the definition of a full node. You also can't take the first half of a sentence and quote me on it when the second half of the sentence completely changes it.

Miner will no be able to give you block. As we removed all full nodes (miner's too) he can't validate new block. Blockchain is not exist still we removed all full nodes. Nobody have it.

They can still give you blocks without there being full nodes. Miners can exist without being full nodes, they just need the full state, the previous blockhash, and a bunch of transactions to try to create a block. Just because the blockchain history doesn't exist doesn't mean the current state doesn't exist.

@nateawelch
Copy link
Contributor

Either way, whether or not we agree on the definition of full node and who they're serving, there's still the fact that it's impossible to trustlessly pay full nodes for being full nodes.

@geronemo
Copy link
Author

it's impossible to trustlessly pay full nodes for being full nodes.

Any code deployed at full node with a signature (for non-modifying) created by smart-contract or something like that.
I'm not good enough technically. Prob guys from Ethereum foundation could resolve this.

I think you're agree that scalability next year is the key problem of Ethereum. My idea can help a bit (if it's realizeble technically).

@geronemo
Copy link
Author

Either way, whether or not we agree on the definition of full node and who they're serving, there's still the fact that it's impossible to trustlessly pay full nodes for being full nodes.

Looks like this is the key problem here.
flygoing thanks for your patience

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants