Bitcoin Forum
September 20, 2018, 11:28:08 PM *
News: ♦♦ Bitcoin Core users must update to 0.16.3 [Torrent]. More info.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Will increasing block size threaten Bitcoin on consumer hardware?  (Read 1123 times)
WitekRadomski
Member
**
Offline Offline

Activity: 118
Merit: 10

Enjin Coin - Smart Cryptocurrency for gaming!


View Profile WWW
July 25, 2017, 05:52:50 PM
 #1

As I understand it there are 2 general sides to the scaling issue:
  • Increase Bitcoin's max block size to scale to more transactions
  • Keep the block size small while using off-chain systems like the Lightning network.

At what block sizes would typical users on PCs (with consumer hard drives and home networks) not be able to run Bitcoin nodes or miners anymore?

CTO, Enjin Coin - Smart cryptocurrency for gaming!
1537486088
Hero Member
*
Offline Offline

Posts: 1537486088

View Profile Personal Message (Offline)

Ignore
1537486088
Reply with quote  #2

1537486088
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1537486088
Hero Member
*
Offline Offline

Posts: 1537486088

View Profile Personal Message (Offline)

Ignore
1537486088
Reply with quote  #2

1537486088
Report to moderator
cr1776
Legendary
*
Offline Offline

Activity: 2002
Merit: 1007


View Profile
July 25, 2017, 05:59:54 PM
 #2

As I understand it there are 2 general sides to the scaling issue:
  • Increase Bitcoin's max block size to scale to more transactions
  • Keep the block size small while using off-chain systems like the Lightning network.

At what block sizes would typical users on PCs (with consumer hard drives and home networks) not be able to run Bitcoin nodes or miners anymore?

You have to define "typical" to answer that.  Additionally you'd have to define where geographically and when. E.g.  New York, or London?  Or Rabat, or St John's Antigua.  Today or next year or 2020?

One portable has had a 4TB SSD in it since 2016 with a quad core CPU and 16GB RAM.  Is that typical?   Now, probably not. In 2019, perhaps.  Bandwidth is a large concern too. 
WitekRadomski
Member
**
Offline Offline

Activity: 118
Merit: 10

Enjin Coin - Smart Cryptocurrency for gaming!


View Profile WWW
July 25, 2017, 06:16:05 PM
 #3

Here's a nice graph of average hard drive size shipped over time:



We might assume that the average laptop could have 500GB-1TB of storage, and the average PC 500GB-2TB today. This obviously changes worldwide but it's within the realm of possibility for consumers in many countries. How would an increased block size impact hard drive space + network bandwidth for miners and nodes?

At what point would we hit the limits of today's consumer hardware?

CTO, Enjin Coin - Smart cryptocurrency for gaming!
DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1373



View Profile
July 25, 2017, 08:33:06 PM
 #4

- snip -
We might assume that the average laptop could have 500GB-1TB of storage, and the average PC 500GB-2TB today. This obviously changes worldwide but it's within the realm of possibility for consumers in many countries. How would an increased block size impact hard drive space
- snip -

There are bigger problems with larger blocks than simply the storage requirements.  There are bandwidth issues, and there are block validation processing issues.

That being said, you should be able to answer the storage requirements for yourself pretty easily. The math is pretty straightforward.

  • There is a new block on average every 10 minutes.
  • Given 60 minutes in an hour, that's an average of 6 blocks per hour.
  • Given 24 hours in a day, that's an average of 144 new blocks per day.
  • Given 7 days in a week, that's an average of 1008 blocks per week.
  • Given an average month length of 30.4375 days, that's 4383 blocks per month.
  • Given an average year lenght of 365.25 days, that's 52596 blocks per year.

Decide how long you want to allow at a given "average laptop storage", and divide that storage amount by the number of blocks in that time period.

So, lets say you want to use 1 TB as an "average storage capability".

That's 1,000,000,000,000 bytes of storage.

Then lets say that you want that capability to last at least 5 years before needing to be replaced with a larger storage device.

5 years * 52596 blocks per year = 262,980 blocks.

1,000,000,000,000 bytes of storage / 262,980 blocks = 3,802,570 bytes per block.

That's 3.8 megabytes per block.

Of course, its difficult to predict if hard drive storage will continue to get cheaper fast enough to keep up with the growth beyond those 5 years.

