Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: EuSouBitcoin on August 18, 2011, 08:47:50 PM



Title: Why Run the Bitcoin Client?
Post by: EuSouBitcoin on August 18, 2011, 08:47:50 PM
I have the Bitcoin client version 0.3.24 installed on my computer. The only reason I see to have it running is if I am sending or receiving BTC to the wallet on my computer. Correct me if I'm wrong but transaction fees only go to miners. Am I missing something here?


Title: Re: Why Run the Bitcoin Client?
Post by: Gabi on August 18, 2011, 08:59:07 PM
Well by running it you are an active node that relay the blocks and the transactions


Title: Re: Why Run the Bitcoin Client?
Post by: evoorhees on August 18, 2011, 09:53:31 PM
By running it, the only advantage to you is that your blockchain stays updated. If you hadn't opened it in a couple weeks, then it might take a while to catch back up, delaying your payments, etc.

Also, by running it, you're benefiting the network as a whole, by adding another "node" which processes and relays transaction.


Title: Re: Why Run the Bitcoin Client?
Post by: nmat on August 18, 2011, 10:04:58 PM
Also, by running it, you're benefiting the network as a whole, by adding another "node" which processes and relays transaction.

I thought miners did this


Title: Re: Why Run the Bitcoin Client?
Post by: Garrett Burgwardt on August 18, 2011, 10:40:42 PM
Miners in the end filter out transactions and process them in the final step of a transaction, but nodes that relay transactions are important too. This provides redundancy and filters out some of the obvious spam transactions so that there is less load on the miners (though at the moment, that's not a huge problem now- further along when bitcoin is more popular it could be a real concern).


Title: Re: Why Run the Bitcoin Client?
Post by: elggawf on August 18, 2011, 10:41:51 PM
Also, by running it, you're benefiting the network as a whole, by adding another "node" which processes and relays transaction.

I thought miners did this

Peers are the ones that relay and make up the network, giving you a more diverse mesh and lessening the chance someone with a bunch of malicious nodes can nail a transaction to a particular IP address (see Kaminsky et al)... but of course that only really 100% applies if you're allowing incoming connections.


Title: Re: Why Run the Bitcoin Client?
Post by: evoorhees on August 19, 2011, 01:48:57 AM
Also, by running it, you're benefiting the network as a whole, by adding another "node" which processes and relays transaction.

I thought miners did this

Sorry, I shouldn't have used the word "processes."  Miners process transactions in the new block. Nodes simply relay new blocks to each other. Miners are doing the auditing and verification... nodes are distributing the results of that work. I think I got this right :)


Title: Re: Why Run the Bitcoin Client?
Post by: EuSouBitcoin on November 16, 2011, 01:31:06 PM
If running the client provides a valuable service to the network, shouldn't that be rewarded?


Title: Re: Why Run the Bitcoin Client?
Post by: chickenado on November 16, 2011, 02:06:51 PM
If running the client provides a valuable service to the network, shouldn't that be rewarded?

The reward scheme is not optimal in Bitcoin. It relies on charity in order to produce some "public goods", thus they are underproduced.

This doesn't make Bitcoin unviable though. Bittorrent also works in practice even though seeding is pure charity.

Note that the reward scheme for mining isn't optimal either.  Once the block reward approaches zero, miners get rewarded for faster transaction processing, but they don't get rewarded for securing the network, which is their main purpose.  Securing the network is just a positive externality.   

The initial block reward is a direct reward for securing the network, however it is somewhat arbitrary and it ignores how much security consumers want and how much they are willing to pay for it.  It could be too high or it could be too low.

You can't give a direct reward for relaying because that would be too easy to abuse. Someone could just set up 1,000,000 clients on 1,000,000 IP addresses relaying among themselves, with a few outward connections, yet that wouldn't contribute much to the resilience  of the bitcoin network.

The topology and connectedness of running clients needs to be rewarded as well.


Title: Re: Why Run the Bitcoin Client?
Post by: Gabi on November 16, 2011, 02:43:39 PM
If running the client provides a valuable service to the network, shouldn't that be rewarded?
What expenses there are to keep running the client? Almost none. Everyone can keep the client in background and ignore it.


Title: Re: Why Run the Bitcoin Client?
Post by: BitcoinBug on November 16, 2011, 03:08:23 PM
What expenses there are to keep running the client? Almost none. Everyone can keep the client in background and ignore it.

For now... What if/when we reach VISA volume of transactions.


Title: Re: Why Run the Bitcoin Client?
Post by: Gabi on November 16, 2011, 03:12:02 PM
Call me when this happens ok?


Title: Re: Why Run the Bitcoin Client?
Post by: kyotoku on November 16, 2011, 03:12:58 PM
I suppose you brought this up because of the microsoft paper. A more in depth discussion can be found here. Link to the microsoft paper within.
https://bitcointalk.org/index.php?topic=51712.0 (https://bitcointalk.org/index.php?topic=51712.0)


Title: Re: Why Run the Bitcoin Client?
Post by: nmat on November 16, 2011, 03:15:37 PM

For now... What if/when we reach VISA volume of transactions.

There are much more important scalability problems that must be solved before that happens.


Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 04:07:09 PM
Note that the reward scheme for mining isn't optimal either.  Once the block reward approaches zero, miners get rewarded for faster transaction processing, but they don't get rewarded for securing the network, which is their main purpose.  Securing the network is just a positive externality.   

Care to explain that.  More transaction fees = more miners = stronger network.


Title: Re: Why Run the Bitcoin Client?
Post by: chickenado on November 16, 2011, 04:36:53 PM
Note that the reward scheme for mining isn't optimal either.  Once the block reward approaches zero, miners get rewarded for faster transaction processing, but they don't get rewarded for securing the network, which is their main purpose.  Securing the network is just a positive externality.   

Care to explain that.  More transaction fees = more miners = stronger network.

stronger network is a side effect, but it's not what the individual user is buying from the individual miner.

If a user doubles his fees, he is not going to double his security. 


Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 04:41:25 PM
Note that the reward scheme for mining isn't optimal either.  Once the block reward approaches zero, miners get rewarded for faster transaction processing, but they don't get rewarded for securing the network, which is their main purpose.  Securing the network is just a positive externality.   

Care to explain that.  More transaction fees = more miners = stronger network.

stronger network is a side effect, but it's not what the individual user is buying from the individual miner.

If a user doubles his fees, he is not going to double his security. 

There is no way for a user to pay to increase security under any transaction fee system.  There is only one level of security.  However setting min transaction fees could ensure that min level of security is provided based on transaction volume.


Title: Re: Why Run the Bitcoin Client?
Post by: FreeMoney on November 16, 2011, 06:21:25 PM
Note that the reward scheme for mining isn't optimal either.  Once the block reward approaches zero, miners get rewarded for faster transaction processing, but they don't get rewarded for securing the network, which is their main purpose.  Securing the network is just a positive externality.   

Care to explain that.  More transaction fees = more miners = stronger network.

stronger network is a side effect, but it's not what the individual user is buying from the individual miner.

If a user doubles his fees, he is not going to double his security. 

There is no way for a user to pay to increase security under any transaction fee system.  There is only one level of security.  However setting min transaction fees could ensure that min level of security is provided based on transaction volume.


The security of a transaction after X time is already determined in a rough way by tx fee. It's pretty binary right now, but when there are lots of miners with different schedules your chance of getting in by any certain block will depend on fee.

In the far future a large fee could actually have -some- impact on the speed of the next block too.


Title: Re: Why Run the Bitcoin Client?
Post by: tvbcof on November 16, 2011, 06:40:51 PM
I run one because it is the only worthwhile contribution to the network that I can easily make at this time (other than trying to soak up some of the currency inflation.)

---

BTW, I am making a bunch of very low power machines (several watts) which I hope to be viable full nodes, and could reasonably remain operational on solar/battery for a long time, and potentially on long distance wifi.

I bought some 6G microdrives to serve as the data storage for these hosts.  Just recently I looked at the node I run on my router and was alarmed to see the data size much bigger than I expected (at around 4G iirc...I'll do more analysis later, but my initial impression was that the block chain would be less size at this time.)  I do hope that the development team puts some focus on keeping things tight and efficient so that it is realistic to help support the network with minimal hardware.



Title: Re: Why Run the Bitcoin Client?
Post by: dooglus on November 16, 2011, 07:17:58 PM
Just recently I looked at the node I run on my router and was alarmed to see the data size much bigger than I expected (at around 4G iirc...I'll do more analysis later, but my initial impression was that the block chain would be less size at this time.)

I've been running the bitcoin client for almost a year, and my .bitcoin folder is only just over 1G in size.

The 'database' folder is 10M, and the only files of significant size in .bitcoin are:

Code:
-rw------- 1 chris chris  32K Nov 16 11:13 __db.002
-rw------- 1 chris chris 264K Nov 16 11:13 __db.003
-rw------- 1 chris chris 780K Nov 16 11:07 wallet.dat
-rw------- 1 chris chris 904K Nov 16 11:13 __db.001
-rw------- 1 chris chris 2.4M Nov 16 11:14 debug.log
-rw-r----- 1 chris chris  10M Oct  6 21:06 log.0000000001
-rw------- 1 chris chris  45M Nov 16 11:12 addr.dat
-rw------- 1 chris chris 292M Nov 16 11:12 blkindex.dat
-rw------- 1 chris chris 719M Nov 16 11:07 blk0001.dat

Do you have several copies of the blockchain in your 4G folder?


Title: Re: Why Run the Bitcoin Client?
Post by: tvbcof on November 16, 2011, 08:56:33 PM
I run one because it is the only worthwhile contribution to the network that I can easily make at this time (other than trying to soak up some of the currency inflation.)

It's great that people do this but depending solely on self-sacrifice to maintain the network is unreliable, especially since it will become more expensive to maintain relay nodes as the transaction volume increases.

I actually potentially dis-agree.  If a worthwhile system needs merely a couple thousand generous benefactors, it is entirely likely that they will be reliable (given the size of the worlds population.)  I suspect that this will be a more reliable construct than relying on people trying to make a profit since they will vanish as soon as the motive is gone, or as soon as they are offered a bigger profit for actively damaging the system.

Again, I request that the developers put some focus on making it practical and desirable for folks like myself to attempt to provide resource support.



Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 09:09:34 PM
Again, I request that the developers put some focus on making it practical and desirable for folks like myself to attempt to provide resource support.

1) Run the client w/ port 8333 open/forwarded on firewall
2) Done.

You are providing support to the network.

If you want a lower resource option, setup bitcoind to run on boot and delete the client.



Title: Re: Why Run the Bitcoin Client?
Post by: nmat on November 16, 2011, 09:17:24 PM
1) Run the client w/ port 8333 open on firewall
2) Done.

