Pages:
Author

Topic: Full node reward - request - page 2. (Read 5329 times)

newbie
Activity: 22
Merit: 0
August 11, 2014, 04:29:35 PM
#26
Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.

So, would it be possible to verify that an entity is a full node if they sign to show their address and provide a hash of the entire blockchain + a nonce?
Can a contract be written into the scrypt stating that a designated node can receive the coins of a transaction? Or, why not give higher priority to transactions that include a small transaction to a known node address?

If an alt protocol is created to reward nodes, then it may be better to abandon processor-based mining altogether. It is possible to devise a protocol in which nodes constantly send blocks, and send 'gibberish' transactions in the block to provide the randomized value that allow the hash to be different for each block. When some set of conditions is met (like Node A can prove to the network that it received a transaction from Node B and they each used the same salt/random value to generate the transaction), then a reward can be split among nodes A, B, and all other nodes that directly observed and confirmed that transaction. This system could feasibly work because it's intention is to consume bandwidth - so needing tons of bandwidth to inform and validate with the network is a good thing, rather than a bad thing.
The benefit of consuming bandwidth rather than ASIC cycles is primarily that, in order to 'mine' faster, the miner must increase their bandwidth, which allows them to transmit more transactions. There is a perfect correlation between helping the network and the miner's profit. The gibberish transactions sent along the network can be discarded shortly after they are received; there is no reason to keep them, they can be treated just like any failed attempt to mine a block.
The actual signal that a block has been mined may be a bit tough to figure out though - the specific example I gave would be too easy to exploit.
hero member
Activity: 532
Merit: 500
August 07, 2014, 07:21:52 PM
#25
This is not something that is done today, although I have seen a few sites that do allow for donations to full nodes.

I would not be surprised if, in the future there is some kind of system in which full nodes are rewarded as running a full node will be much more expensive when adoption gets much higher then it is now.
legendary
Activity: 1890
Merit: 1072
Ian Knowles - CIYAM Lead Developer
August 07, 2014, 07:11:29 PM
#24
Here is an idea that could have some potential - there has been discussion (by Peter R in particular) about tools for creating a "snapshot" of all UTXOs for a given date range (for usage in clone coins that will end up with the equivalent distribution that BTC had at the time of the snapshot).

Offering such a service (which requires a full block chain) could be a way to "earn some extra BTC by running a full node" (and perhaps there are other such services that could be useful - such as say statistical reports).
member
Activity: 112
Merit: 10
August 07, 2014, 05:33:00 PM
#23
Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalksearch.org/topic/m.8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.

While I like the idea, this doesn't reward someone just for being a full node. They have to do something additional.

I understand your point of view and agree with you.
Let me use a simile:
Most large shopping centers (at least in south Florida) provide free parking for their customers. The parking lot space service is obviously not free and someone absorb the cost (usually ownership cost and maintenance community fees).
Change this traditional free parking in most shopping center and charge the customer is not a good idea (it will create additional problems in the future).
- One solution could be accept donations at the shopping center entrance (maybe with an amazing sign with a lovely speech suggesting a donation).
- Another solution could be an optional paid service like valet parking or premium parking slots, (equivalent to premium bandwidth to download and perform the blockchain operations). I'm confident that some bitcoin users will paid a reasonable fee to have access to faster full nodes.
- Another real solution is to offer other related paid services like rent electric chair or high capacity shopping carts, sell umbrellas when is raining, etc. (equivalent to perform the Coinjoin service). At the end you will have the blockchain in the Coinjoin processor and your node will be idle until the deterministic selection will activate your node to execute the coinjoin transaction.


I'm not advocating anything that would force anyone into paying for full nodes. But some people would like to donate to full node operators, and I would like it to be possible to do that with full faith that you are actually donating to a full node operator. It simply is not right now.
As for coinjoin nodes, that's a separate topic, and it may or may not be implemented (regardless of our advocating for or against it in this thread).
newbie
Activity: 5
Merit: 0
August 07, 2014, 04:35:09 PM
#22
Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalksearch.org/topic/m.8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.

While I like the idea, this doesn't reward someone just for being a full node. They have to do something additional.

