Bitcoin Forum
July 02, 2024, 05:15:02 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 [181] 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 ... 590 »
3601  Bitcoin / Development & Technical Discussion / Re: Block size increase proposal: Consensus based on the mempool on: April 02, 2017, 02:32:45 PM
I'm not sure that we need it. How does it related to the topic? My proposal does not imply that all existing nodes relay transactions. Similarly, miners does not imply that all existing nodes relay blocks.
Your proposal requires that all nodes receive and store transactions in order to verify that a block contains "desireable" transactions. Yet blocksonly nodes do not receive and store transactions, thus they cannot receive, verify, and relay blocks.

Even if you don't call blocksonly nodes full nodes, you are still preventing people who want to have the security of a full node (and they are still getting that with a blocksonly node) but don't have enough bandwidth for a normal full node from being able to use their wallets.

Good point. This problem can be solved in different ways.
First of all, nodes aren't required to keep full transactions (TxID will be enough). Also we don't need to keep them forever. I propose that nodes can forget about transactions received over an hour ago. Miners should be careful to include these transactions in block.
Then you run into other issues like people paying too low of a transaction fee and thus getting their transaction evicted after the hour is up.

This parameter is a consensus rule:
  full nodes should temporarily reject* blocks that consists more than 5% of transactions considered as undesirable (being in the mempool less than 15 seconds | with a fee below 20 satoshies/byte)
What if a transaction was in a miner's mempool for over 15 seconds but not in a node's mempool for 15 seconds (due to latency)? What if I just restarted my node (so it's mempool is now empty) and then I receive a block? Do I reject it? I don't have any of the transactions in the block in my mempool. This time rule assumes that mempools will be in sync with each other, and they simply are not.

I know you are going to say "miners will adjust their delay" but miners can't just "adjust their delay" to accommodate every node. Again, what if a new node just started up (which miners won't know about anyways) and has no transactions in its mempool? How do you handle that?

All honest nodes will reject it because the best chain is selected only when it meets the consensus rules.
...
How will it happen?
...
How will it happen?
Again, SPV miners cause an issue here, and malicious miners. SPV miners don't verify blocks before they begin building upon them. Given that a majority of the hashrate does this (because mining pools) combined with the malicious miner, they could, with some luck, find the 3 blocks necessary in order to make this invalid block accepted. The blocks would be found before the SPV miners have finished verifying that the invalid block is in fact invalid, and once the three blocks are found, that invalid block is now valid. That is how it would happen.

What's wrong with SPV mining?
SPV mining is also called validationless mining. SPV miners are building blocks on top of blocks which they have not yet verified to be valid. This is a problem because you can end up with a situation where SPV miners have extended a blockchain on top of the invalid block enough so that the invalid block would be considered valid under your proposal. SPV miners currently consist of a majority of the hashrate, and having SPV miners extend on an invalid block has happened in the past.
3602  Bitcoin / Bitcoin Technical Support / Re: i have 2 pending transacctions to receive on: April 02, 2017, 04:32:04 AM
1AvuhUvXDUwJbYS59dzutF6eh7DfbEMnXs receiving wallet
There are no transactions to this address. Are you sure this is correct? Are you able to have the sender rebroadcast the transactions? It is likely that they have been forgotten by nearly all nodes over the course of the week. Can you please also post the transaction ids of your transactions, not just the addresses involved.
3603  Other / Beginners & Help / Re: I found a Bitcoin Miner app in Windows 10 and I need some help for a custom pool on: April 01, 2017, 11:15:19 PM
If you want to legitimately mine Bitcoin, you will need very special hardware called ASICs. You will make basically 0 money from trying to CPU or GPU mine, which is what this software appears to be doing. Furthermore, there are far better mining software that exist that have more functionality and are probably more efficient but just don't have a GUI. If you actually want to mine Bitcoin, I suggest that you research ASICs and learn how to use the command line in order to run actual mining software.
3604  Bitcoin / Development & Technical Discussion / Re: Block size increase proposal: Consensus based on the mempool on: April 01, 2017, 11:11:15 PM
These people aren't running full nodes.
Yes they are. A full node is a node which fully validates every single block and transaction that it receives. Blocksonly nodes are still full nodes, they fully validate every single block and transaction it receives. In fact, as an outside observer, you would absolutely not be able to tell whether someone is in blocksonly mode or not. There is no indication that they are not just a regular node.