You are providing support to the network.

You might have to forward ports if your router does not support UPnP


Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 09:20:08 PM
Yeah I thought that was implied by open on firewall but just in case I updated it.


Title: Re: Why Run the Bitcoin Client?
Post by: tvbcof on November 16, 2011, 09:35:33 PM
Again, I request that the developers put some focus on making it practical and desirable for folks like myself to attempt to provide resource support.

1) Run the client w/ port 8333 open/forwarded on firewall
2) Done.

You are providing support to the network.

If you want a lower resource option, setup bitcoind to run on boot and delete the client.


I've never run anything but bitcoind and I in fact run it on my firewall/router.

You did not read the entire thread.  My request of the developers is that they put some focus on addressing such things as disk space utilization before they become an issue.  I'll add to that the hope that the CPU and memory requirements remain as light as practical.

I am building tiny appliances which are inexpensive to buy and operate and hope that they remain effective as full bitcoin clients.  (In fact, my end goal is to put some FPGA mining cards in them, but it is unlikely that I will get to that point.)



Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 09:42:32 PM
I did read the entire thread.  The blockchain is <1GB. The bitcoind is <4MB.  Given the blockchain contains over 2 years of transactions that is pretty good.


Title: Re: Why Run the Bitcoin Client?
Post by: casascius on November 16, 2011, 09:48:49 PM
I did read the entire thread.  The blockchain is <1GB. The bitcoind is <4MB.  Given the blockchain contains over 2 years of transactions that is pretty good.