I understand your point of view and agree with you.
Let me use a simile:
Most large shopping centers (at least in south Florida) provide free parking for their customers. The parking lot space service is obviously not free and someone absorb the cost (usually ownership cost and maintenance community fees).
Change this traditional free parking in most shopping center and charge the customer is not a good idea (it will create additional problems in the future).
- One solution could be accept donations at the shopping center entrance (maybe with an amazing sign with a lovely speech suggesting a donation).
- Another solution could be an optional paid service like valet parking or premium parking slots, (equivalent to premium bandwidth to download and perform the blockchain operations). I'm confident that some bitcoin users will paid a reasonable fee to have access to faster full nodes.
- Another real solution is to offer other related paid services like rent electric chair or high capacity shopping carts, sell umbrellas when is raining, etc. (equivalent to perform the Coinjoin service). At the end you will have the blockchain in the Coinjoin processor and your node will be idle until the deterministic selection will activate your node to execute the coinjoin transaction.
member
Activity: 112
Merit: 10
August 07, 2014, 04:04:07 PM
#21
Well, if you're setting up 1000 full nodes then you're doing a lot to help the network, so I'd say you'd deserve a good chunk of donations (we're not trying to force anyone to donate, just allow anyone to prove that a full node is associated with a specific address).
1000 nodes run by one party is very harmful to the network compared to just running one system with more capacity, consolidating node control like that reduces the diversity of voices available to other hosts. Done maliciously it would be called a sybil, done innocently its just a waste.

Fair, though I know I just run fullnodes on computers or servers I have anyway, as a thing it does on the side.
That honestly sounds like a bigger problem than a 51% attack, since it would be easier.
member
Activity: 112
Merit: 10
August 07, 2014, 04:01:34 PM
#20
Quote
ASICs can't be full nodes.
http://en.wikipedia.org/wiki/Application-specific_integrated_circuit

This means that this device will be very cheap (to increase my profits) and perform only one simple task - connects to a network and simulates fullnode. NOTHING MORE.

Quote
BUT - Go ahead, by all means try to make a full node ASIC. You'll be doing a lot to support the network.
No. It will be "checking transactions and broadcasting them to another clients" by 1 fullnode (may be). But my earnings will be 1000x

Quote
And if what you're saying is an ASIC to spoof the proof of full node system -- well if it's spoofable in that way it won't be a good system, and nobody will trust it.
How will you check whether I have 1000 fullnodes or one "fake device" which is only able to resend transactions to peers?

I think we're on the same page. What I've been trying to say is, I do not know how to solve these problems. Neither does anyone else, and they might not even be solvable. This is why no proof-of-fullnode system exists.

A good proof of fullnode system would have to allow you to prove the following things:
- You have a full copy of the blockchain (if you can't prove this, you can do what you suggested and just relay transactions)
- You are accepting incoming bitcoin messages (if you can't prove this, you might be putting a strain on the network because you're draining the resources of full nodes but not providing a service to non-fullnodes)
- You are using that copy of the blockchain to validate any transaction and block you receive, and send it on to anyone who asks for it (if you can't prove this, you can have a copy of the blockchain and do nothing with it - not contributing bandwidth)
- You can only associate ONE address with each time you satisfy all these conditions (the same way a miner can only associate ONE address with each coinbase transaction) (if you can't do this, you're susceptible to exactly what you described - multiplying your profits arbitrarily by pretending you're running more nodes when you're actually just running one)
staff
Activity: 4172
Merit: 8419
August 07, 2014, 03:53:14 PM
#19
Well, if you're setting up 1000 full nodes then you're doing a lot to help the network, so I'd say you'd deserve a good chunk of donations (we're not trying to force anyone to donate, just allow anyone to prove that a full node is associated with a specific address).
1000 nodes run by one party is very harmful to the network compared to just running one system with more capacity, consolidating node control like that reduces the diversity of voices available to other hosts. Done maliciously it would be called a sybil, done innocently its just a waste.
legendary
Activity: 1260
Merit: 1019
August 07, 2014, 03:43:47 PM
#18
Quote
ASICs can't be full nodes.
http://en.wikipedia.org/wiki/Application-specific_integrated_circuit

This means that this device will be very cheap (to increase my profits) and perform only one simple task - connects to a network and simulates fullnode. NOTHING MORE.

Quote
BUT - Go ahead, by all means try to make a full node ASIC. You'll be doing a lot to support the network.
No. It will be "checking transactions and broadcasting them to another clients" by 1 fullnode (may be). But my earnings will be 1000x

Quote
And if what you're saying is an ASIC to spoof the proof of full node system -- well if it's spoofable in that way it won't be a good system, and nobody will trust it.
How will you check whether I have 1000 fullnodes or one "fake device" which is only able to resend transactions to peers?
member
Activity: 112
Merit: 10
August 07, 2014, 03:43:37 PM
#17
I would guess the biggest problem you'd face with such an idea is "just how do you determine that someone has a full node"?

This would not be a trivial thing to do as presumably it would require some sort of separate consensus algorithm (i.e. a "proof of storage" type idea).

i think...
thats not a big problem as we now thats easy to implement on it .

How would you implement it?
newbie
Activity: 12
Merit: 0
August 07, 2014, 03:36:09 PM
#16
I would guess the biggest problem you'd face with such an idea is "just how do you determine that someone has a full node"?

This would not be a trivial thing to do as presumably it would require some sort of separate consensus algorithm (i.e. a "proof of storage" type idea).

i think...
thats not a big problem as we now thats easy to implement on it .
member
Activity: 112
Merit: 10
August 07, 2014, 03:34:52 PM
#15
Quote
Well, if you're setting up 1000 full nodes...
No. I will invent asic for it. But you will see 1000 nodes

ASICs can't be full nodes. ASICs are really good at performing one operation quickly. Put in the need to store data, and ASICs are out of the question.

BUT - Go ahead, by all means try to make a full node ASIC. You'll be doing a lot to support the network.

And if what you're saying is an ASIC to spoof the proof of full node system -- well if it's spoofable in that way it won't be a good system, and nobody will trust it.

EDIT for your edit:
There is "proof-of-work"
But there is no "proof-of-fullnode" in bitcoin protocol

I am well aware of that. I am not advocating adding proof-of-fullnode to the protocol.
I'm advocating creating proof-of-fullnode as a separate thing, so that anyone can validate a one-to-one mapping of address to full node. Then anyone would have the option of donating to support the network. Most people won't, but it will be possible to do so with confidence.
No, that's not easy. No, I don't know how to do it. No, I don't know if it's possible. But it would be nice.
legendary
Activity: 1260
Merit: 1019
August 07, 2014, 03:30:01 PM
#14
Quote
Well, if you're setting up 1000 full nodes...
No. I will invent asic for it. But you will see 1000 nodes.
There is "proof-of-work"
But there is no "proof-of-fullnode" in bitcoin protocol
member
Activity: 112
Merit: 10
August 07, 2014, 03:27:44 PM
#13
Lets imagine that I have a profit running full node, OK?

My next thing will be: setup 100 nodes and increase my profits 100 times
What next? setup 1000 nodes... Etc... Etc

This is economically impossible

Well, if you're setting up 1000 full nodes then you're doing a lot to help the network, so I'd say you'd deserve a good chunk of donations (we're not trying to force anyone to donate, just allow anyone to prove that a full node is associated with a specific address). Remember that 1000 full nodes requires (currently) 20 TB of hard drive space, plus probably several terabit per second of bandwidth, maybe even a petabit, plus 1000 rounds of checking each new block and each transaction.

If the system that proves you're running a full node allows you to claim the same node several times, it's not a good proof system. That's exactly what someone trying to make such a system would have to solve (and why such a system hasn't been made yet).
legendary
Activity: 1260
Merit: 1019
August 07, 2014, 03:20:23 PM
#12
Lets imagine that I have a profit running full node, OK?

My next thing will be: setup 100 nodes and increase my profits 100 times
What next? setup 1000 nodes... Etc... Etc

This is economically impossible
member
Activity: 112
Merit: 10
August 07, 2014, 03:14:43 PM
#11
Quote
Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.
OK, so fullnode == miner node (solo or pool)
Miners do have their fees. What else can the rest network do for them? Only increasing fees. Nothing more.


You can run a full node without mining.

Miners:
- Have the whole block chain. (miners in a pool might not, but the operator certainly does)
- Act as transaction validating servers (if you read the whitepaper, that's how it's described), thus supporting the network.
- The bitcoin protocol is designed to identify and reward them - their address is in the coinbase transaction of each block, therefore
- Are paid for contributing their resources (electricity, hardware costs, to a lesser extent hard drive space) to the network.
Full nodes:
- Have the whole block chain
- Act as messengers, thus supporting the network.
- The bitcoin protocol was created assuming everybody would be a full node, so it is not possible on a protocol level to identify and reward them, therefore
- Are all volunteers, contributing their resources (bandwidth, hard drive space, to a lesser extent electricity) to the network for absolutely nothing.

Note that a full node can mine, and a mining pool operator or solo miner can run a full node. But it is definitely possible to be one but not the other.
legendary
Activity: 1260
Merit: 1019
August 07, 2014, 02:59:05 PM
#10
Quote
Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.
OK, so fullnode == miner node (solo or pool)
Miners do have their fees. What else can the rest network do for them? Only increasing fees. Nothing more.

Quote
this doesn't reward someone just for being a full node.
no one will pay another person just for wasting energy
member
Activity: 112
Merit: 10
August 07, 2014, 02:43:01 PM
#9
It is possible to slightly change the User-Agent string
Right now the string is something like: "/Satoshi:0.9.1/" or "/Satoshi:0.8.5/"
List of nodes is here https://getaddr.bitnodes.io/nodes/1407404879/?q=United%20States

Just change your bitcoind and set this string to "/Satoshi:0.9.1-Donate-1MyBitcoinAddressForDonations/"
(this can be even configurable option in .conf file)
Everyone will see that the node is really exists and connected

In fact, I do not think that fullnode owners should ask donations. The rest of network is obliged nothing to them.



Nope. Anyone can do that, even someone not running a full node. You can't guarantee that they actually have the whole blockchain.

Unfortunately the "good feeling" do not pay the bills.  Wink

The donation is a great idea, it's just the "proof of storage" part that would get tricky and to get people to appreciate the effort, of other doing it, for them.

But you could get a generated list on say "Blockchain" and people could be encouraged to participate, by having a monthly "Lottery" where a portion of the donations, goes towards a single pot, and you get people winning that "pot" each month.

Just a thought.  Grin

Still not proof. What the OP seems to want is a way to prove, in a way that doesn't require trusting a third party, that an address is associated with a full node. (Note op never said address explicitly, but I don't know where else you'd even start)

Perhaps nodes could have an optional donation address config option. You could connect to a node and ask for its donation address. People who want to donate to nodes would have a piece of software that monitors a node or number of nodes uptime and if it is satisfactory it will request their donation addresses and send a donation.

Wouldn't be too difficult to implement, though I'm not sure how many people would be willing to donate.

Anyone could pretend to be a full node, but actually just be relaying messages from an actual full node, man-in-the-middle style.

Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalksearch.org/topic/m.8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.

While I like the idea, this doesn't reward someone just for being a full node. They have to do something additional.
newbie
Activity: 5
Merit: 0
August 07, 2014, 09:34:15 AM
#8
Actually you can receive an indirect income by providing alternate services to Bitcoin network.
Check https://bitcointalksearch.org/topic/m.8214655.
This week will be more information about how the node works and potential additional services.

The basic Coinjoin service doesn't require a large bandwidth connection, but if you connect the node to a good internet connection you can provide the blockchain network service and get additional income with a better ROI than a GPU rig miner. You will be able to pay the basic bills (host, internet access, etc) and get extra bitcoins to invest and consolidate the Bitcoin network service.



legendary
Activity: 1260
Merit: 1019
August 07, 2014, 05:58:10 AM
#7
It is possible to slightly change the User-Agent string
Right now the string is something like: "/Satoshi:0.9.1/" or "/Satoshi:0.8.5/"
List of nodes is here https://getaddr.bitnodes.io/nodes/1407404879/?q=United%20States

Just change your bitcoind and set this string to "/Satoshi:0.9.1-Donate-1MyBitcoinAddressForDonations/"
(this can be even configurable option in .conf file)
Everyone will see that the node is really exists and connected

In fact, I do not think that fullnode owners should ask donations. The rest of network is obliged nothing to them.

Pages:
Jump to: