Bitcoin Forum
December 12, 2024, 12:39:16 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 »  All
  Print  
Author Topic: The size of the blockchain...  (Read 4122 times)
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
May 02, 2014, 03:45:54 PM
 #41

SD Flash will die pretty quick if you continuously write to it, like for a blockchain database.

So ok for backup, but not really for a node.

As long as you can limit your erase/write cycles, this analysis earlier in the thread suggests it should work:

We aren't talking about using a SD card for RAM.  The SD card would be used to store the blockchain, update the blockchain with new blocks, update the unspent outputs each block, and bootload code segments of the bitcoin binary.  Typically, flash memory is rated between 100,000 - 1,000,000 write/erase cycles (2 - 19 years if cycles happen every 10 min) and that's always writing the same segment over and over.  With intelligent disk management to avoid "hot spots," this could be greatly increased.  So I would expect even low-grade memory cards to last many years.

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
telepatheic
Jr. Member
*
Offline Offline

Activity: 56
Merit: 1


View Profile
May 02, 2014, 03:48:50 PM
 #42

Quote
The problem is you want to avoid DOS attacks by having quick access to transaction hashes.

Thinking about this some more, it doesn't really improve your DOS resistance having UTXOs in RAM as connected nodes can just send lots of badly signed (but otherwise valid) transactions instead.

Quote
SD Flash will die pretty quick if you continuously write to it, like for a blockchain database.

As long as you are just writing new data and not writing over old data, they should last well.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
May 02, 2014, 03:50:23 PM
Last edit: May 02, 2014, 04:54:13 PM by DeathAndTaxes
 #43

SD Flash will die pretty quick if you continuously write to it, like for a blockchain database.

So ok for backup, but not really for a node.

A couple years back I donated a 2GB SD card made by SanDisk to science.  I setup a simple loop which continually wrote to the card with pseudo random sequences until it filled the card.  It would then read it back, verify it was correct, erase the card, and start over.  I got 11TB worth of writes before the card started showing failures.  I have no idea if this is typical but lets assume it is.  A 64GB SD card would be more like 700 TB of writes, which should be sufficient for a decade of blockchain usage even if the tx volume increases by a factor of ten or more.  

Of course one advantage of a dedicated device is you can strike a compromise between storage writes and memory usage.  One example would be to only write confirmed tx to the memory "disk", the memory pool would remain in memory.  Blocks are occasionally orphaned so with enough memory you could delay writing the block to storage until it is x blocks deep in the blockchain (each block deeper becomes exponentially less likely to be orphaned).  Other temporary less critical data like information on current peers, can be batch updated to storage.  If the node goes offline between updates it isn't a critical that the stored information about peers is slightly stale.  The fact that Bitcoin is a decentralized network makes it easier to implement delayed writing.  You can always request recent information from peers again.

The main scenario to avoid with flash is using it as a high throughput "RAM", but even a memory constrained device, will have some memory so there is no need to write everything to flash.
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3080



View Profile
May 02, 2014, 04:42:44 PM
 #44

A 64GB SD card would be more like 700 TB of writes.  That should be sufficient for a decade of usage for the blockchain even if the tx volume increases by a factor of ten.

And fast storage tech 10 years hence will not have the capacity and cell programming limitations of present-day flash technology. This sort of factor is never accounted for when arguments are made against the scalability of the blockchain. But significant near-term breakthroughs in both mechanical and solid state storage are mature enough to hit the market this year and next, and this is after both technologies have been bumping their heads against a ceiling for a couple of years now.

Vires in numeris
hxtop
Hero Member
*****
Offline Offline

Activity: 1071
Merit: 500



View Profile
May 02, 2014, 06:54:46 PM
 #45

 I wish it be vastly smaller, cheaper. as a node is a good idea
Massimo80
Full Member
***
Offline Offline

Activity: 168
Merit: 100


View Profile
May 02, 2014, 07:20:56 PM
 #46

No it wouldn't.  Miners connect to the node (just like they do any node running p2pool) over TCP/IP.  The mining software is on the miner.   Instead of pointing it at a pool wallet you point it at your p2pool node, exactly as you do now if p2pool is running on a desktop.

...and the benefit would be?

Quote
As for not useful well that depends.  Just as a hardware which runs a full node for the network and does nothing for the user well your right that is beyond stupid.  Why would one buy one?  However how about this.   Your wallet is on your computer, you don't want to run bitcoind locally for a couple of reasons such as you have multiple computers running bitcoind on all of them it excessive, or you don't use your wallet everyday and hate the fact that when it syncs up you need to wait.

So instead you use a light wallet which connects to your local bitcoin node (running on that <1W device connected to your local network).  Got 8 wallets spread across multiple computers no problem they can all point to the same local bitcoind.  Now you could use a SPV client but maybe you don't like the security compromise and the fact that it doesn't strengthen the network.

This makes very little sense. Running multiple wallets on multiple computers in the same network? I can actually think of a few use cases, but 99% of Bitcoin users would never have such a need. Assuming that they'd want to run a full node at all, which most of them just wouldn't.
Massimo80
Full Member
***
Offline Offline

Activity: 168
Merit: 100


View Profile
May 02, 2014, 07:27:27 PM
 #47

You are thinking too specific and perhaps PoS was not the best example.  But imagine a tiny low-power, low-cost bitcoin node with trivial set-up.  I think some people would find innovative uses for these, while others would buy them simply to help support the network.

I'm quite skeptical about this.

Quote
You wouldn't mine with an ARM processor.  You would mine with a bitcoin miner that employs 1 or more SHA256 ASICs.  If the ARM-core bitcoin node was cheap and simple enough, the "hashing device" could be transformed by default into a "plug-and-play P2P miner" by the manufacturer.  This may help to decentralize mining.  

The reason mining is becoming increasingly centralized is related to equipment costs, power costs and equipment delivery times; mining is simply not profitable on a small scale, and nobody with a little common sense would buy an ASIC miner to run it at home. The availability of a cheap stand-alone Bitcoin node is not going to change this at all.
jbreher
Legendary
*
Offline Offline

Activity: 3080
Merit: 1688


lose: unfind ... loose: untight


View Profile
May 02, 2014, 11:23:18 PM
 #48

Here's a 64 MB SDRAM chip that is only 6mm x 8mm in size and costs about $1.50: http://www.digikey.com/product-detail/en/AS4C4M16S-6BIN/1450-1077-ND/4531924

Well, it's not really 64 MB (MegaBytes), it is 64 Mib (MebiBits). If you've not budgeted this accordingly, your DRAM cost just went up by a factor of almost 8.

Note that I'm not casting aspersions upon the appliance idea.

Anyone with a campaign ad in their signature -- for an organization with which they are not otherwise affiliated -- is automatically deducted credibility points.

I've been convicted of heresy. Convicted by a mere known extortionist. Read my Trust for details.
bountygiver
Member
**
Offline Offline

Activity: 100
Merit: 10


View Profile
May 03, 2014, 12:15:26 AM
 #49

You are thinking too specific and perhaps PoS was not the best example.  But imagine a tiny low-power, low-cost bitcoin node with trivial set-up.  I think some people would find innovative uses for these, while others would buy them simply to help support the network.

I'm quite skeptical about this.

Quote
You wouldn't mine with an ARM processor.  You would mine with a bitcoin miner that employs 1 or more SHA256 ASICs.  If the ARM-core bitcoin node was cheap and simple enough, the "hashing device" could be transformed by default into a "plug-and-play P2P miner" by the manufacturer.  This may help to decentralize mining.  

The reason mining is becoming increasingly centralized is related to equipment costs, power costs and equipment delivery times; mining is simply not profitable on a small scale, and nobody with a little common sense would buy an ASIC miner to run it at home. The availability of a cheap stand-alone Bitcoin node is not going to change this at all.

That's why we need to educate bitcoin users that mining is not about profit.

12dXW87Hhz3gUsXDDCB8rjJPsWdQzjwnm6
renee25
Member
**
Offline Offline

Activity: 80
Merit: 12


View Profile
May 03, 2014, 12:20:58 AM
 #50

a bitcoin wallet the size of a pendrive
this reminds me of the trezor.
 Roll Eyes

Don't donate me: donate to nmc re-base development project.
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3080



View Profile
May 03, 2014, 12:35:30 AM
 #51

a bitcoin wallet the size of a pendrive
this reminds me of the trezor.
 Roll Eyes