They would not be able to temporarily reject undesirable block but still can validate it.
In a good way this node should be considered as misbehaving node unless it reported to all connected nodes that have an intention to evict transactions.
Many people run blocksonly nodes because it significantly reduces the bandwidth requirements for running a full node. You would completely make it impossible for people to run full nodes in a low bandwidth mode such as blocksonly. This is not something that we want to do as some people may not have the resources to run a non-blocksonly full node but also want the security and privacy afforded by a full node.

I don't assume that. I've proposed to make them required to keep and relay all transactions.
How do you enforce that? How do you prevent someone from making a ton of super low fee transactions just to spam up mempools and take up more memory, at some point causing nodes to crash? If you require every single transaction to be kept, then you open up an entirely new attack vector.

I don't assume that. Miners can adjust their delay parameter as much as needed.
What the hell does that mean? As you described it earlier, the "delay parameter" is a consensus rule. You can't just "adjust a consensus rule" as you are proposing without causing invalid blocks.

minTxRelayFee parameter becomes part of the consensus and cannot be higher than 20 satoshies/byte
How do you enforce that? minTxRelayFee will still be part of node policy. How do you enforce that the minTxRelayFee is no higher than 20 sat/byte. Furthermore, suppose someone were to spam up the mempool with transactions that are 20 sat/byte so much that nodes crash because the mempools are too big. Now what? Additionally, Bitcoin Core currently implements a floating minTxRelayFee because it prevents such crashes. It limits the mempool to a certain size and bumps up the minrelayfee as it gets fuller.

Not invalid, just undesirable.
Suppose Miner A was malicious and got lucky. They made a block which instead of awarding them 12.5 BTC as the subsidy, awarded them 125000000000 BTC as the subsidy. Now what? Everyone is just going to follow along that chain and let that miner have the 125000000000 BTC because he just got lucky and other miners were SPV mining?

No. The worst possible thing that could occur is acceptance the undesirable block consisting of spam.
I'm not talking about spam. I'm talking about a miner who awards themselves a massive amount of Bitcoin in the block subsidy. Or creates a bunch of transactions which spends UTXOs that they normally are not allowed to spend thus stealing coins.

The worst possible thing that could occur is acceptance the block consisting of spam. But nobody will mine on top of invalid (or undesirable) blocks unless 51% attack is performed...
With SPV mining, a 51% attack is not necessary. Forks have happened before where SPV miners (which consist of >51% of the network as most large pools do this) have mined on top of invalid blocks and in fact made that chain longer than the valid chain until the pool operators intervened and switched the pool back to the valid chain.

Why do you think so? What about 1MB block size limit rule?
The block size limit is a consensus rule. A standardness rule applies to transactions, and is defined by the IsStandard function in the Bitcoin Core source code. That standardness rules are not the same as consensus rules is not just something I think, but is by definition a local node policy, as defined by the reference implementation. There is no such thing as a standard block, only that there are non-standard transactions, which can still be valid and will be accepted by all full nodes if included in a block.

If node violates some mandatory rule and for example sets minTxRelayFee parameter to 30 sat/byte it should be considered as misbehaving node, unless it reported to all connected nodes that have an intention to evict transactions.
How would you know? How would you enforce this? Local node policies (including standardness rules) are not broadcast among nodes and even if they were, can be easily faked.

It is enough to always come to consensus. Miners just need to adjust their delay parameter.
As I said earlier, standardness rules are not the same as consensus rules.

My proposal assumes hard fork, so miners/pools/SPV servers will have to update their soft.
Regardless of what type of fork this is, SPV mining will still happen and is still a problem. Those two are completely unrelated things.

