Bitcoin Forum
May 06, 2024, 09:05:10 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [110] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 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 ... 195 »
2181  Bitcoin / Bitcoin Discussion / Re: What happens if someone starts another blockchain or cryptocurrency? on: March 30, 2012, 07:35:14 PM
For those unfamiliar with economics, the best analogy might be to those lay physicists who insist on expounding on their method for cold fusion, but are not familiar with basic mathematics.

There is no point in debating anything with you people because you explicitly reject the use of rigorous, logical arguments which have become the standard toolset of economics. You also are averse to the use of mathematical theory and statistical evidence. Instead you prefer a faith-based approach.

LOL.  The pot calling the other pot black.  Your tea leaves and sheep's entrails may be fancier than his, but don't pretend that there is some science going on here.

2182  Bitcoin / Development & Technical Discussion / Re: Miner advantage for empty blocks ? on: March 30, 2012, 06:32:43 PM
Ok, I finally got it. Sure you can play tricks with the previous block hash, but you'll never get the right merkle root. The time stamp is tricky too, but the merkle root completely nails it. Nothing to see here, our mystery miner indeed does have lots of hashing power (and that satoshi chap thought of everything). Thanks for your corrections, will read more of the wiki next time...

Actually, the Merkle root is the easiest part.  All you need to do is never accept transactions into your block candidate and your Merkle root will always be valid, at least as long as the claimed subsidy isn't greater than the network's approved subsidy.

You can't create a future block because of the four things I listed earlier.

To generate a future block, you need to pick a random prevHash value to include in the header, and then wait until a real block comes in with an actual hash value that matches the one you picked.  Right now, each block has roughly a 1 in 2^203 of matching your chosen prevHash value.  By itself, this is much harder than merely finding a hash of the current block, which is about a 1 in 2^53 chance, and you still have to do that too.

Note: a 1 in 2^203 chance means never, ever, ever, not in billions of years, not before the sun burns out, not before the entire universe ends.  If "never" is good enough for you, you can stop reading right now, because it actually gets worse.

And then you need to guess when (to within a few hours) that block is going to come up, because you need to pick a timestamp before you start hashing, and you can't change it after.  So, 1 in 2^203 isn't bad enough, it also has to happen at the right time.

And then the subsidy you claim has to be less than or equal to the subsidy accepted by the network at that time.  If your timestamp is towards the end of a leap year, you'd better halve it, just to be safe.