No, not a wallet. A node on the network. Typical wallets are combined with a network node in a single piece of software right now. This would let users run a wallet only app without waiting for blocks to download, the node is doing it for them in the background. Solo miners or p2pool miners could also make use of a low cost network node.

Vires in numeris
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
May 03, 2014, 12:46:04 AM
 #52

i'm not so sure size of a node is so important at this point.

at $19 per YEAR for a vps full node, it's cheap to run one right now.  that's where my Top image came from above:  

https://bitcointalk.org/index.php?topic=582817.0

of course there's some centralization but i don't see that as a problem.  it's decentralized enough.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
May 03, 2014, 01:24:34 AM
 #53

It isn't the centralization it is the fact that someone else has control over it.  I would use a SPV client before I accepted data from a bitcoin node under someone elses control.
Massimo80
Full Member
***
Offline Offline

Activity: 168
Merit: 100


View Profile
May 03, 2014, 01:40:01 AM
 #54

It isn't the centralization it is the fact that someone else has control over it.  I would use a SPV client before I accepted data from a bitcoin node under someone elses control.

You are always accepting data from nodes under someone else's control. That's what "peer-to-peer network" means.
Where do you think your node will get its data from? Roll Eyes
ninjarobot
Hero Member
*****
Offline Offline

Activity: 761
Merit: 500


Mine Silent, Mine Deep


View Profile
May 03, 2014, 01:53:25 AM
 #55

It's been said before, but bears repeating: internet routers make the ideal candidate for a low cost bitcoin node device. The trouble is that both RAM and storage of a typical 2014 device are not in anywhere close to the right kind of league to do the job.

This is what I would like to see as well. Modern routers nowadays have dual core 1 GHz+ ARM processors and up to 256MB of RAM so they are getting close. It is not too much of a stretch to imagine an open source router firmware like OpenWRT to support bitcoind, bitcore, cgminer, p2pool and other bitcoin goodies. A router might even be a fairly secure place to run a intranet 'web' wallet on. (no malware, viruses or keyloggers)

If someone decides to build a Bitcoin Router and crowdfund it on KickStarter I'd be the fist to back it.
Carlton Banks
Legendary
*
Offline Offline

Activity: 3430
Merit: 3080



View Profile
May 03, 2014, 02:26:27 AM
 #56

It's been said before, but bears repeating: internet routers make the ideal candidate for a low cost bitcoin node device. The trouble is that both RAM and storage of a typical 2014 device are not in anywhere close to the right kind of league to do the job.

This is what I would like to see as well. Modern routers nowadays have dual core 1 GHz+ ARM processors and up to 256MB of RAM so they are getting close.

I'm surprised they're that well spec'ed already. That is probably nearly enough RAM to run a node with no wallet code, I recall that the RPi struggles a little with 512MB while using the wallet code in the 0.8 version of Bitcoin Qt (while running the Debian desktop at the same time, of course).


It is not too much of a stretch to imagine an open source router firmware like OpenWRT to support bitcoind, bitcore, cgminer, p2pool and other bitcoin goodies. A router might even be a fairly secure place to run a intranet 'web' wallet on. (no malware, viruses or keyloggers)

If someone decides to build a Bitcoin Router and crowdfund it on KickStarter I'd be the fist to back it.

p2pool and bitcoind (and internet routing) would be a stretch too far on 2014 hardware, that kind of setup really benefits from multicore processing at faster clockspeeds, as well as the fastest storage tech you can give it. Running bitcoind and cgminer would be well within reach though, and maybe there might be enough resources left over to allow those two applications to run in a solo mining configuration (low overhead solo mining is built into cgminer as of recently). USB stick miners would be happy with that product.

Maybe any new developments in p2pool software and falling prices for fast flash storage might meet each other in the middle within 5 years. The expectation is that stacked flash cell tech should be available in the next few years. A high performance, low cost version of that technology could really help make a device like that viable (the blockchain could easily be 50-100 GB by the end of the decade).

Vires in numeris
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
May 03, 2014, 03:52:53 AM
 #57

It isn't the centralization it is the fact that someone else has control over it.  I would use a SPV client before I accepted data from a bitcoin node under someone elses control.