TechPriest
Sr. Member
****
Offline Offline

Activity: 353
Merit: 255



View Profile
July 25, 2017, 09:26:10 PM
 #5

At what block sizes would typical users on PCs (with consumer hard drives and home networks) not be able to run Bitcoin nodes or miners anymore?

No. Now you need about 140 GB space on your computer (blockchain grew to this point about 8 years). But for now we have 2TB HHD and 500 GB SSD. After 4 years you will be need 240 GB on your computer. In my mind it's very easy to keep node on average PC.
Also, for example, you can use core client without keeping full blockchain. (i mean you can "cut" blockchain to the last 600 (??) blocks. But synchronization will take some time. Core will download full blockchain and then keep only 600 blocks)

In science we trust!
HeRetiK
Hero Member
*****
Offline Offline

Activity: 868
Merit: 718


the forkings will continue until morale improves


View Profile
July 25, 2017, 10:16:37 PM
 #6

Also, for example, you can use core client without keeping full blockchain. (i mean you can "cut" blockchain to the last 600 (??) blocks. But synchronization will take some time. Core will download full blockchain and then keep only 600 blocks)

However the way I understood it you still need to keep a full blockchain if you want to run a full node, right? Meaning using a pruned blockchain is merely for personal convenience and doesn't help the network?

ranochigo
Legendary
*
Offline Offline

Activity: 1540
Merit: 1086


View Profile WWW
July 25, 2017, 10:56:37 PM
 #7

Also, for example, you can use core client without keeping full blockchain. (i mean you can "cut" blockchain to the last 600 (??) blocks. But synchronization will take some time. Core will download full blockchain and then keep only 600 blocks)

However the way I understood it you still need to keep a full blockchain if you want to run a full node, right? Meaning using a pruned blockchain is merely for personal convenience and doesn't help the network?

Pruning can cut down the size to about 550mb.

No, running a pruned blockchain will still help the network, just not as much. You are still able to relay new blocks, blocks you have on disk and transactions. You will be helping Bitcoin, just not as much.

jimhash
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile WWW
July 26, 2017, 01:06:37 AM
 #8

Regarding the "mining" aspect of this question, I am still relatively new to Bitcoin, but I thought mining on "consumer hardware" at all was a thing of the past.  For any reasonable expectation of ROI, mining must be done on ASICs and in some considerable parallelism these days.  See: Online Mining Calculator and plug in some numbers to forecast break-even.

As far as the "running a node" part of this question goes, coincidentally, I just proposed doc/file-partition.md to share my experiences with running a local build on a Macbook Pro with a $79 WD 2TB My Passport drive.  Keep in mind that with the ~140GB blockchain, I still have considerable headroom for massive blockchain growth on just this $79 2TB drive.  When running in this external USB 3.0 configuration, one must definitely be aware of the need to keep the "chainstate" and "index" LevelDB $datadir folders on the faster internal drive, but I had no issues with synchronization speed, once I cleared up some initial folder partitioning mistakes I made (hence the doc).   So just don't make the mistake that I made here of putting LevelDB files on the external drive, and your node should "run like a scalded dog", only straighter (and quieter).

TechPriest
Sr. Member
****
Offline Offline

Activity: 353
Merit: 255



View Profile
July 26, 2017, 11:18:11 AM
 #9

Also, for example, you can use core client without keeping full blockchain. (i mean you can "cut" blockchain to the last 600 (??) blocks. But synchronization will take some time. Core will download full blockchain and then keep only 600 blocks)

However the way I understood it you still need to keep a full blockchain if you want to run a full node, right? Meaning using a pruned blockchain is merely for personal convenience and doesn't help the network?


You must understand one interesting fact: Core wallet (node) doesn't help Bitcoin network. It's only transmitted your transaction to the network and retralnslate transactions of other users (of course, it keeps full blockchain). If you clever enough you can guess that this function can be carried out by ordinary server or site. Only mining nodes influence on anonimity and decentralization.

In science we trust!
ranochigo
Legendary
*
Offline Offline

Activity: 1540
Merit: 1086


View Profile WWW
July 26, 2017, 01:18:25 PM
 #10