But wait, there's more.  Your block header also must include the exact difficulty that the network expects when the block is to be accepted.  You can't cheat and go high, you have to get it exactly dead on.
2183  Bitcoin / Bitcoin Discussion / Re: A bit of nostalgia... How did you get your first Bitcoin? on: March 30, 2012, 04:18:21 PM
I got my first 0.08 BTC from the faucet.  It was supposed to be 0.02 BTC, but there was a bug that made it send four times.  Once I got my mining rig set up, like a week or two later, I sent it all back.
2184  Bitcoin / Development & Technical Discussion / Re: Miner advantage for empty blocks ? on: March 30, 2012, 01:12:19 AM
But the difficulty keeps coming down, right ? So by 2021 there aren't very many input hashes you're going to be faced with ? let's say you know any possible remaining input hash is going to be under 0x00000000000000000000000000000064, just for instance ? I can spend more than 100 times longer than you can if I start now based on empty blocks and you wait for the real transactions ? Or do I get scuppered by the timestamp which I have to guess ? Or something else ?
How can you start securing transactions now when you have no idea which transactions you need to secure? The whole point of mining is to pile calculations on top of the transactions. (And by "transactions" I mean every single transaction from the genesis block up to the ones in the block you're mining.)
The previous transactions are only secured via the hash of the block they are included in.  In other words, if you find a no-transaction block hash that includes a hash for a potential previous block, you could theoretically save it for use in the future, if a future block hash happens to match up with the potential previous block hash you based it on.

Thinking about it more though, I don't see it being feasible.  The ending hash would still have to be below the difficulty level in the future, and you'd spend just as much time trying to find a hash for a future block that doesn't exist yet (and may never exist) instead of just trying for the current block anyway.  You could pick whatever prior block hash you wanted, sure, but that doesn't make it any easier to find a "next block" that meets the current difficulty standards.  And even then, you have no assurance that a block matching that prior block hash will ever show up anyway.

Sorry, this won't work, for four reasons:  Timestamp.  Difficulty.  Previous hash.  Subsidy.
2185  Bitcoin / Development & Technical Discussion / Re: Miners that refuse to include transactions are becoming a problem on: March 29, 2012, 11:10:22 PM
Sorry if this is a re-post:

http://www.rdmag.com/News/Feeds/2012/03/general-sciences-bitcoin-currency-system-offers-negative-incentive/

Apparently this was presented at a convention in Spain back in July.
Is this the same concept as only mining blocks with no transactions?

No.  The article you link is just pointing out that nodes have no incentive to forward transactions.
2186  Bitcoin / Development & Technical Discussion / Re: Unable to open RC5 on: March 28, 2012, 08:35:55 PM
Oh, of course.  But deleting the address list and pretending that you are a brand new node so that you can use the bootstrap mechanisms seems like a better approach than failing, whether silently or with a notice.
2187  Bitcoin / Development & Technical Discussion / Re: Unable to open RC5 on: March 28, 2012, 05:53:58 PM
I would just delete addr.dat.  I don't have this problem, but I've had several corrupted address databases before, and deleting always works for me.

I would even suggest that as a good choice for the default behavior in the client.
2188  Bitcoin / Bitcoin Discussion / Re: What if someone bought up all the existing bitcoins? on: March 28, 2012, 05:36:22 PM
What if someone bought up all the existing dollars?

I think the Chinese are trying but they forget how good we are at printing.  One thing no country can do better than the US is print dollars (oh and sell weapons of mass destruction).

USD, the first homeopatic currency.

Certainly not the first, and quite likely not the last either.
2189  Bitcoin / Bitcoin Discussion / Re: What if someone bought up all the existing bitcoins? on: March 28, 2012, 01:46:54 PM
What if someone bought up all the existing dollars?
2190  Economy / Economics / Re: China Devaluing Currency on: March 27, 2012, 03:00:35 PM
Because China without devaluation is not sustainable. Nobody would want to buy what they produce.

That's true, for now.  The quality is not there.  But once it gets there, watch out.

Here's an example.  This is a submersible water pump I just bought.  It's tiny, the size of a power plug.  It cost $10, shipped.  It uses 4 watts (rated at 3, but they lie).  The one it's replacing, American-made, cost $50, is 5 times as large, and uses 40 watts.  For my application, the Chinese pump is half as effective, but at 1/10 the power usage and 1/6 the cost.  Where else can I get anything like this?  The Japanese would never produce this.  They're too busy building pumps the size of automobiles.


Slightly off topic, but where did you get that, and is it rated for continuous operation?
2191  Bitcoin / Development & Technical Discussion / Re: Improving Offline Wallets (i.e. cold-storage) on: March 27, 2012, 05:58:43 AM
The encoding you use for transaction proposals should be fine, and if not, there are plenty of other coding schemes available that work fine for serial or other pipes with in-band control.

It sounds like the pure-ASCII-ness of the tx proposals (TxDPs) will benefit me here, compared to coming up with a binary encoding scheme.  It will add a little more bloat, but guarantees I won't be sending any bytes that might trigger special character/command bytes by accident.  When you speak of XON and XOFF, I assume you are talking about "defining" such bytes, myself.  I will pick the XON, XOFF, TX_SEPARATOR, etc:  I will be defining this stupidly-simple protocol myself using only bytes across pins 2 and 3. ...?

How do the buffers work exactly?  If I do not execute a serialPort.read() or readline() in python, is the buffer accumulating the data being sent from the other system?  Does it only accumulate when I create the serial port object?  Perhaps I can clear the buffer the moment the user presses the Receive-Tx-Over-Serial button on the Sign-Transasction dialog.  Is there a "danger" in the buffer getting too big?

There are also several hardware flow control lines, RTS, CTS, DSR, DTR and CD.  Using them is better in some ways, but opens you up to strange cabling problems.  Historically, it has been hard to get everything to line up right, because both sides and the cable all need to follow the same scheme, and serial ports aren't nearly as standardized as one might think.  If you don't mind restricting yourself to only particular serial adapters/cables/devices, go for it.  Just keep in mind that they were designed for communication between a terminal and a modem

I'll stay away.  I don't mind doing a little extra work myself to add simplicity to device pairs with different OSes. 

Thanks for the reply.  It has been extremely useful!


For XON and XOFF, you'd be better off using 0x11 and 0x13.  ASCII doesn't actually define flow control codes, which is odd considering how complete it is in other areas, but ASCII does define four "Device Control" codes, and people usually use DC1 for XON and DC3 for XOFF.  Pretty much every UNIX terminal responds to them too, which is how you can stop scrolling with CTRL-S and resume with CTRL-Q.

There are other named control codes in ASCII that may or may not be useful to you.  There is an enquiry code, an acknowledge code, a negative acknowledge code, an idle code, a whole set of separator codes (unit, record, group, file) and codes to indicate the start of a header, the start of the text, the end of the text, and the end of transmission.  A bunch of them have special meaning in UNIX too, like EOT (end of transmission) is CTRL-D, which hangs up your terminal and logs off, ETX (end of text) is CTRL-C which breaks, and SUB (substitute) is CTRL-Z which substitutes a new prompt for the running job.

Way back in the bad old days, the 8250 UART chip itself had only a pair of 8 bit buffers.  To send, you'd write your byte to the Transmit Holding Register and then set a bit in the control register, then the UART Would take over, generating the start signal, shifting each bit to the line, calculating the parity internally and signaling it (if set), and writing the stop signal (if set).  When receiving, it would do the reverse, listen for the start signal, shift each bit in, check parity (if set) and check for the stop signal (if set), and copy the shift register to the Receiver Buffer Register, then set a bit in the control register, and if you were really, really lucky, trigger an interrupt so that you didn't have to poll the damn thing all the time.

If a second byte came in before you had read the first one, one of them was just lost.  I think it was the newer byte, but I don't remember.  It's been a while.  Sending had similar issues, but wasn't quite as bad, because the chip would copy the THR into the shift register, so you only had to wait for as long as that took before writing the next byte, instead of having to wait for up to 10 baud periods for it to shift out to the line driver.

Over time, better chips like the 16450 and 16550 came out which had FIFO buffers, so that they could store up like 16 or 64 bytes at a time.  These were buggy as shit too, if I recall, but still a huge improvement.

In a modern system, you should be able to ignore all of that.  You should be able to call the read function in any given high level language and have it either return data, return null, or block until something comes along.  The OS should handle the hardware and buffering properly so that your read calls return everything since either the last read or since the open call.  Any computer should be fast enough not to have to worry about anything like that.

For the relatively small messages that will be involved here, you shouldn't need to worry about the buffers growing unreasonably.  It shouldn't take more than a few seconds to send a transaction request.  At 9600 baud 8N1, which is really slow, you can get out nearly a kilobyte every second.

What you will have to do is respect flow control signals coming in from other devices.  Your first implementation will probably be between two modern boxes running Armory, both of which should be able to handle maximum speed serial lines without any problems.  Looks like newer USB serial adapters can go up to 921,600 bits per second, which is probably faster than the the connectors on the null modem can physically handle without the signal turning to mush, but is still pathetically slow by computer I/O standards.  But, at some point, someone is going to build a little Arduino or other embedded system that they will want to use as a secure offline physical wallet.  Depending on the hardware they use it could even be a bit banging interface where the CPU literally spins in a loop raising and lowering an I/O line at the right times to generate the signals.  If one of those sends 00010101, it might really mean it.
2192  Bitcoin / Pools / Re: [340GH/s] p2pool: Decentralized, DoS-resistant, Hop-Proof pool on: March 27, 2012, 04:51:53 AM
Not a problem at all.  The # of coinbases is fixed.  As tx volume grows the coinbase as % of block size will continue to fall. 
Um - so that's assuming the number of people mining P2Pool will never increase from the number it is today.

There is only one coinbase per block.  The number of outputs in the p2pool coinbase increases with the number of shares earned*, but the p2pool difficulty adjusts too, so the number of outputs won't grow without limit.  Also, there is a hard limit to the number of shares counted in p2pool.

* Actually, with the number of addresses to be paid.  There can be fewer addresses paid than shares, but never more.
2193  Bitcoin / Development & Technical Discussion / Re: Miner advantage for empty blocks ? on: March 27, 2012, 04:47:52 AM
Can you tell me how tx are included into a "mined" block, and how this prevents them from being tacked on after a valid header is found? In other words, why can't he have the botnet work on mining headers and then tack on the txs at a single relay point rather than relaying the txs to every node in the network?

If there's some technical reason why this can't be done, it should be relatively easy to fork him out.

The block is a list of transactions.  All of the transactions are hashed together in a tree structure called a Merkle tree.  The root hash of that tree depends on the hashes of all of the transactions.  The block header includes that hash.

So, the work that miners do depends on the whole thing.  If you add a transaction, part of the Merkle tree will change, which means the root hash will be different, which means the hash won't match any more, and no one will accept your block as valid.

Also, if he were including transactions, no one would care, from the bitcoin point of view.
2194  Bitcoin / Development & Technical Discussion / Re: Miner advantage for empty blocks ? on: March 27, 2012, 02:57:26 AM
He isn't including transactions in the blocks because that would require access to the entire block chain, which is around a gig today, and growing.  By not including transactions, he only needs the hash of the current latest block, which is a couple dozen bytes.  The middle ground is to process the transactions at a central point that has the block chain, and then distribute them to the bots, but that is vastly more traffic, and to/from a central point, which makes it much easier to detect.
2195  Bitcoin / Development & Technical Discussion / Re: Improving Offline Wallets (i.e. cold-storage) on: March 27, 2012, 02:47:02 AM
Ok, now this is where things get strange.

A working serial connection needs only three pins, TxD, RxD, and SG (ground).  If you want maximum compatibility, only use those.  If you need flow control, send XOFF to tell the other side to stop sending, and XON to tell the other side that it can send again.  If you use this system, you'll need to ensure that you don't send those bytes under other circumstances.  The encoding you use for transaction proposals should be fine, and if not, there are plenty of other coding schemes available that work fine for serial or other pipes with in-band control.

There are also several hardware flow control lines, RTS, CTS, DSR, DTR and CD.  Using them is better in some ways, but opens you up to strange cabling problems.  Historically, it has been hard to get everything to line up right, because both sides and the cable all need to follow the same scheme, and serial ports aren't nearly as standardized as one might think.  If you don't mind restricting yourself to only particular serial adapters/cables/devices, go for it.  Just keep in mind that they were designed for communication between a terminal and a modem

1) In Linux, look in /sys/class/tty/ .  They should show up as ttyS* and/or ttyUSB*