You are always accepting data from nodes under someone else's control. That's what "peer-to-peer network" means.
Where do you think your node will get its data from? Roll Eyes

The key difference is that my node (under my control) independently verifies all the data it receives.  It implicitly distrusts anything it gets from other nodes and only acts upon data after it verifies it.   Peers which send it false data are tagged, disconnected, and ignored.  Part of the assumption in the security model for a full node is that the node is actually validating all data and that implicitly requires the node to be running on a system you control.  If your node is running on someone elses system you don't even have assurance they haven't swapped it out for a backdoored version which copies your private keys, logs yours passphrases, or simply feeds you what they want you to see.

If you aren't going to run a full node under your direct control you are better off running a SPV wallet.  Running a full node on hardware you don't control if security theater.
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
May 03, 2014, 04:57:13 AM
Last edit: May 03, 2014, 05:42:55 AM by cypherdoc
 #58

It isn't the centralization it is the fact that someone else has control over it.  I would use a SPV client before I accepted data from a bitcoin node under someone elses control.

You are always accepting data from nodes under someone else's control. That's what "peer-to-peer network" means.
Where do you think your node will get its data from? Roll Eyes

The key difference is that my node (under my control) independently verifies all the data it receives.  It implicitly distrusts anything it gets from other nodes and only acts upon data after it verifies it.   Peers which send it false data are tagged, disconnected, and ignored.  Part of the assumption in the security model for a full node is that the node is actually validating all data and that implicitly requires the node to be running on a system you control.  If your node is running on someone elses system you don't even have assurance they haven't swapped it out for a backdoored version which copies your private keys, logs yours passphrases, or simply feeds you what they want you to see.

If you aren't going to run a full node under your direct control you are better off running a SPV wallet.  Running a full node on hardware you don't control if security theater.

I don't think that's realistic.  my bet is that a majority of the nodes in the network are running off vps.

First of all, it's highly unlikely a vps provider is going to take the time to tamper with your full node if all you're doing with it is acting as a full relay node and not transacting on it.  Secondly, what would be the point besides just fooling me as to it's valid functioning?

I check my nodes connections constantly via rpc and vnstat and they've regularly got 40-50 connections. Any backdoored version whose purpose is to relay false tx's would immediately have its connections and malicious tx's terminated as invalid by the network.  Sure, i suppose the vps provider could instead feed me false connection data but again what would be the point?   i also routinely ssh in and check statistics and update/upgrade.  


DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
May 03, 2014, 04:30:08 PM
 #59

It isn't the centralization it is the fact that someone else has control over it.  I would use a SPV client before I accepted data from a bitcoin node under someone elses control.

You are always accepting data from nodes under someone else's control. That's what "peer-to-peer network" means.
Where do you think your node will get its data from? Roll Eyes

The key difference is that my node (under my control) independently verifies all the data it receives.  It implicitly distrusts anything it gets from other nodes and only acts upon data after it verifies it.   Peers which send it false data are tagged, disconnected, and ignored.  Part of the assumption in the security model for a full node is that the node is actually validating all data and that implicitly requires the node to be running on a system you control.  If your node is running on someone elses system you don't even have assurance they haven't swapped it out for a backdoored version which copies your private keys, logs yours passphrases, or simply feeds you what they want you to see.

If you aren't going to run a full node under your direct control you are better off running a SPV wallet.  Running a full node on hardware you don't control if security theater.

I don't think that's realistic.  my bet is that a majority of the nodes in the network are running off vps.

First of all, it's highly unlikely a vps provider is going to take the time to tamper with your full node if all you're doing with it is acting as a full relay node and not transacting on it.

I doubt very few people are running full nodes just to relay tx.  You claim that most full nodes are running on VPS also misses the mark.  The easiest way to run a full node is download bitcoin software and run it on your local machine so I would guess that most full nodes are running on local machines for the purpose of transacting.  If you don't want to run a full node on hardware you control then use a SPV client.  

Quote
I check my nodes connections constantly via rpc and vnstat and they've regularly got 40-50 connections. Any backdoored version whose purpose is to relay false tx's would immediately have its connections and malicious tx's terminated as invalid by the network.

