Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: earnabit on July 24, 2014, 08:32:19 PM



Title: Is anyone working on a partial node?
Post by: earnabit on July 24, 2014, 08:32:19 PM
As the blockchain increases in size, it becomes more cumbersome to run a full node. Could it be possible say, every 5000 blocks for full nodes to publish and share a list of all addresses with unspent inputs. This list would be signed by other nodes that have verified it. Instead of having to download the entire blockchain, new clients could just download one of these lists and all the blocks since then. Are there any big technical reasons why this couldn't work?


Title: Re: Is anyone working on a partial node?
Post by: DeathAndTaxes on July 24, 2014, 08:35:35 PM
It would be less secure than SPV (lite node) security model.  You can be a full node or you can be a lite mode.  Trying to be something in between doesn't really make sense.  Nodes aren't trusted, your node implicitly distrusts everything it gets from other nodes until it independently verifies it.


Title: Re: Is anyone working on a partial node?
Post by: kolinko on July 25, 2014, 07:17:44 AM
Speaking of a lite node / SPV... How is that working out right now? I have a hard time finding good docs for it.

In our system, we want oracles to watch a specific multisig address for incoming transactions. Do we really need to store a whole blockchain for that (and not a - say - tree of unspent outputs that we ourselves extracted from blockchain and therefore trust it?)



Title: Re: Is anyone working on a partial node?
Post by: onchain.io on July 25, 2014, 10:19:54 AM
Speaking of a lite node / SPV... How is that working out right now? I have a hard time finding good docs for it.

In our system, we want oracles to watch a specific multisig address for incoming transactions. Do we really need to store a whole blockchain for that (and not a - say - tree of unspent outputs that we ourselves extracted from blockchain and therefore trust it?)



There's no reason why you can't just store the transactions that apply to your multi sig address. BitcoinJ would be quite easy to configure to do this.


Title: Re: Is anyone working on a partial node?
Post by: Envrin on July 25, 2014, 11:11:41 AM
In our system, we want oracles to watch a specific multisig address for incoming transactions. Do we really need to store a whole blockchain for that (and not a - say - tree of unspent outputs that we ourselves extracted from blockchain and therefore trust it?)

You're looking for BIP037 (Bloom Filters).

https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki


Title: Re: Is anyone working on a partial node?
Post by: kolinko on July 26, 2014, 02:13:06 PM
Quote
You're looking for BIP037 (Bloom Filters).

So... is this implemented yet? :)

Quote
BitcoinJ would be quite easy to configure to do this.

Nice... although I'd prefer to use bitcoind if that's possible...


Title: Re: Is anyone working on a partial node?
Post by: ncsupanda on July 27, 2014, 05:39:33 AM
I don't understand how it's difficult/expensive to run a Bitcoin node? I personally use my Desktop to do this and use it simultaneously - Hard Drives are getting cheaper and cheaper, and I keep the blockchain on a SSD.



Title: Re: Is anyone working on a partial node?
Post by: kolinko on July 27, 2014, 12:21:43 PM
Quote
I don't understand how it's difficult/expensive to run a Bitcoin node?

The problems start when you want to create a customer-facing application, and you have to explain to him, that this tiny payment tool will require a 30GB download to start.

Or - in our case - when you want people to set up virtual machines monitoring one or two addresses each - because of the size of the blockchain, it's hard for people to quickly set up such machines and see if the solution fits them or not.


Title: Re: Is anyone working on a partial node?
Post by: ncsupanda on July 27, 2014, 03:46:00 PM
Quote
I don't understand how it's difficult/expensive to run a Bitcoin node?

The problems start when you want to create a customer-facing application, and you have to explain to him, that this tiny payment tool will require a 30GB download to start.

Or - in our case - when you want people to set up virtual machines monitoring one or two addresses each - because of the size of the blockchain, it's hard for people to quickly set up such machines and see if the solution fits them or not.

Ah, I never thought about it from that standpoint.

Why not just provide hardware to support the blockchain as a part of the deal? Eliminates the problem and the ~$100 to purchase the hardware should be little compared to expected revenue, etc.


Title: Re: Is anyone working on a partial node?
Post by: kolinko on July 30, 2014, 03:28:29 PM
> Why not just provide hardware to support the blockchain as a part of the deal? Eliminates the problem and the ~$100 to purchase the hardware should be little compared to expected revenue, etc.

Well, would you install a Twitter, or GIMP on your laptop, if it required you to provide your postal address, pay $100, wait a week for delivery, and then carry that hardware with you everywhere you go? :)

Not to mention, that it's impossible to run such a service in the cloud, and it increases a cost of trying out the service from one download & 15 minutes of fooling around, to a payment, waiting and technical hassle.


Title: Re: Is anyone working on a partial node?
Post by: Kprawn on July 30, 2014, 04:15:30 PM
Could some sort of reward system not be built into the protocol to reward people running the full node? {Eg. A percentage of preference above other users, who do not Full nodes, when transactions are done on this node?} For those who need speed? This can also be hosted on ISP servers, to keep it decentralized.

If not the above, why not a monetary reward, as miners get now, in transaction fees?

Just a thought... As I see more people entering Bitcoin, without running any nodes at all.