No. The worst possible thing that could occur is acceptance the undesirable block consisting of spam.
No, the worst possible thing that could happen is the acceptance of a completely invalid block. Except under your proposal, such an invalid block can and will be accepted.
3605  Other / Beginners & Help / Re: I found a Bitcoin Miner app in Windows 10 and I need some help for a custom pool on: April 01, 2017, 10:45:06 PM
What is the application? Can you give us a link to where you found it?

I highly suggest that you be very very careful with this. If you cannot find it listed anywhere on this forum, I highly suggest that you delete the app immediately and scan your computer for viruses. Many viruses will masquerade as Bitcoin mining software in order to steal the private keys for your Bitcoin or passwords to any Bitcoin wallets.
3606  Bitcoin / Development & Technical Discussion / Re: Block size increase proposal: Consensus based on the mempool on: April 01, 2017, 07:16:26 PM
Obviously, miners as well as other full nodes must relay all standard transactions before including them into the block. Do you think that small transaction can propagate over the network 5 seconds slower than full block does? Not a problem - miners can adjust this delay as much as needed.
But then how do you know that a transaction in a block was actually relayed beforehand? There is no universal mempool, the mempool varies from node to node. Furthermore, you are assuming that every node has a mempool, but people can run nodes that are blocks only. They would not be able to validate a block under this rule. You are also assuming that all nodes will keep all transactions and receive them at roughly the same time. However you cannot assume that. Many nodes will evict transactions or not accept them if they violate local node policy (which does not have to match the node policies of anyone else). For example, there could be a race condition where a bunch of low fee transactions are evicted just before a block is received by the node so this evicted transactions are no longer in the mempool and the block considered invalid. Furthermore, a newly started node will fail to properly sync because it would consider all blocks invalid (after all, it still has to validate consensus rules) because it has none of the transactions in those blocks in its mempool. A block that is found very shortly after a node starts up would also be rejected as that node's mempool has not filled up with transactions yet.

Reject invalid block "A", and therefore reject valid block "B". But if afterwards it also receives valid block "C" which builds on block "B", the chain becomes valid. But this situation is possible only in case of 51% attack because honest miners will do their work on block preceding "A".
Suppose the miner who found A is super lucky, and found B, then C very quickly. Now all miners will be using the chain including the invalid block, and that invalid block could be maliciously crafted to create transactions which allows the miner who found the block to spend the Bitcoin.

You are also assuming that all miners are fully validating every single block before they build on top of it. Unfortunately, we know for a fact that this is absolutely not the case. Many miners are SPV mining; they will begin mining on top of a block before it is fully validated. With SPV mining, it is very possible that miners will end up mining on top of an invalid block and thus extending the chain for that block and find enough blocks so that its is valid.

I suggest to define which transactions should be considered as standard and tighten the protocol rules to make nodes required to relay all these transactions.
That does nothing to help with figuring out what transactions are in nodes' mempools. Standardness  rules are not consensus rules, they are local node policy rules. Anyone can change their local node policy. Even so, there are transactions which are standard, but still rejected by other node policies. Relying on standardness rules is not enough to say that you know what transactions are in everyone's mempools.

Ok. You just misunderstood me. I've changed "rejected blocks potentially could be included" to "temporary rejected blocks ..." in my first post.
Actually my solution doesn't solve the 51% attack problem. But of course the best chain is selected only when it meets the consensus rules.
The miners are then redefining the consensus rules still. They can do so every 3 blocks; every 3 blocks can basically have whatever consensus rules it wants then so long as everyone mines a block on top of the invalid one, which is entirely possible given that many miners do SPV mining.