You must understand one interesting fact: Core wallet (node) doesn't help Bitcoin network. It's only transmitted your transaction to the network and retralnslate transactions of other users (of course, it keeps full blockchain). If you clever enough you can guess that this function can be carried out by ordinary server or site. Only mining nodes influence on anonimity and decentralization.
Wrong. Any full node can be a help to the Blockchain, allowing incoming connections or not. There is no direction polarity on Bitcoin connections so for those nodes that you are connected to, you are relaying blocks and transactions to them and vice versa. Opening the port simply means that you are allowing for people to connect to your node.

cr1776
Legendary
*
Offline Offline

Activity: 2002
Merit: 1007


View Profile
July 26, 2017, 04:55:10 PM
 #11

Also, for example, you can use core client without keeping full blockchain. (i mean you can "cut" blockchain to the last 600 (??) blocks. But synchronization will take some time. Core will download full blockchain and then keep only 600 blocks)

However the way I understood it you still need to keep a full blockchain if you want to run a full node, right? Meaning using a pruned blockchain is merely for personal convenience and doesn't help the network?


You must understand one interesting fact: Core wallet (node) doesn't help Bitcoin network. It's only transmitted your transaction to the network and retralnslate transactions of other users (of course, it keeps full blockchain). If you clever enough you can guess that this function can be carried out by ordinary server or site. Only mining nodes influence on anonimity and decentralization.

No, it also enforces the protocol rules plus what ranochigo says above. 
Jet Cash
Legendary
*
Offline Offline

Activity: 1008
Merit: 1196


VOM member


View Profile WWW
July 28, 2017, 11:03:15 AM
 #12

If I can run a full node on a Netbook with an external SSD (256GB), and do it over public WiFi, then there is obviously no problem with storage. The problem in my opinion, is the fact that it takes an average of 30 minutes to get two confirmations of a transaction. Fiddling with the block size doesn't change that.

TechPriest
Sr. Member
****
Offline Offline

Activity: 353
Merit: 255



View Profile
July 28, 2017, 11:28:35 AM
 #13

Wrong. Any full node can be a help to the Blockchain, allowing incoming connections or not. There is no direction polarity on Bitcoin connections so for those nodes that you are connected to, you are relaying blocks and transactions to them and vice versa. Opening the port simply means that you are allowing for people to connect to your node.

