#

msg1259

(2 articles)

Kicking the Hornet's Nest - part 14

# Kicking the Hornet's Nest - third edition - part 14 All links, digital (pdf, txt, docx, md) and book in print, can be found at https://hive.blog/@crrdlx/satoshi Edited by [crrdlx](nostr:nprofile1qyv8wumn8ghj7mn0wdj8y6tkv5hxzurs9aex2mrp0yq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqzqqzmcn0yrn7ttq8hrjkk46ysn2tk26rr8f8k4y7xkl74hlh3rcdzm9d3t8), npub: ``` npub1qpdufhjpel94srm3ett2azgf49m9dp3n5nm2j0rt0l2mlmc3ux3qza082j ``` ---- ### Kicking the Hornet's Nest pages 300 - 325 ---- ##### BitcoinTalk #### Re: Security ##### _2010-07-10 12:58:02 UTC_ - [-](https://bitcointalk.org/index.php?topic=240.msg2132#msg2132) I'll start thinking about how to do this. At the moment, you can kind of use -connect. You can use -connect to make it connect to local computers on your LAN, like -connect=192.168.0.100. If you start it out blank and don't let it connect to the main network, the difficulty is still at the original low difficulty. If you've port-forwarded though, then outside nodes might still connect inward to you. With -connect it still uses IRC, do you think it shouldn't get on IRC when you're telling it to only connect to specific nodes with -connect? The main scenario for -connect is where you have a server farm, with two connected to the network and the rest connected to the first two. In that case, you wouldn't want the -connect computers on IRC. void ThreadIRCSeed(void* parg) { if (mapArgs.count("-connect")) return; ##### BitcoinTalk #### Re: Major Meltdown ##### _2010-07-10 13:36:17 UTC_ - [-](https://bitcointalk.org/index.php?topic=202.msg2133#msg2133) [_**Quote from: llama on July 01, 2010, 10:21:47 PM**_](https://bitcointalk.org/index.php?topic=202.msg1920#msg1920) _However, if something happened and the signatures were compromised (perhaps integer factorization is solved, quantum computers?), then even agreeing upon the last valid block would be worthless._ True, if it happened suddenly. If it happens gradually, we can still transition to something stronger. When you run the upgraded software for the first time, it would re-sign all your money with the new stronger signature algorithm. (by creating a transaction sending the money to yourself with the stronger sig) ##### BitcoinTalk #### Re: No blocks downloaded... why? ##### _2010-07-14 16:22:03 UTC_ - [-](https://bitcointalk.org/index.php?topic=323.msg2867#msg2867) So that was responsible for keeping blocks from downloading? The link: "Win32 CPU Cycles vs 'Live Protection' Engines" For BitcoinFX, Live Protection was keeping it from getting CPU for generating coins. You said your friend was getting 1400-1600 khash/s, so it was getting CPU. I guess Live Protection must have been blocking some other part of the program then? ##### BitcoinTalk #### Re: resource hog ##### _2010-07-14 16:29:39 UTC_ - [-](https://bitcointalk.org/index.php?topic=327.msg2871#msg2871) In Windows, you select the process in the task manager, right click, Set Priority. Set it to BelowNormal or Low. That shouldn't make a difference though. If you turn off Generate Coins, does the CPU usage go flat? That would confirm that all the CPU time it's taking is generate, which is idle priority already. It could be it's slow just because you have too many things running at once and you're out of memory. When you switch from one thing to another, it has to page it in from disk. ##### BitcoinTalk #### Re: stopped prodicing coins ##### _2010-07-14 17:04:02 UTC_ - [-](https://bitcointalk.org/index.php?topic=343.msg2880#msg2880) Thanks for making that calculator. The difficulty doubled a day or two ago, plus it's just random and you can have surprisingly long dry spells. ##### BitcoinTalk #### Re: Building Bitcoin 0.3 ##### _2010-07-14 17:34:50 UTC_ - [-](https://bitcointalk.org/index.php?topic=298.msg2885#msg2885) It doesn't work with wxWidgets 2.8, it needs wxWidgets 2.9. Unfortunately, there isn't a Debian package of wxWidgets 2.9 yet. ##### BitcoinTalk #### Re: bitcoin auto-renice-ing ##### _2010-07-14 17:38:31 UTC_ - [-](https://bitcointalk.org/index.php?topic=72.msg2886#msg2886) Laszlo corrected this, but unfortunately it was too late to make it into 0.3.0. There will probably be a 0.3.1 soon though. The problem is I used PRIO_MIN, I should have used PRIO_MAX for the lowest priority. The OS isn't supposed to let you increase priority, so the PRIO_MIN ought to leave it at priority 0. ##### BitcoinTalk #### Re: Stuck on 513 blocks ##### _2010-07-14 18:02:28 UTC_ - [-](https://bitcointalk.org/index.php?topic=305.msg2895#msg2895) This is the second time I've seen this "Live Protection" problem reported. It must be blocking the program's network communication. It sounds like it's allowing connections to be made, hence the 10 connections shown, but not allowing any data to be sent or received on them. We need to understand this problem better. Can someone write some instructions on the wiki explaining how to turn off or add an exclusion to Live Protection or whatever its full proper name is. **Martii Malmi (AKA Sirius) “COPA trial” email #202** **Date: Wed, 14 Jul 2010 22:52:46 +0100** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Fwd: Re: bitcoin!!!!** **To: Martti Malmi <mmalmi@cc.hut.fi>** I see the interior pages of the old sourceforge wiki are still up, though the homepage forwards. -------- Original Message -------- Subject: Re: bitcoin!!!! Date: Wed, 14 Jul 2010 10:56:21 -0400 From: Sam <samm@sammaloney.com> To: Satoshi Nakamoto <satoshin@gmx.com> References: <201004111508.52168.samm@sammaloney.com> <201007111859.29171.samm@sammaloney.com> <4C3DCD97.8030003@gmx.com> It was an old FAQ on sourceforge that had been linked from slashdot (on a highly visible comment). people were going there because bitcoin.org was down for a while. http://bitcoin.sourceforge.net/wiki/index.php?page=FAQ Probably not an issue anymore, but might be a good idea to delete or update that wiki page. > I don't see any 0.1.5 download links on the FAQ. Do you mean > bitcoin.org/faq? Is it on one of the other languages? Or maybe someone > else fixed it already. > ##### BitcoinTalk #### Re: Error on Ubuntu 10.04 ##### _2010-07-14 18:25:41 UTC_ - [-](https://bitcointalk.org/index.php?topic=318.msg2903#msg2903) What language is your computer set to? Is it set to German, Dutch or Italian? Is it one of those sub-languages like "nl-??"? It's trying to load a translation and failing. You could delete the locale directory that came with bitcoin so it doesn't try to use it. Can someone test each language on Ubuntu and see if there's a problem with just one of them or maybe all three? ##### BitcoinTalk #### Re: Runaway CPU usage for 64bit BitCoin (Linux Client) ##### _2010-07-14 18:45:53 UTC_ - [-](https://bitcointalk.org/index.php?topic=299.msg2908#msg2908) After it initially tries incorrectly to set itself to the lowest priority, the generate thread only changes its priority again temporarily when it finds a block. When you've found a block, you should want it to hurry up and broadcast it as soon a possible before someone else finds one and makes yours invalid. The generate thread only changes to higher priority for less than a second every few days. There should be a 0.3.1 release for this soon. There are a few other issues we need to look at fixing in 0.3.1 before making a release. [_**Quote from: knightmb on July 12, 2010, 10:39:13 PM**_](https://bitcointalk.org/index.php?topic=299.msg2409#msg2409) _On a side note, I've tracked down the other GUI issue. The "minimize to tray instead of taskbar" is what was eating up all the CPU on my system. After I turned this off, the issue was resolved with Runaway CPU. This only seems to affect the 64 bit Client, as the 32 bit Clients I have don't seem to be affected by this. I did notice on the 64 bit Client, what happens is, it spawns multiple "tray" icons until X server finally kills over, so I guess I should submit that as a bug to somewhere?_ ![](file:///tmp/lu30467eu8.tmp/lu30468k10_tmp_e9e08f5cd556c787.gif) That's interesting. I know the minimize to tray on Ubuntu is very clunky, but I didn't know it had a CPU peg problem too. Anyone else able to reproduce this problem? We had this feature disabled on Linux before, but then it seemed better to have the imperfect UI than to lose the feature entirely. I'm thinking we should disable it again on Linux. ##### BitcoinTalk #### Re: Warning this block was not received by any other nodes ##### _2010-07-14 18:56:29 UTC_ - [-](https://bitcointalk.org/index.php?topic=291.msg2913#msg2913) Microsoft Security Essentials Live Protection is blocking your communication with the network. You have connections, which tricks Bitcoin into thinking it's connected, but they are silent because the data is being blocked. You need to make bitcoin.exe an excluded process in Live Protection. This is becoming a common problem. Someone should write this up in a pegged thread. The message "Warning: This block was not received by any other nodes" occurs when Bitcoin broadcasts a block, but nobody confirms they received it. The warning is there just for this kind of situation, where for some reason you have connections, but they have gone dead and nobody can hear you. Your block will never become valid because nobody received it. ##### BitcoinTalk #### Re: Hash/sec Throttling for Democracy ##### _2010-07-14 20:25:06 UTC_ - [-](https://bitcointalk.org/index.php?topic=325.msg2935#msg2935) [_**Quote from: knightmb on July 14, 2010, 07:17:43 PM**_](https://bitcointalk.org/index.php?topic=325.msg2917#msg2917) _So if your computer was only 1% towards solving block 68000_ This is a common point of confusion. There's no such thing as being 1% towards solving a block. You don't make progress towards solving it. After working on it for 24 hours, your chances of solving it are equal to what your chances were at the start or at any moment. It's like trying to flip 37 coins at once and have them all come up heads. Each time you try, your chances of success are the same. The RNG is the OpenSSL secure random number generator. On Windows it's seeded with the complete set of all hardware performance counters since your computer started, on Linux it's dev/random. ##### BitcoinTalk #### Re: Scalability ##### _2010-07-14 21:10:52 UTC_ - [-](https://bitcointalk.org/index.php?topic=286.msg2947#msg2947) The design outlines a lightweight client that does not need the full block chain. In the design PDF it's called Simplified Payment Verification. The lightweight client can send and receive transactions, it just can't generate blocks. It does not need to trust a node to verify payments, it can still verify them itself. The lightweight client is not implemented yet, but the plan is to implement it when it's needed. For now, everyone just runs a full network node. I anticipate there will never be more than 100K nodes, probably less. It will reach an equilibrium where it's not worth it for more nodes to join in. The rest will be lightweight clients, which could be millions. At equilibrium size, many nodes will be server farms with one or two network nodes that feed the rest of the farm over a LAN. ##### BitcoinTalk #### Re: Runaway CPU usage for 64bit BitCoin (Linux Client) ##### _2010-07-15 00:18:23 UTC_ - [-](https://bitcointalk.org/index.php?topic=299.msg3008#msg3008) OK, the undocumented switch "-minimizetotray" which re-enables the option. I uploaded the change to SVN. ##### BitcoinTalk #### Re: [Bitcoin 0.3.0] Runtime error ##### _2010-07-15 14:05:20 UTC_ - [-](https://bitcointalk.org/index.php?topic=373.msg3150#msg3150) More directly, this: [http://BitcoinTalk.org/index.php?topic=246.0](http://bitcointalk.org/index.php?topic=246.0) I will be posting release candidate of 0.3.1 with this fix shortly. Please try that and let me know if it fixes the problem. ##### BitcoinTalk #### Re: Static Linux x86_64 bins for those having libcrypto troubles ##### _2010-07-15 14:33:04 UTC_ - [-](https://bitcointalk.org/index.php?topic=326.msg3157#msg3157) We don't even specify linking glibcxx_3.4.11, so gcc must automatically link it behind the scenes. There's probably a compiler switch that would tell it to static link it. I'm not sure what the licensing issues would be. Typically, compiler stuff is fully redistributable. ##### BitcoinTalk #### Re: resource hog ##### _2010-07-15 14:59:00 UTC_ - [-](https://bitcointalk.org/index.php?topic=327.msg3162#msg3162) Then all the CPU time is the generate thread, which definitely runs at the lowest possible priority, idle priority. It's normal that your CPU meter is 100%. Since it's idle priority, it won't actually slow anything else down, even though the CPU meter is 100%. ##### BitcoinTalk #### Bitcoin 0.3.1 released ##### _2010-07-15 17:05:54 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3198#msg3198) This is a bugfix maintenance release. It is now uploaded to SourceForge. Mac OS X didn't need any fixes so we don't really need to update it, 0.3.0 is still good. The download links are on bitcoin.org Changes: - Added Portuguese translation by Tiago Faria Windows - Fix for 22DbRunRecoveryException if your username has non-ascii characters in it Linux - Laszlo's fix for lowering generate thread to lowest priority - Fix for if you're having trouble with libcrypto linkage - Gavin Andresen's implementation of "start on windowing system startup" option ##### BitcoinTalk #### Re: 0.3.1 release candidate, please test ##### _2010-07-15 17:23:48 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3205#msg3205) Well, it can't hurt to do a backup and it's a good idea to backup regularly, but no, a backup is not required before installing this. ##### BitcoinTalk #### Re: 0.3.1 release candidate, please test ##### _2010-07-15 17:56:43 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3221#msg3221) I don't think you have a particular problem, I think your system is laggy because you're running a lot of things at once and hitting the pagefile because memory is full. You confirmed when you shut off generation that your CPU drops to 0%, so the CPU usage is definitely all idle priority. There's nothing in the 0.3.1 that would affect these things. ##### BitcoinTalk #### Re: Website and software translations ##### _2010-07-15 18:30:22 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg3238#msg3238) [_**Quote from: aidos on July 15, 2010, 12:49:11 AM**_](https://bitcointalk.org/index.php?topic=151.msg3017#msg3017) _Ok here is the .po file for French. While I'm at it, I noted a couple of issues: 1. The "About" box didn't take the translation into account, it still displays the english version to me, even though the rest of the software is using the translated strings, and the .po file contains the translation string of the "About" box message. Same problem with the "Apply" button in the Settings window._ I need to give an updated .po file. [_**Quote from: aidos on July 15, 2010, 12:49:11 AM**_](https://bitcointalk.org/index.php?topic=151.msg3017#msg3017) _2. If an transaction's description in the list of transaction in the main window contains a diacritical character (such as "\u00e9\u00e0\u00e8\u00e7"), it's not displayed. I suppose the string is not being properly handled as UTF8 somewhere._ OK, this must be a problem somewhere, I'll have to take a look at it or one of the other devs can. [_**Quote from: aidos on July 15, 2010, 12:49:11 AM**_](https://bitcointalk.org/index.php?topic=151.msg3017#msg3017) _4. About the .po file : - There are a few strings in the .po file that don't needs translation (ie: "Bitcoin"). Maybe those shouldn't be inside _("...") ? - Others shouldn't be split. I can remember one message about transaction fee where the string is split in two to insert the fee value, where you could simply have put a %s. It makes the message harder to translate as I had to go in the source to find exactly what was going on. - Some strings have whitespace at the end or start, which necessity is very debatable, and it's easy to miss in PoEdit._ Many of the strings are in code automatically generated from uiproject.fbp where nothing can be done about these things. I have a program I use to find all the spacing inconsistencies at the beginning and ending of strings in your .po file and manually fix them up before I upload them to SVN. ##### BitcoinTalk #### Re: Website and software translations ##### _2010-07-15 18:37:13 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg3242#msg3242) I uploaded an updated bitcoin.po for 0.3.1 attached to this message: [http://BitcoinTalk.org/index.php?topic=151.msg1259#msg1259](http://bitcointalk.org/index.php?topic=151.msg1259#msg1259) please use it if you're starting a new translation. If you already have a po file, poedit can update it. - Get the src directory from the 0.3.1 release candidate posted in the development forum, any version will do: [http://BitcoinTalk.org/index.php?topic=383.0](http://bitcointalk.org/index.php?topic=383.0) - Make a subdirectory under src: locale/??/LC_MESSAGES (?? could be anything really, "en" or your language 2-letter code) - Put your .po file there - Open it with poedit - In poedit, Catalog->Update from sources The key is that the src directory with the sourcefiles needs to be 3 directories up from the .po file. **Martii Malmi (AKA Sirius) “COPA trial” email #203** **Date: Thu, 15 Jul 2010 18:41:10 +0100** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: bitcoin.org drupal users** **To: Martti Malmi <mmalmi@cc.hut.fi>** Is it possible for the translators (at least the more trusted ones) to have user accounts on drupal so they can update their translated text directly? The user accounts on drupal appear to be pretty weak. I created a satoshi account and it can't even edit the side bar stuff, just the main text of pages. I don't think user accounts can access any of the admin stuff. Do you think it's safe, or do you feel insecure about doing that? If you're worried, maybe there's a way to lock just the english version of the homepage. It would be nice if when I need to make changes to the homepage, I could enlist someone like Xunie to do the rote work of reflecting it to all the translations instead of having to do all that work myself. (many light changes don't require understanding the language to fix the translated pages) ##### BitcoinTalk #### Re: Website and software translations ##### _2010-07-15 18:43:54 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg3247#msg3247) [**Quote from: SmokeTooMuch on July 13, 2010, 06:55:55 PM**](https://bitcointalk.org/index.php?topic=151.msg2619#msg2619) I recommend to remove the download links at the bottom of the main page. As you can see the links on the English page points to the new 0.3 release, but the other languages only contain links for the old 0.2 version. There's a download box with the current releases on the right anyway, so why not remove the links from the translated pages. I updated them to 0.3.0. I am tempted to remove the download links from the other languages and only keep it on English. They will need to be updated for 0.3.1 soon. Perhaps there's a way for someone to manage the updating of the translated drupal pages. **Martii Malmi (AKA Sirius) “COPA trial” email #204** **Date: Thu, 15 Jul 2010 18:43:55 +0100** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Fwd: Please update the bitcoin FAQ so new member can have the right info** **To: Martti Malmi <mmalmi@cc.hut.fi>** -------- Original Message -------- Subject: Please update the bitcoin FAQ so new member can have the right info Date: Mon, 12 Jul 2010 14:13:20 -0700 From: Jim Nguyen <jimmy.winn@gmail.com> To: satoshin@gmx.com Hi, In the FAQ of bitcoin.org <http://bitcoin.org> the backing up of the wallet had old instructions, right? Should it just be to back up wallat.dat instead of the entire folder??? See below. "How do I backup my wallet? Your data is stored in the directory ''%appdata%\Bitcoin'', which is typically: Windows XP: C:\Documents and Settings\username\Application Data\Bitcoin Windows Vista: C:\Users\username\AppData\Roaming\Bitcoin It’s recommended that you stop Bitcoin before backing it up to make sure the backup will be correct." ##### BitcoinTalk #### Re: Website and software translations ##### _2010-07-15 19:12:14 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg3257#msg3257) Thanks for the Spanish and French translations! The edited and updated .po files are attached. I uploaded these to the SVN. **Martii Malmi (AKA Sirius) “COPA trial” email #205** **Date: Thu, 15 Jul 2010 21:00:12 +0100** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: bitcoin.org server** **To: Martti Malmi <mmalmi@cc.hut.fi>** You did some research when choosing hosting, this was a well chosen one, right? It seems like it would be a tremendous hassle to change, and we've had good luck with this one. Cheaper will usually have some offsetting drawback in quality. I wonder if that extra memory is just disk cache or something. I take it you haven't received anything from that donor yet? He seemed pretty certain he was going to send it, maybe more. (if you get anything, we need to keep private for him the fact that we got a donation) ##### BitcoinTalk #### Re: 0.3.1 release candidate, please test ##### _2010-07-15 21:40:34 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3295#msg3295) [_**Quote from: knightmb on July 15, 2010, 07:37:10 PM**_](https://bitcointalk.org/index.php?topic=383.msg3269#msg3269) _On Windows, the priority of the Coin Generation is still net for normal. If you run BitCoin in Generate Coin mode, then load up something to eat up all the CPU (like CPU hog for example:_ [_http://www.microtask.ca/cpuhog.html_](http://www.microtask.ca/cpuhog.html)_) you'll see that both BitCoin and CPU hog share the CPU 50/50 instead of CPU Hog taking all the CPU and BitCoin running only on idle/low process. The khash/s is also reduced in half, so further evidence that the threads are not running in a lower than normal prioirty._ I was not able to reproduce this. I have dual-proc, so I ran two memory hogs. Bitcoin got 0% of CPU according to the task manager. The khash/sec meter stayed stuck because it couldn't get any CPU to update it. Do you have dual-proc? Are you sure you weren't running a single processor hog? ##### BitcoinTalk #### Re: 0.3.1 release candidate, please test ##### _2010-07-15 22:07:35 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3305#msg3305) [_**Quote from: knightmb on July 15, 2010, 08:15:46 PM**_](https://bitcointalk.org/index.php?topic=383.msg3274#msg3274) _On the Linux client (64 bit), the "minimize on close" will still minimize to tray (causing X server hang after a short while by spawning multiple tray icons)._ I updated the first post with a link to rc2 for linux with the fix for this. Please check that this is fixed for you. Thanks! [http://www.bitcoin.org/download/bitcoin-0.3.1.rc2-linux.tar.gz](http://www.bitcoin.org/download/bitcoin-0.3.1.rc2-linux.tar.gz) ##### BitcoinTalk #### Re: 0.3.1 release candidate, please test ##### _2010-07-15 22:10:19 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3306#msg3306) [_**Quote from: db on July 15, 2010, 08:39:08 PM**_](https://bitcointalk.org/index.php?topic=383.msg3278#msg3278) _The listreceivedbyaddress and getreceivedbyaddress commands are duplicated in bincoind help. (Same in 0.3.0.)_ Yes a bug. It'll have to be fixed in the next version. ##### BitcoinTalk #### Re: "SetIcons(): icon bundle doesn't contain any suitable icon" ##### _2010-07-16 02:43:29 UTC_ - [-](https://bitcointalk.org/index.php?topic=391.msg3362#msg3362) That must be it then. It must be looking for a larger icon like 20x20 but we don't have one. ##### BitcoinTalk #### Re: Proof-of-work difficulty increasing ##### _2010-07-16 14:46:12 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg3488#msg3488) The proof-of-work difficulty is currently 45.38. (see [http://www.alloscomp.com/bitcoin/calculator.php](http://www.alloscomp.com/bitcoin/calculator.php)) It's about to increase again in a few hours. It's only been 3-4 days since the last increase, so I expect it will increase by the max of 4 times, or very nearly the max. That would put it at 181.54. The target time between adjustments is 14 days, 14/3.5 days = 4.0 times increase. ##### BitcoinTalk #### Re: Assertion Failure - Ubuntu Lucid ##### _2010-07-16 14:52:04 UTC_ - [-](https://bitcointalk.org/index.php?topic=400.msg3492#msg3492) That's the first time I've seen this error. How many blocks do you have? (in the status bar) You should move your blk*.dat files (in ~/.bitcoin) to another directory and let it start over downloading the block chain again. If you don't mind, could you keep the old blk*.dat files for a little while in case I need to look at them? ##### BitcoinTalk #### Re: Fedora 13 libcrypto ##### _2010-07-16 14:55:23 UTC_ - [-](https://bitcointalk.org/index.php?topic=296.msg3495#msg3495) Please try the 0.3.1 release candidate, it should at least resolve the libcrypto dependency: [http://BitcoinTalk.org/index.php?topic=383.0](http://bitcointalk.org/index.php?topic=383.0) Let me know if that works. ##### BitcoinTalk #### Re: Resending transaction ##### _2010-07-16 15:01:33 UTC_ - [-](https://bitcointalk.org/index.php?topic=303.msg3499#msg3499) Bitcoin automatically rebroadcasts your transactions if it receives new blocks that don't contain them. It may take about an hour to get rebroadcasted. It is relentless though. It will keep nagging the network forever until your transaction gets into a block. ##### BitcoinTalk #### Re: 0.3.1 release candidate, please test ##### _2010-07-16 15:09:59 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3505#msg3505) Because of all the dependencies that different systems don't have. It's easier to just static link what we can. It doesn't increase the size by very much. ##### BitcoinTalk #### Re: Source code documentation ##### _2010-07-16 15:37:00 UTC_ - [-](https://bitcointalk.org/index.php?topic=393.msg3510#msg3510) I like that in libraries for the external API's, but you can probably tell from the code that I'm not a fan of it for interior functions. Big obligatory comment headers for each function space out the code and make you hesitate about creating a small little function where the comment header would be bigger than the function. They're some trouble for maintenance, as changes to the function then require duplicate changes in the comment header. I like to keep code compact so you can see more code on the screen at once. To add them now at this point, what would be written would just be what's obvious from looking at the function. The external API we have, in rpc.cpp, the usage documentation is in the help string. Sorry to be a wet blanket. ##### BitcoinTalk #### Re: Hash() function not secure ##### _2010-07-16 16:13:53 UTC_ - [-](https://bitcointalk.org/index.php?topic=360.msg3520#msg3520) SHA256 is not like the step from 128 bit to 160 bit. To use an analogy, it's more like the step from 32-bit to 64-bit address space. We quickly ran out of address space with 16-bit computers, we ran out of address space with 32-bit computers at 4GB, that doesn't mean we're going to run out again with 64-bit anytime soon. SHA256 is not going to be broken by Moore's law computational improvements in our lifetimes. If it's going to get broken, it'll be by some breakthrough cracking method. An attack that could so thoroughly vanquish SHA256 to bring it within computationally tractable range has a good chance of clobbering SHA512 too. If we see a weakness in SHA256 coming gradually, we can transition to a new hash function after a certain block number. Everyone would have to upgrade their software by that block number. The new software would keep a new hash of all the old blocks to make sure they're not replaced with another block with the same old hash. ##### BitcoinTalk #### Re: Request: expected bitcoins per day display ##### _2010-07-16 16:47:14 UTC_ - [-](https://bitcointalk.org/index.php?topic=397.msg3524#msg3524) Many businesses are like that. For a car salesman, when will the next customer walk in the door? On the OP's question, it's a good feature, but the question is, how would we word it so people don't expect to get something after that specific amount of time? "it said 7 days and I waited more than a week and didn't get anything!" Approx, average, but still they're going to think that way. It can't be a whole sentence, unless we think of somewhere else to put it, but where would that be? Suggestions? The difficulty quadrupled a few minutes ago to 181.54. It's going to take typically about a week to generate now. ##### BitcoinTalk #### Re: Proof-of-work difficulty increasing ##### _2010-07-16 16:56:54 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg3526#msg3526) It adjusted to 181.54 a few minutes ago. Typical time to get a block is about a week now. The difficulty can adjust down as well as up. The network should be generating close to 6 blocks per hour now. ##### BitcoinTalk #### Re: Source code documentation ##### _2010-07-16 17:15:47 UTC_ - [-](https://bitcointalk.org/index.php?topic=393.msg3534#msg3534) It's in init.cpp. It's a wxWidgets app, so it doesn't have a main() function. It may in a little while, since I'm pretty close to making bitcoind build w/o wxBase. (it'll be in init.cpp) Sorry about my choice of the filename "main.cpp", another possible name would have been "core.cpp". It's much too late to change. I still prefer main.cpp. We're still in great need of sample code showing the recommended way to use the JSON-RPC functions, like for a basic account system on a typical storefront website. Using getreceivedbylabel using the username as the label, changing to a new bitcoin address once the stored one for that account gets used. I posted a sample code fragment on the forum somewhere. (search on getreceivedbylabel or getnewaddress) The sample code could be a plain vanilla bank site where you can deposit and send payments. ##### BitcoinTalk #### Re: 0.3.1 release candidate, please test ##### _2010-07-16 17:26:17 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3536#msg3536) Good point. If you're going to have more than 8 LAN nodes connect to one gateway node, then you'd better have the gateway node set up so it can receive incoming connections. Otherwise, while the gateway node has 8 or more connections, it will not try to add any more outbound connections. As the outside nodes you're connected to come and go, it doesn't make new outbound connections to replace them. You'll be fine if you can accept incoming connections, then there will be plenty of others connecting to you. ##### BitcoinTalk #### Re: Proof-of-work difficulty increasing ##### _2010-07-16 17:29:28 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg3537#msg3537) Yes, about 20 hours. (120 conf / 6 blocks per hour = 20 hours) That's the normal length of time before you can spend it. You know long before that that you won one. ##### BitcoinTalk #### Re: bitcoin trademark? ##### _2010-07-16 17:47:05 UTC_ - [-](https://bitcointalk.org/index.php?topic=378.msg3540#msg3540) No, not related at all. ##### BitcoinTalk #### Re: The dollar cost of bitmining energy ##### _2010-07-16 17:58:44 UTC_ - [-](https://bitcointalk.org/index.php?topic=403.msg3545#msg3545) Neat chart. Difficulty just increased by 4 times, so now your cost is US$0.02/BTC. ##### BitcoinTalk #### Re: Website integration for bitcoin ##### _2010-07-16 18:23:04 UTC_ - [-](https://bitcointalk.org/index.php?topic=364.msg3559#msg3559) I've been trying to encourage someone to write and release some sample Python code showing the recommended way to do the typical accounting stuff, but to no avail. It would be nice if you didn't have to re-invent the wheel like you're doing here. Search on getnewaddress and you should find a thread where I gave a small fragment of sample pseudocode. ##### BitcoinTalk #### Re: Proof-of-work difficulty increasing ##### _2010-07-16 18:43:51 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg3565#msg3565) Right, the difficulty adjustment is trying to keep it so the network as a whole generates an average of 6 blocks per hour. The time for your block to mature will always be around 20 hours. The recent adjustment put us back to close to 6 blocks per hour again. There's a site where you can see the time between blocks, and since block 68545, it's been more like 10 minutes per block: [http://nullvoid.org/bitcoin/statistix.php](http://nullvoid.org/bitcoin/statistix.php) ##### BitcoinTalk #### Sample account system using JSON-RPC needed ##### _2010-07-16 19:45:10 UTC_ - [-](https://bitcointalk.org/index.php?topic=417.msg3579#msg3579) We need someone to write sample code, preferably Python or Java, showing the recommended way to use the JSON-RPC interface to create an account system. Most sites that sell things will need something like this. Someone who's kept up on the JSON-RPC threads here should have some idea how it should work. When a user is logged in to their account, you show the bitcoin address they can send to to add funds. Before showing it, you check if it's been used, if it has then you replace it with a new one (getnewaddress <username>). You only need to keep the latest bitcoin address for the account in your database. (I posted a sample code fragment for this in an earlier thread somewhere, search on getnewaddress) You use getreceivedbylabel <username> with the username as the label to get the "credit" amount of the account. You need to keep a "debit" amount in your database. The current balance of the account is (credit - debit). When the user spends money, you increase debit. If you're requiring more than 0 confirmations, it's nice if you show the current balance (0 confirmations) and the available balance (1 or more confirmations), so they can immediately see that their payment is acknowledged. Not all sites need to wait for confirmations, so the dual current & available should be optional. Most sites selling digital goods are fine to accept 0 confirmations. A nice sample app for this would be a simple bank site, which would have the above, plus the option to send a payment to a bitcoin address. The sample code should be the simplest possible with the minimum extra stuff to make it a working site. vekja.net is an example of a site like this. ##### BitcoinTalk #### Re: Bitcoin 0.3.1 released ##### _2010-07-16 21:06:57 UTC_ - [-](https://bitcointalk.org/index.php?topic=383.msg3590#msg3590) I uploaded windows 0.3.1 rc1 and linux 0.3.1 rc2 to SourceForge and updated the links on the homepage. You don't need to update to 0.3.1 unless you had one of the problems listed in the first post. If you've got it working already, stay with 0.3.0. ##### BitcoinTalk #### Re: A New Currency System for the World ##### _2010-07-16 22:20:09 UTC_ - [-](https://bitcointalk.org/index.php?topic=128.msg3605#msg3605) [_**Quote from: hugolp on May 08, 2010, 10:38:51 AM**_](https://bitcointalk.org/index.php?topic=128.msg1082#msg1082) _When I run bitcoin it becomes very sluggish, almost unusable. When I stop bitcoin everything goes ok again. Its running Ubuntu desktop 10.04 amd64 using ia32libs and the binary in bitcoin 0.20 tarball._ 0.3.1 fixes that, sets the generate threads to the lowest priority. Download links are on the homepage now. ##### BitcoinTalk #### Re: BUG Report: Rounding glitch ##### _2010-07-17 16:06:12 UTC_ - [-](https://bitcointalk.org/index.php?topic=432.msg3769#msg3769) It must be a rounding error when getinfo converts to floating point to return the JSON-RPC result. The only place where it uses floating point to represent money is returning a value in JSON-RPC. 1.139999999999 is longer than bitcoin can internally represent. internally, it could only be: 1.13999999 or 1.14000000 1.139999999999 is much much closer to 1.14000000 than 1.13999999, so it must be 1.14000000. The code is this: (double)GetBalance() / (double)COIN. (I can't think of an easy way to fix it at the moment) ##### BitcoinTalk #### Re: Privacy versus Safety: handling change ##### _2010-07-17 16:27:39 UTC_ - [-](https://bitcointalk.org/index.php?topic=434.msg3770#msg3770) We should queue up a supply of pre-made addresses in the wallet to use when a new address is needed. They aren't very big, so it wouldn't hurt to have a lot of them. This would more generally cover the case also where someone backs up, then requests a new address and receives a big payment with it. Maybe there should be separate queues so one type of demand on addresses doesn't deplete it for the others. The addresses would be created and stored in the normal place, but also listed on a separate list of created-but-never-used addresses. When an address is requested, the address at the front of the never-used queue is handed out, and a new address is created and added to the back. There's some kind of rescan in the block loading code that was made to repair the case where someone copied their wallet.dat. I would need to check that the rescan handles the case of rediscovering received payments in blocks that were already received, but are forgotten because the wallet was restored. ##### BitcoinTalk #### Re: Nenolod, the guy that wants to prove Bitcoin doesn't work. ##### _2010-07-17 16:56:06 UTC_ - [-](https://bitcointalk.org/index.php?topic=431.msg3773#msg3773) 0.3.2 has some security safeguards to lock in the block chain up to this point and limit the damage a little if someone gets 50%. But if someone has 50%+ of the CPU power and malicious intent, they can prove what it already says in the design document. ##### BitcoinTalk #### Bitcoin 0.3.2 released ##### _2010-07-17 21:35:51 UTC_ - [-](https://bitcointalk.org/index.php?topic=437.msg3807#msg3807) Download links available now on bitcoin.org. Everyone should upgrade to this version. - Added a simple security safeguard that locks-in the block chain up to this point. - Reduced addr messages to save bandwidth now that there are plenty of nodes to connect to. - Spanish translation by milkiway. - French translation by aidos. The security safeguard makes it so even if someone does have more than 50% of the network's CPU power, they can't try to go back and redo the block chain before yesterday. (if you have this update) I'll probably put a checkpoint in each version from now on. Once the software has settled what the widely accepted block chain is, there's no point in leaving open the unwanted non-zero possibility of revision months later. ##### BitcoinTalk #### Re: Bitcoin snack machine (fast transaction problem) ##### _2010-07-17 22:29:13 UTC_ - [-](https://bitcointalk.org/index.php?topic=423.msg3819#msg3819) I believe it'll be possible for a payment processing company to provide as a service the rapid distribution of transactions with good-enough checking in something like 10 seconds or less. The network nodes only accept the first version of a transaction they receive to incorporate into the block they're trying to generate. When you broadcast a transaction, if someone else broadcasts a double-spend at the same time, it's a race to propagate to the most nodes first. If one has a slight head start, it'll geometrically spread through the network faster and get most of the nodes. A rough back-of-the-envelope example: 1 0 4 1 16 4 64 16 80% 20% So if a double-spend has to wait even a second, it has a huge disadvantage. The payment processor has connections with many nodes. When it gets a transaction, it blasts it out, and at the same time monitors the network for double-spends. If it receives a double-spend on any of its many listening nodes, then it alerts that the transaction is bad. A double-spent transaction wouldn't get very far without one of the listeners hearing it. The double-spender would have to wait until the listening phase is over, but by then, the payment processor's broadcast has reached most nodes, or is so far ahead in propagating that the double-spender has no hope of grabbing a significant percentage of the remaining nodes. ##### BitcoinTalk #### Re: Assertion Failure - Ubuntu Lucid ##### _2010-07-17 22:37:06 UTC_ - [-](https://bitcointalk.org/index.php?topic=400.msg3823#msg3823) [_**Quote from: singpolyma on July 17, 2010, 10:19:48 PM**_](https://bitcointalk.org/index.php?topic=400.msg3815#msg3815) _My coins disappeared, but I assume they'll come back when it's up to current?_ Right, they'll re-appear when it's finished downloading all the blocks. ##### BitcoinTalk #### Re: Bitcoin 0.3.2 released ##### _2010-07-17 22:54:24 UTC_ - [-](https://bitcointalk.org/index.php?topic=437.msg3825#msg3825) [_**Quote from: llama on July 17, 2010, 09:56:25 PM**_](https://bitcointalk.org/index.php?topic=437.msg3810#msg3810) _However, it's important that you don't lock all the way up the very latest block. Otherwise, the attacker could generate a fake block (or a few) right before you happen to lock it, and then his attack would be far easier than it would have been without the block lock._ I went about 200 blocks back. The block chain was a clean straight line without branches, and there was only one known version of the locked block. [_**Quote from: llama on July 17, 2010, 09:56:25 PM**_](https://bitcointalk.org/index.php?topic=437.msg3810#msg3810) _Also, I'm assuming that the block lock means that the blocks will also come prepackaged with the client. Is this so?_ Sorry, not yet, but I do want to make the initial block download faster. ##### BitcoinTalk #### Re: Source code documentation ##### _2010-07-17 23:18:30 UTC_ - [-](https://bitcointalk.org/index.php?topic=393.msg3828#msg3828) I didn't realize you were going to document all the intentionally undocumented commands. They're unsupported and not intended to be used by users. All the user-facing commands are listed in the -? help. ##### BitcoinTalk #### Re: Network Size ##### _2010-07-17 23:25:16 UTC_ - [-](https://bitcointalk.org/index.php?topic=419.msg3830#msg3830) [_**Quote from: NewLibertyStandard on July 17, 2010, 10:22:09 PM**_](https://bitcointalk.org/index.php?topic=419.msg3817#msg3817) _Version 0.3 was supposed to reduce the number of outgoing connections on non-port forwarded clients from 15 to 8, but I don't think it really happened. I'm not positive if this is the case. Correct me if I'm wrong._ In 0.3.0, the change to 8 only ended up in the Windows version, the other versions still had 15. Please upgrade to 0.3.2, it's available now. ----