The first two years were pretty slow - it's growing massively - most of the space is taken up by the last 6 months of activity.

On my machine, my blk0001.dat + blkindex.dat are now > 1GB.


Title: Re: Why Run the Bitcoin Client?
Post by: tvbcof on November 16, 2011, 10:07:14 PM
I did read the entire thread.  The blockchain is <1GB. The bitcoind is <4MB.  Given the blockchain contains over 2 years of transactions that is pretty good.

I broke down and logged into my machine and looked just now.  I have 4G in .bitcoin/databases/* but they are apparently log files which are, presumably, dispensable on a dedicated appliance.

.bitcoin/blk0001.dat is about 750M and blkindex.dat is about 300M.  I agree that this is remarkably good, but I also feel that the economy is .0001% of what it coulda/shoulda been and hopefully will be.

The reason for my imploring of the development team to keep some measure of focus on remaining vigilant about efficiency is that I have seen far to many development efforts forget about scaling issues in a mad dash toward some other more immediate goal (like wallet encryption or some pretty GUI fr'instance.)



Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 10:09:41 PM
I did read the entire thread.  The blockchain is <1GB. The bitcoind is <4MB.  Given the blockchain contains over 2 years of transactions that is pretty good.

The first two years were pretty slow - it's growing massively - most of the space is taken up by the last 6 months of activity.

On my machine, my blk0001.dat + blkindex.dat are now > 1GB.

That is weird.  It is 0.98GB on my machine.  I thought there was only one blockchain.  You trying to pull a 51% attack?


I broke down and logged into my machine and looked just now.  I have 4G in .bitcoin/databases/* but they are apparently log files which are, presumably, dispensable on a dedicated appliance.

.bitcoin/blk0001.dat is about 750M and blkindex.dat is about 300M.  I agree that this is remarkably good, but I also feel that the economy is .0001% of what it coulda/shoulda been and hopefully will be.

The reason for my imploring of the development team to keep some measure of focus on remaining vigilant about efficiency is that I have seen far to many development efforts forget about scaling issues in a mad dash toward some other more immediate goal (like wallet encryption or some pretty GUI fr'instance.)

Well things like encryption and GUI are a non-issue.   You don't need a wallet or GUI as a relay node.  The bad news is transaction volume  will increase and that means the speed the blockchain grows will also increase.  However as long as transaction volume grows slower than Moore's law the cost of storage should remain roughly the same.  You can get a 32GB SSD today for $64.  Likely in 2 years you will be able to buy a 128GB SSD for the same price.


Title: Re: Why Run the Bitcoin Client?
Post by: terrytibbs on November 16, 2011, 10:12:58 PM
I did read the entire thread.  The blockchain is <1GB. The bitcoind is <4MB.  Given the blockchain contains over 2 years of transactions that is pretty good.

The first two years were pretty slow - it's growing massively - most of the space is taken up by the last 6 months of activity.

On my machine, my blk0001.dat + blkindex.dat are now > 1GB.

That is weird.  It is 0.98GB on my machine.  I thought there was only one blockchain.  You trying to pull a 51% attack?
If you have a node on 24/7 you will receive most of the would-be orphans, while a node asking for the current block inventory will only get the blocks in the longest chain.


Title: Re: Why Run the Bitcoin Client?
Post by: casascius on November 16, 2011, 10:13:35 PM

That is weird.  It is 0.98GB on my machine.  I thought there was only one blockchain.  You trying to pull a 51% attack?

I guess it depends on how you count it.  Mine's 0.98 binary gigabytes, 1.06 decimal gigabytes.


Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 10:15:39 PM
If you have a node on 24/7 you will receive most of the would-be orphans, while a node asking for the current block inventory will only get the blocks in the longest chain.

Doesn't the daemon scrub orphans after so much time?  I would imagine an orphan for 100 blocks ago is kinda useless.


Title: Re: Why Run the Bitcoin Client?
Post by: terrytibbs on November 16, 2011, 10:17:15 PM
Doesn't the daemon scrub orphans after so much time?  I would imagine an orphan for 100 blocks ago is kinda useless.
Pretty sure it doesn't.


Title: Re: Why Run the Bitcoin Client?
Post by: casascius on November 16, 2011, 10:18:38 PM
Doesn't the daemon scrub orphans after so much time?  I would imagine an orphan for 100 blocks ago is kinda useless.
Pretty sure it doesn't.

I'm pretty sure it doesn't too.

Regardless, they are going to be small, like no more than a block or two, once in a while.  Probably less than 0.5% of the file.  I think if an orphan chain managed to get any longer than that, there'd be active discussion about it and everyone would hear about it.


Title: Re: Why Run the Bitcoin Client?
Post by: tvbcof on November 16, 2011, 10:22:32 PM
Doesn't the daemon scrub orphans after so much time?  I would imagine an orphan for 100 blocks ago is kinda useless.
Pretty sure it doesn't.

I'm pretty sure it doesn't too.

Regardless, they are going to be small, like no more than a block or two, once in a while.  Probably less than 0.5% of the file.  I think if an orphan chain managed to get any longer than that, there'd be active discussion about it and everyone would hear about it.

I ran across some comment somewhere that there will be some 'optimization' on start-up.  Probably it is this, and it would be easier to implement than an optimization thread so that seems likely.

I very rarely re-start bitcoind.  My goal with this (and many other things) is to re-start a process maybe yearly unless I want to compile a newer binary or something.



Title: Re: Why Run the Bitcoin Client?
Post by: tvbcof on November 16, 2011, 11:11:14 PM

...
The reason for my imploring of the development team to keep some measure of focus on remaining vigilant about efficiency is that I have seen far to many development efforts forget about scaling issues in a mad dash toward some other more immediate goal (like wallet encryption or some pretty GUI fr'instance.)

Well things like encryption and GUI are a non-issue.   You don't need a wallet or GUI as a relay node.
...

The issue I illuded to is that these things may take resources away from considering core network and scaling issues and implementing solutions to them.

So, I reinterate my point.


The bad news is transaction volume  will increase and that means the speed the blockchain grows will also increase.  However as long as transaction volume grows slower than Moore's law the cost of storage should remain roughly the same.  You can get a 32GB SSD today for $64.  Likely in 2 years you will be able to buy a 128GB SSD for the same price.

I would actually prefer avoiding buying new machines every year just to donate support to the Bitcoin project.  Currently I am able to support Bitcoin with a network connection that I already have, and with a spare machine which was modern about a decade ago (and uses just a few watts of power.)  I like that.

The question is how long it will be before people who have a minor interest in supporting the system will no longer to be able to practically do so.  To some extent it depends on the growth in use of the system, but to another huge extent, it depends on the focus that the development team puts into the scaling issues that are going to be popping up.

I feel that we could already be well beyond the point of implosion had Satoshi not carefully considered some of these issues, and had not the current development team continued to consider them.  I have a lot of respect for both for this reason.  I only suggest that the current (and future) teams not lose touch with this aspect of the development of the system.



Title: Re: Why Run the Bitcoin Client?
Post by: DeathAndTaxes on November 16, 2011, 11:28:39 PM
Well there would be no need to upgrade every year.  Maybe every 5 years but it is almost simply not realistic to think you would never need to upgrade.


Title: Re: Why Run the Bitcoin Client?
Post by: MysteryMiner on November 16, 2011, 11:50:28 PM
If running the client provides a valuable service to the network, shouldn't that be rewarded?
Should I be rewarded for seeding the torrents I downloaded? They stress my computer even more than Bitcoin. They are less demanding on memory and disc access, but the network is always loaded.


Title: Re: Why Run the Bitcoin Client?
Post by: finway on November 17, 2011, 03:49:56 AM
Good question, I'm running bitcoin client for several months, but i'm not sure i'll run it if it's getting too big to slow down my computer too much.


Title: Re: Why Run the Bitcoin Client?
Post by: racerguy on November 17, 2011, 03:38:26 PM
Only problem I have with running the client to support the network is it gives your ip away to would be attackers, I do run the client all the time though through tor, but I don't think the relaying of transactions happens when you do that.


Title: Re: Why Run the Bitcoin Client?
Post by: casascius on November 17, 2011, 04:15:33 PM
It would certainly be pretty nice if there was a torrent network where seeders are paid. It would be like a poor man's Usenet but with the advantages of being decentralized and pay-as-you-go. Same thing for tor relays.

I think this is bound to happen whether we ask for it or not.  (Both of them)


Title: Re: Why Run the Bitcoin Client?
Post by: MysteryMiner on November 17, 2011, 11:55:37 PM
Good question, I'm running bitcoin client for several months, but i'm not sure i'll run it if it's getting too big to slow down my computer too much.
The computers are getting more powerful faster than Bitcoin is getting resource demanding. The opposite is true for Microsoft Windows. So any recent hardware are capable of supporting Bitcoin client. Tested Bitcoin even on aging server running dual Pentium 3 with Win2k3 R2.
Quote
It would certainly be pretty nice if there was a torrent network where seeders are paid. It would be like a poor man's Usenet but with the advantages of being decentralized and pay-as-you-go. Same thing for tor relays.
Some people prefer to stay anonymous, so only payment they might accept are Bitcoins. I actually run few Tor exit nodes 24/7, will You pay me for doing so? Who will pay? I will run them anyway even if You don't pay me. If You are short in cash, should You be denied from using Tor or torrents? Or there actually are people who like when computers and servers are idling to do some service for fellow internet users?
Quote
Only problem I have with running the client to support the network is it gives your ip away to would be attackers
Obtaining IP is the first and easiest step. IP adress alone will do nothing, there must be some vulnerability and way to launch exploit on the system with that IP or all attacks will fail and DDoS are the only option.