Lol. And how does it helps to the network (transmiiting and relay transactions)? I mean, of course, it helps but as i said before: "this functions can be carried out by ordinary server or site"
They cant:
https://github.com/trottier/original-bitcoin/blob/92ee8d9a994391d148733da77e2bbc2f4acc43cd/src/main.h#L795
Quote
// Nodes collect new transactions into a block, hash them into a hash tree,
// and scan through nonce values to make the block's hash satisfy proof-of-work
// requirements.  When they solve the proof-of-work, they broadcast the block
// to everyone and the block is added to the block chain.  The first transaction
// in the block is a special one that creates a new coin owned by the creator
// of the block.
Here you can see original (Satoshi's) meaning of node functions. Core wallet doesn't collect, it's doesn't mining, it's doesn't make hash tree. It only transmitted your transaction (to outbond connections) and relaying inbound transaction (of other nodes).

No, it also enforces the protocol rules plus what ranochigo says above.  
It "verify blockchain". But it can be done by site too. Protocol rules enforces by mining nodes, ordinary (Core) node just accept or reject inbound transactions (and blocks) according to the it's own rules. Nothing more.

In science we trust!
ranochigo
Legendary
*
Offline Offline

Activity: 1540
Merit: 1086


View Profile WWW
July 28, 2017, 12:31:48 PM
 #14

Lol. And how does it helps to the network (transmiiting and relay transactions)? I mean, of course, it helps but as i said before: "this functions can be carried out by ordinary server or site"
They cant:
https://github.com/trottier/original-bitcoin/blob/92ee8d9a994391d148733da77e2bbc2f4acc43cd/src/main.h#L795
Quote
// Nodes collect new transactions into a block, hash them into a hash tree,
// and scan through nonce values to make the block's hash satisfy proof-of-work
// requirements.  When they solve the proof-of-work, they broadcast the block
// to everyone and the block is added to the block chain.  The first transaction
// in the block is a special one that creates a new coin owned by the creator
// of the block.
Here you can see original (Satoshi's) meaning of node functions. Core wallet doesn't collect, it's doesn't mining, it's doesn't make hash tree. It only transmitted your transaction (to outbond connections) and relaying inbound transaction (of other nodes).
You missed out the verification of blocks and transactions.

"This function can be carried out by ordinary server or site", if they run the full node. SPV clients do not relay blocks nor transactions or verify them. They are essentially piggybacking on the full nodes and rely on them. Most (if they actually understand how important it is) sites run full nodes.

No, it also enforces the protocol rules plus what ranochigo says above.  
It "verify blockchain". But it can be done by site too. Protocol rules enforces by mining nodes, ordinary (Core) node just accept or reject inbound transactions (and blocks) according to the it's own rules. Nothing more.
No. Protocol rules are enforced by nodes, if not, why aren't we having Bitcoin unlimited by now?

Bitcoin nodes are essentially voting for what they want. If the miners want to change the rule, the blockchain will be forked and the nodes will not follow them. This is why nodes are important. The only reason why miners can't make their own blockchain is because nodes have their own set of rules and they will not follow whatever the miner says. If they force 2mb blocks, they can continue on their chain but the nodes will still remain with the rules that they have set. Tl;dr: Nodes with 1mb limit>Miners go for 2mb limit>Nodes reject> No one follows their chain>No profit.

Do give me an example of the "site" that you are talking about and I'll talk more about it with you, if you don't get my point.

Anyway if you're talking about only sites being able to verify transactions, it will be PayPal with its centralisation.

Lol.

DannyHamilton
Legendary
*
Offline Offline

Activity: 2198
Merit: 1373



View Profile
July 28, 2017, 12:36:36 PM
 #15

- snip -
it takes an average of 30 minutes to get two confirmations of a transaction.
- snip -

The average time to get two confirmations is only 20 minutes, not 30.

Also, more than 50% of the time it will take less than 7 minutes to get a confirmation.

TechPriest
Sr. Member
****
Offline Offline

Activity: 353
Merit: 255



View Profile
July 29, 2017, 06:53:15 AM
 #16

You missed out the verification of blocks and transactions.
Ordinary nodes CAN'T verify blocks or transactions. It can be done only by mining nodes. Core wallets can only reject or accept transactions or blocks due to it's own rules

"This function can be carried out by ordinary server or site", if they run the full node. SPV clients do not relay blocks nor transactions or verify them. They are essentially piggybacking on the full nodes and rely on them. Most (if they actually understand how important it is) sites run full nodes.
Bitcoin network could work only on mining nodes without core wallets (nodes). And it in no way affect on decentralization of the Network. Miners just will be need to increase inbound and outbound connections to unload transaction flow.

No. Protocol rules are enforced by nodes, if not, why aren't we having Bitcoin unlimited by now?
'cause it don't collect enough mining hash rate. It had had only 40 % but were needed 70-80%. But now we will have Segwit2x 'cause it has enough hash rate (miners support) and you can't do nothing about it with your core wallet (ordinary node). It's obvious for any person who has necessary technical knowledges.

Bitcoin nodes are essentially voting for what they want. If the miners want to change the rule, the blockchain will be forked and the nodes will not follow them. This is why nodes are important. The only reason why miners can't make their own blockchain is because nodes have their own set of rules and they will not follow whatever the miner says. If they force 2mb blocks, they can continue on their chain but the nodes will still remain with the rules that they have set. Tl;dr: Nodes with 1mb limit>Miners go for 2mb limit>Nodes reject> No one follows their chain>No profit.

Ah, another BIP148 zombie  Grin. I think it's pointlessly to try to dispute with you. But:
1. If you don't follow miners you're just throwing yourself out of the network. Nothing more.  It's some kind of silent protest. It will work only if EXCHANGER nodes will follow you. If they don't noone loose any profit  Wink
2. NODES DON"T HAVE their sets of rules. Of course, in fact they have it, but this sets of rules can be differ from node to node. For example, you can compile node which can relay double spend transactions and don't reject them (if it already has another transaction which spend the same output).  Or, you can compile node which will reject every block from Antpool.
3. Number of nodes doesn't mean anything. For example, you could create 1000000 ordinary core wallets and it doesn't mean that there 1000000 people in the chain. BUT with hashrate you can't do such things. Because of that only mining nodes with their hashrate can affect to the Network. Satoshi was genius! 

In science we trust!
ranochigo
Legendary
*
Offline Offline

Activity: 1540
Merit: 1086


View Profile WWW
July 29, 2017, 07:09:23 AM
 #17

You missed out the verification of blocks and transactions.
Ordinary nodes CAN'T verify blocks or transactions. It can be done only by mining nodes. Core wallets can only reject or accept transactions or blocks due to it's own rules
I stand correct. They do verify the blocks or transaction to see if the blocks follows the rules as specified. If not, it is not relayed. Do read up on full nodes if you still can't get it. "Mining nodes" verify blocks and transactions the same way as any other user node would.
"This function can be carried out by ordinary server or site", if they run the full node. SPV clients do not relay blocks nor transactions or verify them. They are essentially piggybacking on the full nodes and rely on them. Most (if they actually understand how important it is) sites run full nodes.
Bitcoin network could work only on mining nodes without core wallets (nodes). And it in no way affect on decentralization of the Network. Miners just will be need to increase inbound and outbound connections to unload transaction flow.
So you are saying that SPV clients should trust whatever miners (primarily focusing on profits) says? If only mining nodes exist, the total count of node will drop to less than 100 which makes it susceptible to sybil attacks or DDOS. I doubt even 1000 mining nodes could support everyone and I doubt everyone would trust them as a source for their SPV client.

No. Protocol rules are enforced by nodes, if not, why aren't we having Bitcoin unlimited by now?
'cause it don't collect enough mining hash rate. It had had only 40 % but were needed 70-80%. But now we will have Segwit2x 'cause it has enough hash rate (miners support) and you can't do nothing about it with your core wallet (ordinary node). It's obvious for any person who has necessary technical knowledges.
Nah. BU could have been done no matter what, they just won't get a lot of community support.
1. If you don't follow miners you're just throwing yourself out of the network. Nothing more.  It's some kind of silent protest. It will work only if EXCHANGER nodes will follow you. If they don't noone loose any profit  Wink
Or majority of the users do not support BU and only parts of the userbase support it. I believe market works on the supply and demand principle.
2. NODES DON"T HAVE their sets of rules. Of course, in fact they have it, but this sets of rules can be differ from node to node. For example, you can compile node which can relay double spend transactions and don't reject them (if it already has another transaction which spend the same output).  Or, you can compile node which will reject every block from Antpool.
That isn't related to protocol rules but okay..

TechPriest
Sr. Member
****
Offline Offline

Activity: 353
Merit: 255



View Profile
July 29, 2017, 07:40:01 AM
 #18

I stand correct. They do verify the blocks or transaction to see if the blocks follows the rules as specified. If not, it is not relayed. Do read up on full nodes if you still can't get it. "Mining nodes" verify blocks and transactions the same way as any other user node would.
But verification done by user node doesn't affect to anything. Only after miners verificate it 6+ times it can be accepted by exchanger or shop. I mean it.
Your own node of course verificate transaction and block for understanding what to do next: accept them or reject (relay or don't relay). But:
1. it do it due to it's own rules. As i said before, this rules can be different from node to node. Protocol rules it's just RECOMMENDATIONS, not a rules (as in lawmaking).
2. Shop don't accept your transaction only because your node verificate it  Wink


So you are saying that SPV clients should trust whatever miners (primarily focusing on profits) says? If only mining nodes exist, the total count of node will drop to less than 100 which makes it susceptible to sybil attacks or DDOS. I doubt even 1000 mining nodes could support everyone and I doubt everyone would trust them as a source for their SPV client.
more miners = better decentralization. 1 miner with 10000000000000 core wallets - network is centralized. 100000000000 miners with 1 core wallet - network is decentralized. Proof of Work, dude. Not a Proof of user nodes.
In original Satoshi concept every full node was mining node. I quoted it before.


Nah. BU could have been done no matter what, they just won't get a lot of community support.
In that case it would be a hardfork. Without miners support.

Or majority of the users do not support BU and only parts of the userbase support it. I believe market works on the supply and demand principle.
Majority of the users don't fuck at all about 1mb, 2mb, Segwitt and other nerd games  Cheesy Thay just trading at exchangers, so it's obvious that only exchanger's nodes can affect to miners.
There 6 thousand core wallets in the network, but more than 2 millions of users. If 5500 wallets will dissapear from the network, noone will give a fuck about it  Smiley

That isn't related to protocol rules but okay..
As i said before, it's recommendations, not rules.

In science we trust!
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!