Kicking the Hornet's Nest - part 12

# Kicking the Hornet's Nest - third edition - part 12 All links, digital (pdf, txt, docx, md) and book in print, can be found at https://hive.blog/@crrdlx/satoshi Edited by [crrdlx](nostr:nprofile1qyv8wumn8ghj7mn0wdj8y6tkv5hxzurs9aex2mrp0yq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqzqqzmcn0yrn7ttq8hrjkk46ysn2tk26rr8f8k4y7xkl74hlh3rcdzm9d3t8), npub: ``` npub1qpdufhjpel94srm3ett2azgf49m9dp3n5nm2j0rt0l2mlmc3ux3qza082j ``` ---- ### Kicking the Hornet's Nest pages 250 - 275 ---- **Martii Malmi (AKA Sirius) “COPA trial” email #180** **Date: Wed, 03 Mar 2010 03:54:52 +0000** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Re: Bitcoind** **To: mmalmi@cc.hut.fi** That narrows it down a lot. It didn't print any IRC activity in debug.log, so I guess it couldn't have gotten past the RecvUntil. Eyeballing it I don't see anything obvious. I guess it would have to be either in ConnectSocket or RecvUntil. Try it with the attached irc.cpp and net.cpp and send me the debug.log. Or you could run it in gdb and step through ThreadIRCSeed gdb --args bitcoin [switches] b ThreadIRCSeed run step or u to step over and up out of routines. _mmalmi@cc.hut.fi wrote:_ _> I get the error regardless of the getinfo. Commenting out ThreadIRCSeed_ _> fixed the problem._ _>_ **BitcoinTalk** Re: Money Transfer Regulations _2010-03-03 04:28:56 UTC_ - [-](https://bitcointalk.org/index.php?topic=69.msg614#msg614) When there's enough scale, maybe there can be an exchange site that doesn't do transfers, just matches up buyers and sellers to exchange with each other directly, similar to how e-bay works. To make it safer, the exchange site could act as an escrow for the bitcoin side of the payment. The seller puts the bitcoin payment in escrow, and the buyer sends the conventional payment directly to the seller. The exchange service doesn't handle any real world money. This would be a step better than e-bay. E-bay manages to work fine even though shipped goods can't be recovered if payment falls through. **Martii Malmi (AKA Sirius) “COPA trial” email #182** **Date: Wed, 03 Mar 2010 17:15:28 +0000** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Re: Bitcoind** **To: mmalmi@cc.hut.fi** It's in RecvUntil, but I still can't see anything wrong with it. The only thing I can think of is if the socket is receiving a spew of characters. Try this irc.cpp. debug.log may grow rapidly so be ready to kill it. _mmalmi@cc.hut.fi wrote:_ _> debug.log attached_ _>_ **Martii Malmi (AKA Sirius) “COPA trial” email #185** **Date: Fri, 05 Mar 2010 00:42:16 +0000** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Re: Bitcoind** **To: mmalmi@cc.hut.fi** It's in util.c ParseString. I'm guessing the problem is incompatibility between the type "unsigned int" and the type of str.npos, which is size_type. Try changing the two "unsigned int"s to "size_type". old: void ParseString(const string& str, char c, vector<string>& v) { unsigned int i1 = 0; unsigned int i2; do { i2 = str.find(c, i1); v.push_back(str.substr(i1, i2-i1)); i1 = i2+1; } while (i2 != str.npos); } new: void ParseString(const string& str, char c, vector<string>& v) { size_type i1 = 0; size_type i2; do { i2 = str.find(c, i1); v.push_back(str.substr(i1, i2-i1)); i1 = i2+1; } while (i2 != str.npos); } _mmalmi@cc.hut.fi wrote:_ _> Here's another test run debug.log I got when debugging with gdb. The_ _> program started eating memory after the debug line "irc 8" and within a_ _> few seconds crashed with "terminate called after throwing an instance of_ _> 'std::bad_alloc'"._ _>_ **Martii Malmi (AKA Sirius) “COPA trial” email #186** **Date: Fri, 05 Mar 2010 00:54:40 +0000** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Re: Bitcoind** **To: mmalmi@cc.hut.fi** Actually, please try this instead, this is more correct: void ParseString(const string& str, char c, vector<string>& v) { string::size_type i1 = 0; string::size_type i2; loop { i2 = str.find(c, i1); if (i2 == str.npos) { v.push_back(str.substr(i1)); return; } v.push_back(str.substr(i1, i2-i1)); i1 = i2+1; } } **Martii Malmi (AKA Sirius) “COPA trial” email #188** **Date: Fri, 05 Mar 2010 01:42:00 +0000** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Re: Bitcoind** **To: mmalmi@cc.hut.fi** I confirmed that ParseString has this problem, and uploaded the fixed util.cpp to SVN. string::npos == -1 Comparing unsigned int -1 (0xffffffff) with long unsigned int -1 (0xffffffffffffffff) results in the unsigned int being promoted to 64-bit, which is 0x00000000ffffffff != 0xffffffffffffffff. _mmalmi@cc.hut.fi wrote:_ _> Here's another test run debug.log I got when debugging with gdb. The_ _> program started eating memory after the debug line "irc 8" and within a_ _> few seconds crashed with "terminate called after throwing an instance of_ _> 'std::bad_alloc'"._ _>_ **BitcoinTalk** Re: Command Line and JSON-RPC _2010-03-05 01:46:25 UTC_ - [-](https://bitcointalk.org/index.php?topic=63.msg633#msg633) [_**Quote from: sirius-m on February 24, 2010, 06:17:35 PM**_](https://bitcointalk.org/index.php?topic=63.msg502#msg502) _This is strange... When I start Bitcoin as a daemon on my 64 bit Linux server, it eats up all the 250MB of remaining RAM, 700MB of swap and eventually crashes. On my 32 bit Ubuntu desktop, it works fine and stays at 15MB of memory usage. The server is running a 64 bit build of Bitcoin. Maybe there's something wrong with the build or something._ sirius-m debugged this, it was 64-bit related. The fix is now available on SVN, file util.cpp. **Martii Malmi (AKA Sirius) “COPA trial” email #189** **Date: Sat, 06 Mar 2010 06:39:53 +0000** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Blog** **To: Martti Malmi <mmalmi@cc.hut.fi>** There's a blog writer who wants to write a story about Bitcoin, but I don't have time right now to answer his questions. Would you be interested in answering his questions if I refer him to you? We might get a good link out of it. The blog is http://themonetaryfuture.blogspot.com **BitcoinTalk** Re: bitcoin auto-renice-ing _2010-03-15 18:44:12 UTC_ - [-](https://bitcointalk.org/index.php?topic=72.msg717#msg717) It sets different priorities for each thread. The generate threads run at PRIO_MIN. The other threads rarely take any CPU and run at normal. #define THREAD_PRIORITY_LOWEST PRIO_MIN #define THREAD_PRIORITY_BELOW_NORMAL 2 #define THREAD_PRIORITY_NORMAL 0 The priorities converted from Windows priorities were probably from a table like this: "The following table shows the mapping between nice values and Win32 priorities. Refer to the Win32 documentation for SetThreadPriority() for more information on Win32 priority issues. nice value Win32 Priority -20 to -16 THREAD_PRIORITY_HIGHEST -15 to -6 THREAD_PRIORITY_ABOVE_NORMAL -5 to +4 THREAD_PRIORITY_NORMAL +5 to +14 THREAD_PRIORITY_BELOW_NORMAL +15 to +19 THREAD_PRIORITY_LOWEST" If you have better values, suggestions welcome. Also, there was some advice on the web that PRIO_PROCESS is used on Linux because threads are processes. If that's not true, maybe it accounts for unexpectedly setting the priority of the whole app. // threads are processes on linux, so PRIO_PROCESS affects just the one thread setpriority(PRIO_PROCESS, getpid(), nPriority); **BitcoinTalk** Idea for file hosting and proxy services _2010-03-15 19:16:56 UTC_ - [-](https://bitcointalk.org/index.php?topic=83.msg719#msg719) When you want to upload an image to embed in a forum post, there are services like imageshack, but because they're free, they limit the number of views. It's a minuscule amount of bandwidth cost, but they can't just give it away for free, there has to be something in it for them. It would be nice to be able to pay for the bandwidth and avoid the limits, but conventional payments are too inconvenient for such a minor thing. It's worse if you want to upload a file for others to download. There are services like rapidshare, but they require the downloaders to go through extra steps and delays to make them look at advertising or encourage upgrading to a paid subscription, and they limit it to 10 or so downloads. It would be nice if we made some free PHP code for an image and file hosting service that charges Bitcoins. Anyone with some extra bandwidth quota could throw it on their webserver and run it. Users could finally pay the minor fee to cover bandwidth cost and avoid the limits and hassles. Ideally, it should be MIT license or public domain. Services like this would be great for anonymous users, who have trouble paying for things. **BitcoinTalk** Re: On IRC bootstrapping _2010-03-16 19:48:47 UTC_ - [-](https://bitcointalk.org/index.php?topic=84.msg729#msg729) Thanks soultcer for talking with the Freenode staffer. Good to know it's OK at the current size, and now they know who we are. They're supportive of projects like TOR so I hope they would probably be friendly to us. We don't want to overstay our welcome. If we get too big, then by the same token, we're big enough that we don't need IRC anymore and we'll get off. We only needed IRC because nobody had a static IP. In the early days there were some steady supporters, but they all had pool-allocated IPs that change every few days. IRC was only intended as a temporary solution. Bitcoin's built-in addr system is the main solution. Bitcoin can get the list of IPs from any bitcoin node. In that sense, every node serves as a directory server. When there are enough static IP nodes to have a good chance that at least one will still be running by the time the current version goes out of use, we can preprogram a seed list. How do you think we should compile the seed list? Would it be OK to create it from the currently connected IPs that have been static for a while? BTW, if we want to supplement by deploying separate directory server software, may I suggest IRC? IRC is a good directory server (I've heard it has other uses too), and there are mature IRC server implementations available that anyone can run. ![](file:///tmp/lu30467eu8.tmp/lu30468hd4_tmp_b56eb9f04b2623cd.gif) Bitcoin's IRC client implementation is already thoroughly tested. **BitcoinTalk** Re: Idea for file hosting service _2010-03-16 20:17:34 UTC_ - [-](https://bitcointalk.org/index.php?topic=83.msg731#msg731) That's a great idea. There's a thriving business in those services, but I've always thought the standard payment methods are at odds with privacy minded customers. Would you consider making your software freely available so anyone could easily set one up? I know for competitive reasons the inclination is to keep it to yourself, but it could get an order of magnitude more use if anyone could give proxy access to their country just by putting the software on a server. I wonder if there are other kinds of web application servers where we would only have to tack on the payment mechanism to an already existing system? **BitcoinTalk** Re: who is bitcoin.com _2010-03-23 15:22:41 UTC_ - [-](https://bitcointalk.org/index.php?topic=88.msg806#msg806) It's unrelated. There wasn't anything there when I started. The price of .com registrations is lower than it should be, therefore any good name you might think of is always already taken by some domain name speculator. Fortunately, it's standard for open source projects to be .org. **BitcoinTalk** Re: Exchange Methods _2010-03-23 17:35:34 UTC_ - [-](https://bitcointalk.org/index.php?topic=87.msg807#msg807) LR and Pecunix have many established exchanges to paper currencies by various payment methods, and a number of vendors accept them as payment, so an exchange link between Bitcoin and LR/Pecunix would give us 2nd-hop access to all that. The possibility to cash out through them would help support the value of bitcoins. Bitcoin has unique properties that would be complementary. LR/Pecunix are easy to spend anonymously, but hard to buy anonymously and not worth the trouble to buy in small amounts. Bitcoin, on the other hand, is easy to get in small amounts anonymously. It would be convenient to buy LR/Pecunix with bitcoins rather than through conventional payment methods. Most customers who convert to LR to buy something would probably ask the seller first if they accept Bitcoin, encouraging them to start accepting it. **BitcoinTalk** Re: Idea for file hosting and proxy services _2010-03-24 18:01:57 UTC_ - [-](https://bitcointalk.org/index.php?topic=83.msg809#msg809) Title changed. It helps that we have someone with actual experience running a proxy service. Do you think Psiphon is the best one currently? (sometimes the one you run was the best when you started but you found better ones later) **BitcoinTalk** Re: Idea for file hosting and proxy services _2010-03-24 18:02:55 UTC_ - [-](https://bitcointalk.org/index.php?topic=83.msg810#msg810) Mihalism Multi Host is a popular open source PHP file hosting server. It's geared toward image hosting, but I think by increasing the file size limit and liberalising the allowed file extensions, it could just as easily be used for general file upload hosting. They need the limits to keep it reasonable as a free service, but if we bolt on a Bitcoin payment mechanism, the limits could be relaxed. It doesn't have a bunch of client side scripting or anti-embedding junk to rip out. It generates standard links that work normally. There's a turnover churn in these free hosting sites. Small sites can give free image hosting, but once one starts getting popular, it gets too swamped with moochers using them for free bandwidth. Any site that gets well known has to become more aggressively pay-naggy to cover bandwidth costs. It's a perfect example of a service where the needed price point is in the no-man's-land between just a little too expensive to be free, but too cheap for most users to take the trouble of a conventional payment. It's in the gap between 0 and 19.95. The best they can do is try to maybe get 1 out of 1000 users to pay 9.95, but that has 999/1000 users treated like freeloaders. It can't really be advertising supported because the images are embedded in other sites and downloaded without going to the hosting site. An example of a site running the software: [http://www.imagez.ws/](http://www.imagez.ws/) Forum: [http://www.mihalism.net/](http://www.mihalism.net/) Download: [http://code.google.com/p/mihalismmh/](http://code.google.com/p/mihalismmh/) What do you think? If I made a Bitcoin payment integration for this, would anyone be interested in running it? It might be the first fully automated service available to buy with Bitcoins. The advantage it could offer over the free services is general file upload hosting of large files without making downloading users go to the upload site and jump through hoops. It would give a normal link directly to the file. **Martii Malmi (AKA Sirius) “COPA trial” email #192** **Date: Sun, 16 May 2010 20:12:21 +0100** **From: Satoshi Nakamoto <satoshin@gmx.com>** **Subject: Re: Status update** **To: mmalmi@cc.hut.fi** I've also been busy with other things for the last month and a half. I just now downloaded my e-mail since the beginning of April. I mostly have things sorted and should be back to Bitcoin shortly. Glad that you've been handling things in my absence. Congrats on your first transaction! As I recall, the code was nearly ready for a 0.3 release. I think all it needed was a little testing time and to install the new icon xpm. The JSON API functions are complete. I wanted to take another fresh look at them in case I think of any better function names before committing. I ought to write some sample code showing the proper way to use them, particularly with polling for received transactions. When I left off, I was thinking about bolting a payment mechanism onto a free upload server software as an example. It would make sense to actually build one practical application with the API before releasing it. You don't realise the problems with an API until you actually try to use it. _mmalmi@cc.hut.fi wrote:_ _> Hi!_ _>_ _> How are you doing? Haven't seen you around in a while._ _>_ _> I've been at full-time work lately, and will be until the end of June,_ _> so I haven't had that much time to work with Bitcoin or my exchange_ _> service. I have a working beta of my service though, and a few weeks ago_ _> made my first transaction: sold 10,000 btc for 20 euros via EU bank_ _> transfer. Maybe I can make it public soon._ _>_ _> I divided the forum into 6 boards, which are Bitcoin Discussion,_ _> Development & Technical Discussion, Technical support, Economics,_ _> Marketplace and Trading Discussion. Hope this is ok?_ _>_ _> I also added a page "Trade" on the bitcoin.org site, where btc-accepting_ _> services are listed. It's nice to see that there are already useful_ _> services that accept btc._ _>_ _> The community has been growing nicely. We've had around 10-20 people and_ _> active discussion at #bitcoin-dev lately._ _>_ _> It would be nice to get the daemon-able binaries to SF.net. We have some_ _> skilled programmers in the community now, so maybe we can finish the_ _> JSON API functions if you don't have time to._ _>_ _> Best regards._ _>_ **BitcoinTalk** Re: Could the bitcoin network be destroyed by someone generating endless bitcoin add _2010-05-16 21:01:44 UTC_ - [-](https://bitcointalk.org/index.php?topic=130.msg1130#msg1130) When you generate a new bitcoin address, it only takes disk space on your own computer (like 500 bytes). It's like generating a new PGP private key, but less CPU intensive because it's ECC. The address space is effectively unlimited. It doesn't hurt anyone, so generate all you want. **BitcoinTalk** Re: For a website taking payments with bitcoins, better: IP or bitcoin addresses? _2010-05-16 21:37:36 UTC_ - [-](https://bitcointalk.org/index.php?topic=129.msg1131#msg1131) [_**Quote from: Xunie on May 14, 2010, 09:52:53 PM**_](https://bitcointalk.org/index.php?topic=129.msg1124#msg1124) _I suggest we disable IP transactions while the user uses a Proxy! Just to be on the safe side._ That's a good idea. At the very least a warning dialog explaining that it'll connect to the IP and send the information cleartext, giving the chance to cancel. **BitcoinTalk** Re: Exception: 9key_error error _2010-05-16 22:53:59 UTC_ - [-](https://bitcointalk.org/index.php?topic=135.msg1133#msg1133) Does it happen every time you run it, or just happened once at some random time? I've never seen that fail before. It's a call to OpenSSL that I assumed would never fail, but I put an error check there just in case. I can't imagine how it would fail. Out of memory maybe. The code is: key.h: EC_KEY* pkey; pkey = EC_KEY_new_by_curve_name(NID_secp256k1); if (pkey == NULL) throw key_error("CKey::CKey() : EC_KEY_new_by_curve_name failed"); NID_secp256k1 is a constant. **BitcoinTalk** Re: removing bitcoin addresses _2010-05-16 23:34:40 UTC_ - [-](https://bitcointalk.org/index.php?topic=101.msg1134#msg1134) SheriffWoody: Bitcoin addresses you generate are kept forever. A bitcoin address must be kept to show ownership of anything sent to it. If you were able to delete a bitcoin address and someone sent to it, the money would be lost. They're only about 500 bytes. sirius-m: Thousands of own addresses should not be any problem at all. If you've generated 50000 BTC, then you already have 1000 own addresses, one for each 50 generated. Those are hidden, they're not shown in the UI. It would be a good idea to add a little code that keeps giving the same address to the same IP. Here's what I did in C++ to keep giving the same key (aka bitcoin address) until they use it: // Keep giving the same key to the same ip until they use it if (!mapReuseKey.count(pfrom->addr.ip)) mapReuseKey[pfrom->addr.ip] = GenerateNewKey(); ...sends the key mapReuseKey[pfrom->addr.ip] ...later... // Received something with this key mapReuseKey.erase(pfrom->addr.ip); If it's not convenient to know when you've received, just clear the cached keys every 20 minutes. I want to add a parameter to getnewaddress for number of days to expire if nothing is received with the address. **BitcoinTalk** Re: Setting up multiple bitcoin machines behind NAT _2010-05-16 23:56:03 UTC_ - [-](https://bitcointalk.org/index.php?topic=54.msg1135#msg1135) At the moment, it always assumes the incoming port is 8333, so it would tell other bitcoin nodes to connect to router:8333 even if you're redirecting from another port number. I'm not in a big hurry to fix this because I can't think of any benefit to having more than one incoming connection port. If you're providing one incoming port, then you've done your bit to help the network. Having two incoming ports to the same person doesn't help redundancy. If you have many computers, then using the -connect switch on most of them to connect locally makes more sense. **BitcoinTalk** Re: Is there a way to automate bitcoin payments for a website? _2010-05-18 02:58:11 UTC_ - [-](https://bitcointalk.org/index.php?topic=112.msg1143#msg1143) A little late, but in case anyone else has the same issue. The compile dump had 2 warnings (that were 20 lines long) and 2 link errors. The errors were: _**Quote**_ _obj/nogui/init.o(.gnu.linkonce.t._ZNK13wxArrayString4ItemEm+0x13): In function `wxArrayString::Item(unsigned long) const': /usr/local/include/wx-2.9/wx/buffer.h:42: undefined reference to `wxTheAssertHandler' obj/nogui/init.o(.gnu.linkonce.t._ZNK13wxArrayString4ItemEm+0x45): In function `wxArrayString::Item(unsigned long) const': /usr/src/bitcoin/trunk/uint256.h:526: undefined reference to `wxOnAssert(char const*, int, char const*, char const*, wchar_t const*)'_ Those are probably due to switching to the release build of wxWidgets instead of debug. They're moving towards only debug build and ditching the release build, so they probably don't care that their release build is broken by referring to non-existent assert stuff. There's nothing to fear about the debug build. It's fully suitable for releases. bitcoind runs as a daemon and can either be controlled by command line or JSON-RPC. Thanks madhatter and generica for detailing the instructions for building on freebsd. **BitcoinTalk** Re: Ummmm... where did my bitcoins go? _2010-05-18 20:06:46 UTC_ - [-](https://bitcointalk.org/index.php?topic=125.msg1149#msg1149) It's not the download so much as verifying all the signatures in all the blocks as it downloads that takes a long time. How long is the initial block download typically taking? Does it slow down half way through or is about the same speed the whole way? I've thought about ways to do a more cursory check of most of the chain up to the last few thousand blocks. It is possible, but it's a lot of work, and there are a lot of other higher priority things to work on. Simplified Payment Verification is for lightweight client-only users who only do transactions and don't generate and don't participate in the node network. They wouldn't need to download blocks, just the hash chain, which is currently about 2MB and very quick to verify (less than a second to verify the whole chain). If the network becomes very large, like over 100,000 nodes, this is what we'll use to allow common users to do transactions without being full blown nodes. At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated. SPV is not implemented yet, and won't be implemented until far in the future, but all the current implementation is designed around supporting it. In the meantime, sites like [vekja.net](http://vekja.net/) and [www.mybitcoin.com](http://www.mybitcoin.com/) have been experimenting with account-based sites. You create an account on a website and hold your bitcoins on account there and transfer in and out. Creating an account on a website is a lot easier than installing and learning to use software, and a more familiar way of doing it for most people. The only disadvantage is that you have to trust the site, but that's fine for pocket change amounts for micropayments and misc expenses. It's an easy way to get started and if you get larger amounts then you can upgrade to the actual bitcoin software. **BitcoinTalk** Re: We accept Bitcoins _2010-05-20 21:43:42 UTC_ - [-](https://bitcointalk.org/index.php?topic=30.msg1169#msg1169) [_**Quote from: DataWraith on May 19, 2010, 07:52:42 PM**_](https://bitcointalk.org/index.php?topic=30.msg1161#msg1161) _Can I just butt in with a question on why that is? To me it seems that if Bitcoin uses public-key cryptography to transfer ownership of the coins, it should be a trivial matter to include a short message that is only readable by the recipient._ Almost but not quite. Bitcoin uses EC-DSA, which can only do digital signing, not encryption. RSA can do both, but I didn't use it because it's an order of magnitude bigger and would have been impractical. ##### BitcoinTalk #### JSON-RPC programming tips using labels ##### _2010-05-26 18:27:25 UTC_ - [-](https://bitcointalk.org/index.php?topic=157.msg1252#msg1252) I added label related functions to help with managing multiple addresses per user. New or renamed functions are: getreceivedbyaddress -- amount received on a single address getreceivedbylabel -- amount received by all addresses with this label listreceivedbyaddress -- list addresses and amounts they've received listreceivedbylabel -- list labels and amounts they've received setlabel -- misc label functions for completeness getlabel getaddressesbylabel For consistency I renamed getamountreceived->getreceivedbyaddress and getallreceived->listreceivedbyaddress. The old names are still there so as not to break existing code, but they're deprecated. The idea is that if you give the username whenever you call getnewaddress, you can get the user's total received across all their addresses using the "bylabel" functions. You can freely change their address without worrying about tracking all their old addresses. A good way to automate changing the user's receiving address: just before displaying their current address, check if it has been used to receive anything, if it has then replace it with a new one: // Get a new address whenever the current one has received anything if (strAddr == "" || getreceivedbyaddress(strAddr) > 0) strAddr = getnewaddress(strUsername); // Label the address with username Display(strAddr); // Display their current receiving address // Get total received by all the user's addresses getreceivedbylabel(strUsername, 0) // unconfirmed getreceivedbylabel(strUsername, 1) // available balance If you're just getting one particular user's balance, such as in response to a page request by that user, use getreceivedbylabel, but if you're scanning over all users, it's better to use listreceivedbylabel to get the complete list and scan against the result. Scanning users with getreceivedbylabel would be n-squared, using listreceivedbylabel is n-log-n (or n linear). You should only really need to scan all users if you're polling in order to spontaneously take action in response to money received, rather than the user going to a webpage, seeing their balance and telling you what to do with it. It's not necessary to poll very frequently. If you require 1 confirmation, that'll take an average of 10 minutes anyway, so there's no point in polling more often than every few minutes. If you're selling digital goods and services, where you don't lose much if someone gets a free access, and it can't be resold for profit, I think you're fine to accept 0 confirmations. It's mostly only if you were selling gold or currency that you'd need multiple confirmations. ##### BitcoinTalk #### Re: Tracing a coin's lineage ##### _2010-05-26 18:51:04 UTC_ - [-](https://bitcointalk.org/index.php?topic=154.msg1254#msg1254) [_**Quote from: Xunie on May 26, 2010, 12:50:04 AM**_](https://bitcointalk.org/index.php?topic=154.msg1242#msg1242) _Can't we force a user to use a new address for receiving payments? Every time a payment is received display another Bitcoin address in the address bar. (only transactions via Bitcoin addresses, NOT IPs of course, since that'd be useless, right?) The actual key would still be kept to ensure that the user would still receive payments of people sending to the same address._ This is on my list. I will soon make the "Your Bitcoin Address:" window automatically change whenever you receive anything to the address displayed. I'm also recommending this approach for the implementation of web apps. I just posted some sample code showing a suggested way of implementing this. Versions on SVN since 0.2.4 already have a "New..." button next to the address bar to encourage changing it manually too. @theymos: If nothing else, we can fall back on that solution in the future. ##### BitcoinTalk #### Re: CLI bitcoin generation ##### _2010-05-26 20:09:34 UTC_ - [-](https://bitcointalk.org/index.php?topic=145.msg1256#msg1256) [_**Quote from: molybdenum on May 22, 2010, 06:44:20 PM**_](https://bitcointalk.org/index.php?topic=145.msg1194#msg1194) _An optional parameter to specify the minimum number of blocks after that transaction (getallreceived 1 for current behavior, or just getallreceived, getallreceived 5 for the paranoid, getallreceived 0 for instant confirms)?_ Yeah, that actually is what it is. getallreceived 0 should do what you want. (now it's renamed to listreceivedbyaddress 0) The default is 1 confirmation, but I think in reality most digital goods and services can be 0 confirmations. Like you say, if you need more than 0 confirmations, you could show two numbers, unconfirmed and available balance, so they immediately see their transaction went through. listreceivedbyaddress [minconf=1] [includeempty=false] [minconf] is the minimum number of confirmations before payments are included. [includeempty] whether to include addresses that haven't received any payments. Returns an array of objects containing: "address" : receiving address "label" : the label of the receiving address "amount" : total amount received by the address "confirmations" : number of confirmations of the most recent transaction included or listreceivedbylabel if you're labelling addresses with their username. So far I've concentrated on functions for web merchants, not so much on stuff for remote management of headless coin generators yet. ##### BitcoinTalk #### Re: Share database blocks ? ##### _2010-05-26 20:34:34 UTC_ - [-](https://bitcointalk.org/index.php?topic=153.msg1258#msg1258) It does in fact download 500 blocks at a time, then the counter counts one at a time as it verifies the blocks. The advantage of letting bitcoin download and verify the blocks is that you do not have to trust the person you're downloading them from. If you downloaded the blk*.dat files from some site, you would have to trust that site, since you would be accepting the data without verifying it yourself. If you're copying blk*.dat from another computer of yours, that should be fine. How long is the initial block download taking for you? ##### BitcoinTalk #### Re: Website translations ##### _2010-05-26 21:16:34 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg1259#msg1259) Does anyone want to translate the Bitcoin client itself? It would be great to have at least one other language in the 0.3 release. All you have to do is get poedit and translate the po file I'm attaching to this post. It's less than 750 words. Updated bitcoin.po attachment for 0.3.1 ##### BitcoinTalk #### Re: Odd amount of generated coins ##### _2010-05-26 21:34:32 UTC_ - [-](https://bitcointalk.org/index.php?topic=141.msg1260#msg1260) In the SVN version, if a transaction requires a transaction fee, it says "This transaction is over the size limit. You can still send it for a fee of #, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?" If you don't have enough money with the fee added, it says "Total exceeds your balance when the # transaction fee is included " ##### BitcoinTalk #### Re: Website translations ##### _2010-05-27 14:18:22 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg1269#msg1269) Hurray! We have our first language. I uploaded it to SVN to go in with the 0.3 release. **BitcoinTalk** Re: Hostnames instead of IP Addresses _2010-06-02 18:18:15 UTC_ - [-](https://bitcointalk.org/index.php?topic=158.msg1322#msg1322) The current sending by IP is not very useful: it connects to the IP, so you'd like to use TOR for anonymity, but then it can totally be eavesdropped and man-in-the-middled. The future plan for sending to an IP is to make it a bitcoin address plus IP, like: 1auaDZCFYqaGx4FKS5WenNfurk2SkoDu4h<someseparatorcharacter>1.2.3.4 or 1auaDZCFYqaGx4FKS5WenNfurk2SkoDu4h<someseparatorcharacter>domain.com I need suggestions for the separator character. ":" is a candidate, but IPv6 has : in it and that might get confusing. Something that's allowed in url parameters would be nice. I want to use SSL for the connection, using the bitcoin address' public key as the cert. You would be certain you're connected to who you thought, and safely encrypted. The bitcoin address would not be used for the transaction, only for authentication. A new generated bitcoin address would be sent through the SSL connection. Since it's authenticated, it would then be safe to allow the IP address to be a domain name. Some care taken that if a proxy is used, it uses socks4a instead of DNS lookup. ##### BitcoinTalk #### Re: Proof-of-work difficulty increasing ##### _2010-06-02 18:45:38 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg1323#msg1323) That's a good idea. I'm not sure where exactly to fit that in, but it could certainly calculate the expected average time between blocks generated, and then people would know what to expect. Every node and each processor has a different public key in its block, so they're guaranteed to be scanning different territory. Whenever the 32-bit nonce starts over at 1, bnExtraNonce gets incremented, which is an arbitrary precision integer. ##### BitcoinTalk #### Re: Website translations ##### _2010-06-02 22:18:09 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg1324#msg1324) I uploaded the 93% complete Dutch translation to SVN. Thanks! ##### BitcoinTalk #### Re: On IRC bootstrapping ##### _2010-06-14 18:13:21 UTC_ - [-](https://bitcointalk.org/index.php?topic=84.msg1579#msg1579) Bitcoin has its own distributed address directory using the "addr" message. It's about time we coded in a list of the current long running static nodes to seed from. I can add code so new nodes do not preferentially stay connected to the seed nodes, just connect and get the list, so it won't be a burden on them. What do you think, should I go ahead with adding the seeds? It'll still try IRC first. The IRC has the advantage that it lists nodes that are currently online, since they have to stay connected to stay on the list, but the disadvantage that it's a single point of failure. The "addr" system has no single point of failure, but can only tell you what nodes have recently been seen, so it takes a little longer to get connected since some of the nodes you try have gone offline. The combination of the two gets us the best of both worlds and more total robustness. Is there anyone who wants to volunteer to run an IRC server in case freenode gets tired of us? ##### BitcoinTalk #### Re: Hostnames instead of IP Addresses ##### _2010-06-14 19:53:44 UTC_ - [-](https://bitcointalk.org/index.php?topic=158.msg1582#msg1582) SirArthur has a good point about the normal online merchant case, which is what the send-by-IP option is more suited to. This is the case where the merchant will have a server on a static IP and their own domain name and SSL cert. Instead of connecting by IP, we can connect to a domain name by SSL, using the existing CA infrastructure to authenticate that you're connected to the owner of that domain. The user would send to domain.com (or [www.domain.com](http://www.domain.com/) is ok too). That would be very natural and users could see and verify that what they entered is who they intend to pay. The SSL also makes it safe for TOR users. Problem is, I think merchants would still prefer to use bitcoin addresses to be certain they know what the payment is for. You simply cannot count on users to enter the right thing in the comment fields to identify the transaction. It would only approach practical if we had a mailto style link that prepopulates the comment field with the order number, but then the link could just as well be a bitcoin address. Just having an open bitcoin server at domain.com that users could send unidentified payments to would be too much of a liability. Regular users aren't used to the idea of having to identify the payment. Merchants would get too many blank payments followed by "I paid you, where's my stuff?!" a week later. The payment sequence does have a step where the receiver verifies the order before accepting it. It can reject the payment and return an error message if it doesn't contain a valid order number. That would require a difficult level of integration of custom code with the bitcoin server though. ##### BitcoinTalk #### Re: Dealing with SHA-256 Collisions ##### _2010-06-14 20:39:50 UTC_ - [-](https://bitcointalk.org/index.php?topic=191.msg1585#msg1585) SHA-256 is very strong. It's not like the incremental step from MD5 to SHA1. It can last several decades unless there's some massive breakthrough attack. If SHA-256 became completely broken, I think we could come to some agreement about what the honest block chain was before the trouble started, lock that in and continue from there with a new hash function. If the hash breakdown came gradually, we could transition to a new hash in an orderly way. The software would be programmed to start using a new hash after a certain block number. Everyone would have to upgrade by that time. The software could save the new hash of all the old blocks to make sure a different block with the same old hash can't be used. ##### BitcoinTalk #### Re: Technical clarifications ##### _2010-06-14 22:21:55 UTC_ - [-](https://bitcointalk.org/index.php?topic=179.msg1588#msg1588) 3) Nothing, if sending by bitcoin address 5) It is decentralised. After you have connected to the network the first time, you no longer need IRC. ##### BitcoinTalk #### Re: Can't Build r80 from SVN ##### _2010-06-14 22:40:14 UTC_ - [-](https://bitcointalk.org/index.php?topic=163.msg1590#msg1590) Sorry, I didn't test compile on linux the last few revisions. Reverted makefile.unix. ##### BitcoinTalk #### Re: What is the incentive to collect transactions? ##### _2010-06-15 23:41:29 UTC_ - [-](https://bitcointalk.org/index.php?topic=165.msg1595#msg1595) [_**Quote from: theymos on June 05, 2010, 04:26:09 PM**_](https://bitcointalk.org/index.php?topic=165.msg1373#msg1373) _Adding transactions to the block you're working on will slow down your generation rate_ The premise is false. Adding more transactions to the block you're working on does NOT slow down your generation rate. When generate is scanning hashes, it only hashes the header of the block, which is constant size. The header contains a hash of the transactions (the Merkle root) and is only updated occasionally. If necessary I can write code to make nodes prefer not to use a block if it doesn't contain enough of the transactions they know about. A discouraged block would almost always fail to be included in the main chain, but would be accepted if it did get in. I doubt this will be necessary, since there's no real advantage for nodes not to include all transactions. ##### BitcoinTalk #### Re: URI-scheme for bitcoin ##### _2010-06-16 00:15:47 UTC_ - [-](https://bitcointalk.org/index.php?topic=55.msg1596#msg1596) [http://127.0.0.1:8330/?to=domain.com&amount=200.00&comment=order_12345](http://127.0.0.1:8330/?to=domain.com&amount=200.00&comment=order_12345) or [http://127.0.0.1:8330/?to=](http://127.0.0.1:8330/?to=)<bitcoinaddress><separatorchar>1.2.3.4&amount=200.00 But as long as the link is already doing the typing for you, I don't see much benefit in using a domain address instead of bitcoin address. With a bitcoin address, the user can't send an unidentified payment. They can't send payment until they've been given a correct bitcoin address to send to. What would be nice about sending by domain is you could visually verify who it's going to. A more crucial issue is what if the browser isn't allowed to connect to 127.0.0.1: [http://BitcoinTalk.org/index.php?topic=63.msg1589#msg1589](http://bitcointalk.org/index.php?topic=63.msg1589#msg1589) and if that's true, then what about that example freenet link that had 127.0.0.1 in it? ##### BitcoinTalk #### Re: Website translations ##### _2010-06-16 16:53:34 UTC_ - [-](https://bitcointalk.org/index.php?topic=151.msg1600#msg1600) Thanks DataWraith! The German translation is uploaded to SVN. This is great, we've already got 3 major languages. ##### BitcoinTalk #### Re: new binary release? ##### _2010-06-17 17:07:56 UTC_ - [-](https://bitcointalk.org/index.php?topic=184.msg1609#msg1609) I'm working on getting version 0.3 released as soon as I can. Just a last few things left to do. It's been a long time since 0.2 and we need to get a prebuilt bitcoind with command line and JSON-RPC available. This time we'll have both 32-bit and 64-bit linux binaries, and Laszlo is going to build a Mac OSX release. Plus, we'll include the German, Dutch and Italian translations by DataWraith, Xunie and Joozero (thanks you guys!). ##### BitcoinTalk #### Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG ##### _2010-06-17 18:46:08 UTC_ - [-](https://bitcointalk.org/index.php?topic=195.msg1611#msg1611) The nature of Bitcoin is such that once version 0.1 was released, the core design was set in stone for the rest of its lifetime. Because of that, I wanted to design it to support every possible transaction type I could think of. The problem was, each thing required special support code and data fields whether it was used or not, and only covered one special case at a time. It would have been an explosion of special cases. The solution was script, which generalizes the problem so transacting parties can describe their transaction as a predicate that the node network evaluates. The nodes only need to understand the transaction to the extent of evaluating whether the sender's conditions are met. The script is actually a predicate. It's just an equation that evaluates to true or false. Predicate is a long and unfamiliar word so I called it script. The receiver of a payment does a template match on the script. Currently, receivers only accept two templates: direct payment and bitcoin address. Future versions can add templates for more transaction types and nodes running that version or higher will be able to receive them. All versions of nodes in the network can verify and process any new transactions into blocks, even though they may not know how to read them. The design supports a tremendous variety of possible transaction types that I designed years ago. Escrow transactions, bonded contracts, third party arbitration, multi-party signature, etc. If Bitcoin catches on in a big way, these are things we'll want to explore in the future, but they all had to be designed at the beginning to make sure they would be possible later. I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network. The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint. ----