I don't think that full nodes have any significant power. But they can try to continue to reject undesirable blocks more than after 2-3 following blocks.
But miners shouldn't have full and absolute power over everything. Full nodes prevent miners from changing the consensus rules willy-nilly. They provide an incentive for miners to not produce invalid blocks. With your proposal, they now have an incentive to produce invalid blocks because in that invalid block they can make a ton of money and have a fairly high likelihood of making that invalid block a valid accepted block.
3607  Bitcoin / Development & Technical Discussion / Re: Block size increase proposal: Consensus based on mempool on: April 01, 2017, 04:12:31 PM
* Anyway, the best chain is selected by amount of work in it. Thus rejected blocks potentially could be included into the blockchain, but only if most of miners (>50%) break the rules and accept them. Therefore, during the evaluation of PoW for a chain, nodes shouldn't count these blocks until they are followed by two or three valid blocks. For the same reason, it makes sense to limit one-time increase of block size in comparison to the average size of the previous several blocks, say not more than twice.
No. This is a horrible idea. It gives miners absolute control over the consensus rules. The consensus rules will stop being consensus rules and suddenly become Miners Want This Rules. Making such a drastic change will allow miners to change whatever rules whenever they want. That is completely antithetical to Bitcoin and completely defeats the purpose of full nodes. The point of running a full node is to ensure that miners follow the consensus rules, not just to have the entire blockchain. Your proposal completely removes that check on miners' power.

By your proposal, miners could decide that they can make a transaction which spends all of the Bitcoin back to themselves, put it in a block, and make a ton of money. Or miners can remove the block subsidy schedule and just make as much Bitcoin as they want out of thin air, and everyone will follow. This idea is just plain stupid and simply hands over all control of Bitcoin to the miners, instead of splitting it between users and miners.
3608  Other / Meta / Re: funny badges: What are your favorite? on: April 01, 2017, 03:11:08 AM
Shame they done save in archive.is  Tongue  Cool  Grin
They only appear when you are logged in.
3609  Other / Meta / Re: Has BitcoinTalk been hacked? SERIOUSLY!!! ALL USERS INFECTED!!! on: April 01, 2017, 01:29:47 AM
What is forum time?
Forum time is UTC.
3610  Other / Meta / Re: Badges on: April 01, 2017, 12:09:24 AM
I see we have an April's fools joke, and an ETH related one... I wonder why... lol.
Not just ETH, look more carefully at everyone's badges  Wink
3611  Bitcoin / Armory / Re: Database size and do I really need it? on: March 31, 2017, 11:59:26 PM
Hello,

Installed Armory - going thru initial setup. It's downloading the bitcoin database which, of course, is huge.

Can anyone give me an idea just how huge I should expect. It's 60GB so far!
The blockchain is ~110 GB now. Bitcoin Core will build its own databases (Bitcoin Core is the full node behind Armory) and Armory also has its own databases. In total, there will be an additional ~5 GB of databases with the blockchain.

Secondly, I'm only interested in doing just one transaction - no interest in mining, etc. Do I really need to download
all these bitcoin transactions? Or can I just use a "standalone" like Electrum's?
Yes, you will need to download the entire blockchain. Armory and Bitcoin Core are full node wallets, they require the entire blockchain. This provides the best security and privacy. SPV wallets like Electrum severely risk your privacy, and potentially the security of your Bitcoin.
3612  Bitcoin / Bitcoin Technical Support / Re: Transaction not Confirmed on: March 31, 2017, 09:49:39 PM
It is possible to rebroadcistng the transaciton if i own just normall blockchain.info account/wallet?
Yes. Anyone can rebroadcast a transaction. You can get the raw hex of the transaction by appending ?format=hex to the blockchain.info URL for the transaction. Then copy and paste the raw transaction to a broadcast utility like https://blockchain.info/pushtx
3613  Bitcoin / Armory / Re: 0.96 preliminary testing on: March 31, 2017, 09:31:13 PM
No exe's in the test branch?
Binaries are not committed to the source code, they are not source code. You can can get the 0.96 testing binaries from https://github.com/goatpig/BitcoinArmory/releases/tag/v0.95.99.1-testing
3614  Bitcoin / Bitcoin Technical Support / Re: Transaction not Confirmed on: March 31, 2017, 09:30:05 PM
Your transaction spends from an unconfirmed transaction, which spends from another unconfirmed transaction, and so on and so forth until this transaction: https://blockchain.info/tx/7a39996d855d0db95b886a6d4bd2a855e5fe7ded0fb888ddb21a7a7a185e4b0b.