Your missing the point.  If this node you are checking by RPC is running on a VPS you have no idea if it is really connected to anything.  Any "stats" you are getting by RPC can simply be whatever the VPS operator wants you to think it is.  You have absolutely no security.  Worse if you are transacting using that RPC connection you actually have LESS security than you would running a local SPV client.  The VPS could inform you of anything it wants.  Provide you completely bogus transaction notifications.  If you are running a service this way (imagine an exchange) it would be downright trivial to steal from you.

Quote
i also routinely ssh in and check statistics and update/upgrade.

Which means absolutely nothing.  Ok you SSH in to a virtual environment controlled completely by a third party.  Guess what said third party can show you anything they want.  Yup you are "installing" bitcoind.  Here are some stats, oh and here is a transaction paying you.  You have no assurance that any of that is real.  If you want proof I will setup a VPS for you which on the hour will show you that you receive 1,000,000 BTC.

Running a node on a VPS is security theater.  If you haven't been compromised it is simply because you aren't worth enough to be compromised.  You aren't secure you are just hoping nobody every decides they want to compromise you.   Information security begins with physical security.  One would think after all the linode hacks this would be self evident.  If you don't control the hardware you have no assurance that anything you see is "real".
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
May 03, 2014, 05:15:42 PM
 #60

It isn't the centralization it is the fact that someone else has control over it.  I would use a SPV client before I accepted data from a bitcoin node under someone elses control.

You are always accepting data from nodes under someone else's control. That's what "peer-to-peer network" means.
Where do you think your node will get its data from? Roll Eyes

The key difference is that my node (under my control) independently verifies all the data it receives.  It implicitly distrusts anything it gets from other nodes and only acts upon data after it verifies it.   Peers which send it false data are tagged, disconnected, and ignored.  Part of the assumption in the security model for a full node is that the node is actually validating all data and that implicitly requires the node to be running on a system you control.  If your node is running on someone elses system you don't even have assurance they haven't swapped it out for a backdoored version which copies your private keys, logs yours passphrases, or simply feeds you what they want you to see.

If you aren't going to run a full node under your direct control you are better off running a SPV wallet.  Running a full node on hardware you don't control if security theater.

I don't think that's realistic.  my bet is that a majority of the nodes in the network are running off vps.

First of all, it's highly unlikely a vps provider is going to take the time to tamper with your full node if all you're doing with it is acting as a full relay node and not transacting on it.

I doubt very few people are running full nodes just to relay tx.  You claim that most full nodes are running on VPS also misses the mark.  The easiest way to run a full node is download bitcoin software and run it on your local machine so I would guess that most full nodes are running on local machines for the purpose of transacting.  If you don't want to run a full node on hardware you control then use a SPV client.  

Quote
I check my nodes connections constantly via rpc and vnstat and they've regularly got 40-50 connections. Any backdoored version whose purpose is to relay false tx's would immediately have its connections and malicious tx's terminated as invalid by the network.

Your missing the point.  If this node you are checking by RPC is running on a VPS you have no idea if it is really connected to anything.  Any "stats" you are getting by RPC can simply be whatever the VPS operator wants you to think it is.  You have absolutely no security.  Worse if you are transacting using that RPC connection you actually have LESS security than you would running a local SPV client.  The VPS could inform you of anything it wants.  Provide you completely bogus transaction notifications.  If you are running a service this way (imagine an exchange) it would be downright trivial to steal from you.

Quote
i also routinely ssh in and check statistics and update/upgrade.

Which means absolutely nothing.  Ok you SSH in to a virtual environment controlled completely by a third party.  Guess what said third party can show you anything they want.  Yup you are "installing" bitcoind.  Here are some stats, oh and here is a transaction paying you.  You have no assurance that any of that is real.  If you want proof I will setup a VPS for you which on the hour will show you that you receive 1,000,000 BTC.

Running a node on a VPS is security theater.  If you haven't been compromised it is simply because you aren't worth enough to be compromised.  You aren't secure you are just hoping nobody every decides they want to compromise you.   Information security begins with physical security.  One would think after all the linode hacks this would be self evident.  If you don't control the hardware you have no assurance that anything you see is "real".

of course a vps operator "could" do these things but you've not answered the most important question of all.

what economic motive would drive them to compromise a paying customer's node that is not performing tx's and stores no btc?
Pages: « 1 2 [3] 4 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!