2) Lots of ways to do this.  You could just blindly dump the request out and see if you get a reply.  Or you could have each device listen all the time and send a SYN? poll every few seconds/minutes.  Or you could do something in between, and only attempt the handshake when you actually need to send.

3) Communication is totally bidirectional and non-interfering.  Both sides can talk at any time, but buffer space may be limited.  You should expect the need to support some sort of flow control, either XON/XOFF or RTS/CTS.

4) Yeah, pretty much.  The ASCII control characters are surprisingly useful for these things.

5) There probably isn't any point in having the node confirm before broadcasting, under most circumstances.  The wallet should be assuming that the serial device attached to it is hostile, so anything it sends should be safe to broadcast instantly.

6) I'm not sure if there is any signalling of ports in use, other than the open call failing.
2196  Bitcoin / Mining / Re: Wonder who this solominer is? 88.6.216.9 on: March 24, 2012, 04:36:02 AM
1) are not hashes supposed to include transactions? If they don't, I see a kind of faking work.
For the rest, I stay with my case.
Legit miners are those who invest to produce useful proper output. The others are not.

You pay a fee. 
If the fee is high enough then a miner includes the tx.
You have no right to have a tx in a block.

Where all of your nonsense breaks down is that there is no possible fee that would get this guy to include your transaction because he isn't even looking at transactions.