Your transaction cannot confirm until all of the unconfirmed transaction it depends on confirm as well. As for why this transaction at the top of the unconfirmed chain has not confirmed yet, it probably has to do with poor propagation as I cannot find it on other block explorers or on my own node. To make it confirm faster, you will need to remind the network of all of the unconfirmed transactions in the chain by rebroadcasting the transactions.
3615  Bitcoin / Armory / Re: Armory 0.96 testing builds on: March 31, 2017, 08:10:20 PM
The SegWit address type is locked to testnet only.

Are you referring to BIP 142? If so, GMax says it's abandoned.

In any event, thanks for getting this out to everyone! Looking forward to everybody's feedback.
The segwit address type is the p2sh nested segwit addresses.
3616  Bitcoin / Armory / Re: Fixing the "transaction timed out"/"transaction broadcast failed" issue on: March 31, 2017, 12:54:10 PM
Is this happening with the Linux versions of 0.95.1 and 0.14? I am yet to try using them together.
Yes. AFAICT this is an issue with all platforms, not just with one OS.
3617  Bitcoin / Development & Technical Discussion / Re: Opening LN channel with zero balance? on: March 31, 2017, 04:35:27 AM
My scenario, onchain txses: channel opening.
Your scenario, onchain txses: car purchase, channel opening.
Possible drawbacks in my scenario:
1) Alice can't pay for anything with the new channel before she receives the first (after the purchase) salary.
2) If Bob doesn't offer intermediary services or if he charges incompetitive fee for conducting payments, it's better to open a channel not with Bob, but with a competitive hub and route the payment to Bob through the hub. If Bob's channel capacity with the network isn't enough, he can open another channel with a hub.
So, what do you mean?
Over the long term, there will be more on chain transactions and more costs with your scenario.

In the US, the average car is ~$25,000 and the median household income is ~$50,000 per year.

Under your scenario:
Alice opens the channel with the Car dealership (1 on chain tx). In order for her employer to pay Alice through the car dealer, they would need to have a payment channel with more than $50,000 to pay Alice for the year (which I find unlikely), or they will need to load their payment channel to match Alice's salary (another on chain tx). Now in order for Alice to receive her entire $50,000 salary, she (or the car dealer) will need to close a payment channel (another on chain tx), load up Alice's channel (another on chain tx), and probably open up another channel with whoever they closed with (another on chain tx) In one year, Alice will have made or required to be made 5 on chain txs. Furthermore, the car dealer is likely to charge a fee for being a third party between Alice and the employer.

Under my scenario:
Alice sends 1 on chain transaction for the car. She opens a payment channel with her employer, who loads into the channel however much they expect to pay her that year, so $50,000 (another on chain transaction). At the end of the year, the channel is loaded with her next year's salary (another on chain transaction). In total, she makes only 3 on chain transactions, and does not need to pay a third party for being a hub. Like with the Car dealer, Alice can buy things by using her employer as a hub, but because the channel already has her entire yearly salary there, no on chain txs need to be made to load any more money into that channel (unless she is spending from here savings).


Lightning is fairly useless for big one time purchases. It is far more efficient to use just a normal on chain transaction to make a big purchase like a car or a house.

A far more likely scenario for one party to put in 0 funds into a channel is for an employer to be paying an employee.
3618  Bitcoin / Bitcoin Discussion / Re: Can someone explain this? on: March 31, 2017, 04:04:50 AM
For Segwit, read the BIPs: 141, 143, and 144.

For BU, read BUIP 1
3619  Bitcoin / Bitcoin Technical Support / Re: Bitcoin sync always behind on: March 31, 2017, 03:52:17 AM
You will need to reindex the blockchain. Start Bitcoin Core with the -reindex option. Note that this is a command line option for when you start Bitcoin Core, NOT something you enter into Core's debug console. For specific instructions on how to start Core with -reindex, we need to know what OS you are using.
3620  Bitcoin / Armory / Re: Armory freezes and no error messages when trying to send transaction on: March 31, 2017, 03:39:59 AM
there is a large amount of text within it, what bit should i be posting?
As much as possible, although you can really omit anything that is like "log file opened ... armorycpplog.txt" as that log file is no longer used.
Pages: « 1 ... 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 [181] 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 ... 590 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!