I'd be willing to bet $100 of my own real money that this is a botnet.  The evidence so far points seriously towards a botnet that operates by distributing only the bare minimum of information (the previous block's hash) to the nodes, which then generate a valid block themselves and try hashes.  If anyone can provide convincing proof that this is something else, I will mail the first person to do so a check or send them the equivalent in BTC.
2197  Bitcoin / Mining / Re: Wonder who this solominer is? 88.6.216.9 on: March 22, 2012, 01:53:22 PM
You really should have read the whole thread.  Or at least my posts in it, because everything you said is garbage and has been addressed repeatedly in the past.

I did. Every single post in this thread.
Maybe you should stop and try to comprehend what you are saying.

It's just moronic to ruin whole bitcoin network over a single miner not accepting TXs in their blocks. They are irrelevant. If they are attacking the network by doing this, you are just adding fuel to his attack on bitcoin.

If it were up to people who demand TX fees, demand rejection of no TX blocks etc. bitcoin would be dead, never gaining mass adoption.

You guys underestimate the free market, and the good will of people. People like gifting by nature, it usually benefits also the giver aswell. but in case of bitcoin TX fees you are also gaining something directly, a service. so most will include them (i've always included a TX fee myself).

You guys keep on insisting for stupid stuff to the detriment of bitcoin. (Those demanding action against MM by changing the protocol)

I actually comprehended what I said before I even said it.

If you had comprehended what I said, you'd have noticed that I proposed a decentralized rule to temporarily delay accepting blocks that are conspicuously missing the bulk of visible valid transactions on the network.

I have good reasons to think that this is a botnet (described earlier), but I don't really care who or what is doing this.  I do, however, care that we are paying him for work that he isn't doing.
2198  Bitcoin / Mining / Re: Wonder who this solominer is? 88.6.216.9 on: March 22, 2012, 03:42:12 AM
all the talks about pushing against this MM is just plain stupid. Stoppind 1tx blocks? Oh come on.
You guys are asking exactly what bitcoin is the opposite of: Central authority.

There is no proof of botnet, there is no proof of any ill doing what so ever. Every miner is free to choose to include TXs or not to. TX fees will adjust for that *EVENTUALLY*.
This could just be some HONEST miner who made a huge investment. This could be BFL testing all their singles, rigs etc. ie. for 800Ghash it takes "only" 1000 BFL Singles, or 40 mini rigs! *40*, not 40000, not 4000, but 40. The full blown rigs you would only need 16 of!
16*30k$ = 480k $. Hardly a sizeable investment in grand scale of things.

You really should have read the whole thread.  Or at least my posts in it, because everything you said is garbage and has been addressed repeatedly in the past.
2199  Bitcoin / Mining / Re: Wonder who this solominer is? 88.6.216.9 on: March 20, 2012, 01:52:53 PM
Also, to repeat my earlier question, could there be any significance to the out-of-order timestamps in blocks 171759 and 171760 other than indicating that the empty-block miner's nodes don't have synchronized clocks?

If it were an ordinary pool, it would indicate that there were too pools.

Why? Is there any reason pool members should be expected to have well-synchronized clocks?

Pool members just hash the data.  The timestamp comes from the pool operator's software, not the members.
2200  Bitcoin / Mining / Re: Wonder who this solominer is? 88.6.216.9 on: March 20, 2012, 05:20:50 AM
Also, to repeat my earlier question, could there be any significance to the out-of-order timestamps in blocks 171759 and 171760 other than indicating that the empty-block miner's nodes don't have synchronized clocks?

If it were an ordinary pool, it would indicate that there were too pools.

In my opinion, this is pretty strong evidence of a botnet that distributes only the bare minimum information to each node, which then creates the next block by itself.

You can't really include transactions in the blocks without having more or less the full block chain available, which takes up a lot of drive space and RAM, which would make the bot much easier to detect.  By handing out only the latest block's hash, the system is as close to stateless as it can be.  Each zombie just needs that, and then it can create the rest alone.
Pages: « 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [110] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 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 ... 195 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!