中本聪在 BitcoinTalk 的发言
注:转自 Satoshi Nakamoto Institute 编辑整理的版本
-------------
Welcome to the new Bitcoin forum!
2009-11-22 18:04:28 UTC - Original Post - View in Thread
http://bitcoin.sourceforge.net/boards/index.php I'll repost some selected threads here and add updated answers to questions where I can.FAQ
http://bitcoin.sourceforge.net/wiki/index.php?page=FAQ
--------------------
Repost: Bitcoin Maturation
2009-11-22 18:31:44 UTC - Original Post - View in Thread
bitcoinbitcoin:
Bitcoin Maturation
Posted:Thu 01 of Oct, 2009 (14:12 UTC)From the user's perspective the bitcoin maturation process can be broken down into 8 stages.
1. The initial network transaction that occurs when you first click Generate Coins.
2. The time between that initial network transaction and when the bitcoin entry is ready to appear in the All Transactions list.
3. The change of the bitcoin entry from outside the All Transaction field to inside it.
4. The time between when the bitcoin appears in the All Transfers list and when the Description is ready to change to Generated (50.00 matures in x more blocks).
5. The change of the Description to Generated (50.00 matures in x more blocks).
6. The time between when the Description says Generated (50.00 matures in x more blocks) to when it is ready to change to Generated.
7 The change of the Description to Generated.
8. The time after the Description has changed to Generated.Which stages require network connectivity, significant local CPU usage and or significant remote CPU usage? Do any of these stages have names?
sirius-m:
Re: Bitcoin Maturation
Posted:Thu 22 of Oct, 2009 (02:36 UTC)
--------------------
Repost: Request: Make this anonymous?
2009-11-22 18:32:00 UTC - Original Post - View in Thread
anonguy54:
Request: Make this anonymous?
Posted:Thu 15 of Oct, 2009 (19:58 UTC)Are there any plans to make this service anonymous?
--------------------
Re: Repost: Bitcoin Maturation
2009-11-22 18:34:21 UTC - Original Post - View in Thread
--------------------
Re: Repost: Request: Make this anonymous?
2009-11-22 18:35:15 UTC - Original Post - View in Thread
--------------------
Repost: How anonymous are bitcoins?
2009-11-25 18:15:57 UTC - Original Post - View in Thread
bitcoinbitcoin:
How anonymous are bitcoins?Can nodes on the network tell from which and or to which bitcoin address coins are being sent? Do blocks contain a history of where bitcoins have been transfered to and from? Can nodes tell which bitcoin addresses belong to which IP addresses? Is there a command line option to enable the sock proxy the first time that bitcoin starts? What happens if you send bitcoins to an IP address that has multiple clients connected through network address translation (NAT)?
--------------------
Re: Repost: How anonymous are bitcoins?
2009-11-25 18:17:23 UTC - Original Post - View in Thread
> Can nodes on the network tell from which and or to which bitcoin
> address coins are being sent? Do blocks contain a history of where
> bitcoins have been transfered to and from?
> Can nodes tell which bitcoin addresses belong to which IP addresses?
> Is there a command line option to enable the sock proxy the first> time that bitcoin starts?
bitcoin -proxy=127.0.0.1:9050 -addnode=<someipaddress>
> What happens if you send bitcoins to an IP address that has multiple
> clients connected through network address translation (NAT)?
--------------------
Repost: Linux/UNIX compile
2009-11-27 17:17:22 UTC - Original Post - View in Thread
scott:
Linux/UNIX compile
Posted:Thu 08 of Oct, 2009 (05:49 UTC)Can we get instructions or modifications to compile and install BitCoin on Linux? A command line version would be great.
--------------------
Re: Repost: Linux/UNIX compile
2009-11-27 17:27:09 UTC - Original Post - View in Thread
--------------------
[OLD THREAD] Bitcoin version 0.2 development status
2009-11-27 22:48:39 UTC - Original Post - View in Thread
- Autostart on boot option so you can keep it running in the background automatically
- New options dialog layout
- Setup EXE for Windows, in addition to the archive download
- Proxy support
--------------------
Re: A few suggestions
2009-12-09 18:45:10 UTC - Original Post - View in Thread
Helpful suggestions, thanks.
- When the bitcoin software establishes a connection with a peer (client TCP socket) have the client send the handshake string. Right now you have the server (server TCP socket) send the handshake. My reasons for this are anonymity of course. It is far too easy for ISPs to portscan clients and detect they are running this program.
That's a good idea. The side accepting the connection just needs to withhold from sending anything until it receives a valid handshake. Any portscan would only get a dead connection that doesn't volunteer to identify itself.
Quote- Use some sort of encryption during the handshake (sort of goes with the statement/request above) to obfuscate what the software is during DPI (deep packet inspection). I am really thinking about people in non-free (as in freedom) countries such as China/Iran.
I have thought about eventually SSLing all the connections. I assume anything short of SSL would be pointless against DPI. Maybe a better more immediate solution is to connect through TOR, which will be possible with 0.2.
Quote- Some sort of an API is needed so that this system can be integrated with websites to provide instant-on services. A simple https receipt mechanism would do wonders. Have the client post each incoming payment to an https url with all of the relevant information and provide status updates. Also an outbound payment mechanism would be nice. So one could automate payments (and batch payments) outbound. Status could be returned via the https receipt interface.
That's one of the main things on the agenda after 0.2.
Quote- Static port/Random port. Have a setting to randomly assign the port that it runs on. (also be able to set it statically for very restrictive firewalls).
Yeah, the other stealth stuff would be kinda pointless if it's always the same port number.
Quote- UPnP support. Have the client automatically create the port forward on upstream routers. Enabled by default. Can be turned off in the options menu.
I'm looking forward to trying UPnP. Do most P2P clients typically have UPnP enabled by default?
Quote- Ability to compile a headless (console only) install for *NIX systems. Also have the ability to just run as a network service. Perhaps with a telnet-able port for control (or even a unix socket would be ok).
I'm still thinking about how best to structure the management interface. Maybe command line commands to communicate with the background daemon to query transactions received and initiate sending transfers. That would be more automation friendly. Or what about an http interface on some port other than 80 to manage it with a browser?
--------------------
Re: A few suggestions
2009-12-10 19:31:49 UTC - Original Post - View in Thread
Front ends can also be ran on clients with very low cpu power such as mobile phones.
That's a good approach for mobile. Programmatic API used by PHP (any language) to present a web UI covers remote admin, mobile and any other client that can't be online all the time with a static IP. It would be like webmail. It would be easier for new users to get started if they only need to create an account on a website, not install software.
QuoteThe app could be pre-seeded before downloading. Pre-seeding would also cure the TOR+IRC problem. I know that people will want to run this system over I2P+TOR.
Yeah, we can phase out IRC when there are enough static nodes to preprogram a seed list. Once you get seeded, you don't need IRC.
QuoteAlso you could pre-seed the blocks so they won't have to be downloaded upon initial run. (Downloading 28,000 blocks on a slower ADSL takes forever I couldn't imagine how long it would take when there are millions of blocks -- a lifetime).
There were some issues in 0.1.5 where the initial block download could get bogged down. 0.2 has code to make sure it goes smoothly. It ought to take less than an hour, I think. I need to hurry up and get 0.2 out the door.The blocks increase linearly, it'll be decades before it's millions. In theory, the block download time should top out 8 months from now when Moore's Law will be growing faster than the block chain.
QuoteCan you give me CVS access or something? (If not, can I send you patches?) I'd like to help out.
It's SVN on sourceforge. PM or e-mail me your sourceforge account and I'll give you access.
QuoteI am mostly a Linux/BSD guy and I would like to lend my expertise in those areas.
That's great because that's where I have less expertise. For instance, I haven't researched the best way to do the "Start Bitcoin on system startup" feature on Linux. On Windows, the option adds/removes an icon in the Startup folder.
--------------------
Re: Questions about Bitcoin
2009-12-10 20:49:02 UTC - Original Post - View in Thread
For that level of anonymity you need to connect through TOR, which will be possible with version 0.2, which is only a few weeks away. I'll post TOR instructions at that time.
Version 0.1.5: backup the whole %appdata%\Bitcoin directory.
Version 0.2: you can backup just wallet.dat.
Nope. The whole design is all about preventing that from working.
Those coins can never be recovered, and the total circulation is less. Since the effective circulation is reduced, all the remaining coins are worth slightly more. It's the opposite of when a government prints money and the value of existing money goes down.
It's currently 29,296 blocks. The circulation is the number of blocks times 50, so the current circulation is 1,464,800 bc.If you only have 24k blocks, it must not have finished the initial block download. Exit bitcoin and start it again. Version 0.2 is better/faster at the initial block download.
Typically a few hundred right now. It's easy now but it'll get harder as the network grows.
Good question, it's TCP. The website needs to be updated to say TCP port 8333.The port forwarding is so other nodes can connect to you, so it helps you stay connected because you are able to be connected with more nodes. You also need it to receive payments by IP address.
No, the other nodes won't accept that.Being open source means anyone can independently review the code. If it was closed source, nobody could verify the security. I think it's essential for a program of this nature to be open source.
Slower machines produce fewer coins. It's proportional to CPU speed.
There are more coming.
It uses a transactional database called Berkeley DB. It will not lose data in a system crash. Transactions are written to the database immediately when they're received.
For now, you can just multiply the total blocks by 50. The Bitcoin network has been running for almost a year now. The design and coding started in 2007.
--------------------
Re: Questions about Bitcoin
2009-12-11 17:58:57 UTC - Original Post - View in Thread
--------------------
Re: A few suggestions
2009-12-11 19:27:55 UTC - Original Post - View in Thread
Right, the SVN has the almost-release-candidate 0.2 source, which can also be built and run on Linux. It hasn't been tested on FreeBSD.
If we can get to the point where we have a working backend process that will run on FreeBSD I can run always-on seeds.
bitcoin -min -gen=0
bitcoin -min -gen
QuoteI really think that having the download package contain a daily seed snapshot will improve the bootstrapping. I have seen instances on new test installs here where the application will sit with 0 connections / 1 block. Upon inspecting the debug.log I find that the IRC server (freenode, I believe) claims I am already connected and refuses to let me seed the application. (Just an example).
I see, that would happen with multiple nodes using the same NAT or VPN or some ISP that funnels everyone through a few proxy servers. I just committed a fix to SVN for this. If it gets "433" name already in use (it was error 433, right?), it'll retry with a non-address random username.
QuoteIn any event, I would like to help. I have a lot of time and a project like this one is very exciting.
That's great, any help is really appreciated!
--------------------
Re: A few suggestions
2009-12-12 17:52:44 UTC - Original Post - View in Thread
--------------------
Re: A few suggestions
2009-12-12 18:17:10 UTC - Original Post - View in Thread
I almost have the svn 0.2 compiling on Mac OS X 10.4.11/Intel (I also have a PPC970 machine here as well so a PPC build would be possible as well). The windowing is native carbon too via wxwidgets! It is FAST! I had to create a new makefile (makefile.osx; based on makefile.unix of course.. given any thought to using autoconf?) and put some ifdef's into header.h. I have patches. I will keep toying around. I might try it on FreeBSD next.
Mac support would be nice. wxWidgets really pays off for cross platform.
Please don't try PPC. PPC is big-endian and Bitcoin is little-endian, there would be endless endian bugs making it harder for me to debug the network if there's a potentially byte-swapping node out there. PPC is on its way out anyway.
Considered autoconf. Autoconf is a necessity for large projects with a quagmire makefile, but I think we're small enough that it's more optimal without it. I'd rather keep the makefile simple as long as possible.
QuoteI think that breaking bitcoin into two apps is ideal. A wxwidgets front end (since it is mostly all there) and a backend that binds to a control TCP socket. I have been reading over the source to see how hard it would be to break it apart and I think it should be fairly simple. Of course an API would have to be developed.
My head hurts just thinking about that. Funnelling all the UI backend through a TCP connection would make everything twice as hard. There's too much bandwidth between the UI and the internal data structures in order to keep the listview control updated, because of the way the listview control works.
I'd rather have command line control, that would get us remote admin and batch automation.
--------------------
Re: A few suggestions
2009-12-13 16:51:25 UTC - Original Post - View in Thread
--------------------
Re: A few suggestions
2009-12-14 17:15:56 UTC - Original Post - View in Thread
Can anyone shed some light here?g++ -c -O0 -Wno-invalid-offsetof -Wformat -g -D__WXMAC__ -DNOPCH -DBUILD_MACOSX -I"/usr/include" -I"/usr/local/include/wx-2.8" -I"/usr/local/include" -I"/usr/local/boost_1_41_0" -I"/sw/include/db4" -I"/usr/local/ssl/include" -I"/usr/local/lib/wx/include/mac-ansi-release-2.8" -o headers.h.gch headers.h
...
ui.h:430: error: no matching function for call to 'wxTextCtrl::SetValue(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
/usr/local/include/wx-2.8/wx/textctrl.h:303: note: candidates are: virtual void wxTextCtrlBase::SetValue(const wxString&)
It looks like the implicit conversion from std::string to wxString isn't working. \u00a0That's used everywhere, the conversion needs to work.
wxString is complicated by supporting win32's 16-bit wchar and 8-bit ansi dual-compile. \u00a0You can get that problem on Windows if the "unicode" (meaning wchar) build is used, so that wxString is wchar and std::string is char.
It's probably some wxWidgets compile defines or build configuration. \u00a0What "configure" options did you use?
I'm not sure __WXMAC__ is the right define. \u00a0It may be the Mac Classic support that's complicating wxString, and we only want OSX. \u00a0Try __WXOSX__ (or see below)
http://docs.wxwidgets.org/stable/wx_cppconst.html
"There are two wxWidgets ports to Mac OS. One of them, wxMac, exists in two versions: Classic and Carbon. The Classic version is the only one to work on Mac OS version 8. The Carbon version may be built either as CFM or Mach-O (binary format, like ELF) and the former may run under OS 9 while the latter only runs under OS X. Finally, there is a new Cocoa port which can only be used under OS X. To summarize:
* If you want to test for all Mac platforms, classic and OS X, you should test both __WXMAC__ and __WXCOCOA__.
* If you want to test for any GUI Mac port under OS X, use __WXOSX__.
* If you want to test for any port under Mac OS X, including, for example, wxGTK and also wxBase, use __DARWIN__"
--------------------
Re: A few suggestions
2009-12-15 20:37:32 UTC - Original Post - View in Thread
It is also throwing the same std::string issue on the latest version of Ubuntu Linux.
Then it must be something you're doing differently with building or configuring wxWidgets.
What options did you use on the wxWidgets "configure" script? The options I used are in build-unix.txt.
QuoteOne question: how do I enable the debug.log? I have tried stopping bitcoin and touching ~/.bitcoin/debug.log and starting bitcoin again. It never seems to write to the file. Am I missing something?
Never heard of that happening. Is there anything in debug.log?If you touched the file, that sounds like something is there. Does the program have write access to the file?
--------------------
Bitcoin 0.2 released!
2009-12-16 22:45:36 UTC - Original Post - View in Thread
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-win32-setup.exe/download
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-win32.zip/download
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-linux.tar.gz/download
- Minimize to system tray option
- Autostart on boot option so you can keep it running in the background automatically
- New options dialog layout for future expansion
- Setup program for Windows
- Linux version (tested on Ubuntu)
- Multi-processor support for coin generation
- Proxy support for use with TOR
- Fixed some slowdowns in the initial block download
--------------------
Re: A few suggestions
2009-12-17 18:38:06 UTC - Original Post - View in Thread
#ifdef __BSD__
#include <netinet/in.h>
#endif
--------------------
Re: A few suggestions
2009-12-18 17:37:48 UTC - Original Post - View in Thread
--------------------
Re: Is my second Transaction working correctly? +Transfer Question
2010-01-05 20:00:46 UTC - Original Post - View in Thread
The transfer is immediate if you send by IP address. If you send by bitcoin address and the recipient isn't online at the time, it might take 30 minutes or more to see it.
Also, the recipient needs to be synced up with the block chain before it'll see the received transaction. That means the status bar at the bottom needs to say at least 33000 blocks, like "x connections 33200 blocks x transactions".
- Quote
- However, once that transaction was complete, a new transaction hasn't started. Or maybe it has. There's only one transaction in the list but I'm up to 131 Blocks under "Status". Is this the way it's supposed to happen? Does it keep processing on the same transaction and generating coins every 120 blocks or so? Or is it supposed to start a new transaction?
The number of blocks of a transaction is the amount of new blocks that have been generated by the whole network after the transaction. Each new block in the chain means new coins to its creator. One "generated" -transaction in your transaction list means that you have generated one block. You're not the first one to find the concept of a "block" a bit confusing on the first sight.
Would it be clearer if the status said "x confirmations", like:
2/unconfirmed
3/unconfirmed
4/unconfirmed
5/unconfirmed
6 confirmations
7 confirmations
8 confirmations
Each block essentially means another node has confirmed that it agrees with all transactions up to that point.
--------------------
Re: 64bit support
2010-01-14 20:17:20 UTC - Original Post - View in Thread
--------------------
Re: Number of connections?
2010-01-20 20:07:15 UTC - Original Post - View in Thread
--------------------
Re: TOR and I2P
2010-01-20 22:05:28 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin crash when sending coins
2010-01-27 21:52:27 UTC - Original Post - View in Thread
--------------------
Re: A newb's test - anyone want to buy a picture for $1?
2010-01-28 01:01:48 UTC - Original Post - View in Thread
--------------------
Re: Blocks never stop generating?
2010-01-28 01:08:33 UTC - Original Post - View in Thread
Where it says "# blocks" in the status column I'm changing it to say "# confirmations". That might be clearer.
If you doubleclick on the transaction you get a little more information.
--------------------
Re: Bitcoin crash when sending coins
2010-01-28 23:08:02 UTC - Original Post - View in Thread
The resync idea would go through your wallet and check it against the block index to find any transactions that your current computer doesn't realize are already spent. That could happen if they were spent on another computer with a copy of the wallet file, or you had to restore the wallet to a backup from before they were spent. Currently, the software just assumes it always knows whether its transactions are spent because it marks them spent in wallet.dat when it spends them.
A wallet merge tool is possible to implement but much less in demand once resync solves most of the problem. With resync, you could do about the same thing by sending all the money from one wallet to the other. The receiver would resync and discover all its overlapping coins were spent, then receive them in the new transaction.
--------------------
Re: Payment server
2010-01-28 23:26:09 UTC - Original Post - View in Thread
That's the right way to do it as riX says. The software can generate a new bitcoin address whenever you need one for each payment. "Please send X bc to [single-use bitcoin address] to complete your order" When the server receives that amount to the bitcoin address, that could trigger it to automatically fulfil the order or e-mail the shop owner.
Adding command line support is a high priority. It's just a matter of getting the time to code it.
--------------------
Re: A newb's test - anyone want to buy a picture for $1?
2010-01-29 00:22:13 UTC - Original Post - View in Thread
--------------------
Re: 64bit support
2010-01-29 00:42:49 UTC - Original Post - View in Thread
I committed a fix for 64-bit compile and some fixes to support wxWidgets 2.9.0.
There was one compile error in serialize.h with min(sizeof()) that I fixed for 64-bit. The rest of the 64-bit compile errors I was getting were in wxWidgets 2.8.9, so I started working on supporting wxWidgets 2.9.0.
wxWidgets 2.9.0 is UTF-8. We've been using the ANSI version of wxWidgets 2.8.9 in anticipation of wxWidgets UTF-8 support.
I compiled and ran on 64-bit Ubuntu 9.10 Karmic.
I think the only bug left is where the status number is mashed up. I'm not sure why, I have to suspect it's a UTF-8 thing, but no idea how that could happen. Haven't looked into it.
build-unix.txt is updated and two makefiles on SVN:
makefile.unix.wx2.8
makefile.unix.wx2.9
Unfortunately there's still no debian package for either version of wxWidgets we use. They only have the wchar ("unicode") version of wxWidgets 2.8, which is a disaster because wchar wxString doesn't convert to std::string. We use either ANSI wxWidgets 2.8, or wxWidgets 2.9. So you still have to get it and build it yourself.
--------------------
Re: Bitcoin crash when sending coins
2010-02-03 23:29:57 UTC - Original Post - View in Thread
I uploaded this fix to the SVN. It watches for spent coins and updates your wallet on load and also continuously as blocks come in. I also put a better error message, but it should never hit it because it always finds spent coins ahead of time, unless you spent the same money at the same time on two computers at once.
If you want to try it, PM or e-mail me your e-mail address where I can send it as an attachment and also what OS (win, linux 32-bit, linux 64-bit).
--------------------
Re: Win32 CPU Cycles vs 'Live Protection' Engines ?
2010-02-03 23:36:54 UTC - Original Post - View in Thread
--------------------
Re: Questions about Addresses
2010-02-04 00:07:07 UTC - Original Post - View in Thread
Port forwarding forwards a port to one computer. It tells the router which computer handles connections to that port. So that's the computer receiving.
If you didn't set up port forwarding, then incoming connections won't go to any computer, and attempts to send to that IP would just say it couldn't connect to the recipient and nothing is sent. When sending by IP, you still send to a bitcoin address, but your computer connects to that IP, gets a new bitcoin address from it, gives the transaction directly to the them and confirms that it was received and accepted.
Someone should post their static IP so people can try out sending by IP and also give that user free money.
There's a 32-bit checksum in bitcoin addresses so you can't accidentally type an invalid address.
If 4) you send to a recipient who has abandoned or lost their wallet.dat, then the money is lost. A subtle point can be made that since there is then less total money in circulation, everyone's remaining money is worth slightly more, aka "natural deflation".
--------------------
Re: TOR and I2P
2010-02-04 00:30:50 UTC - Original Post - View in Thread
When using proxy port 9050, it will only make one attempt to connect to IRC, then give up, since it knows it will probably always fail because IRC servers ban all the TOR exit nodes. If you're using another port, it would assume it might be a regular old normal proxy and would keep retrying IRC at longer and longer intervals. You should not use Polipo or Privoxy as those are http filters and caches that would corrupt Bitcoin's messages if they make any changes. Bitcoin might be trying to overcome it by reconnecting. You should use port 9050.
As riX says, the "is giving Tor only an IP address. Apps that do DNS..." warnings are nothing to worry about. Bitcoin doesn't use DNS at all in proxy mode.
Since Bitcoin can't get through to IRC through Tor, it doesn't know which nodes are currently online, so it has to try all the recently seen nodes. It tries to conserve connection attempts as much as possible, but also people want it to connect quickly when they start it up and reconnect quickly if disconnected. It uses an algorithm where it tries an IP less and less frequently the longer ago it was successful connected. For example, for a node it saw 24 hours ago, it would wait 5 hours between connection attempts. Once it has at least 2 connections, it won't try anything over a week old, and 5 connections it won't try anything over 24 hours old.
--------------------
Proof-of-work difficulty increasing
2010-02-05 19:19:12 UTC - Original Post - View in Thread
We had our first automatic adjustment of the proof-of-work difficulty on 30 Dec 2009.
The minimum difficulty is 32 zero bits, so even if only one person was running a node, the difficulty doesn't get any easier than that. For most of last year, we were hovering below the minimum. On 30 Dec we broke above it and the algorithm adjusted to more difficulty. It's been getting more difficult at each adjustment since then.
The adjustment on 04 Feb took it up from 1.34 times last year's difficulty to 1.82 times more difficult than last year. That means you generate only 55% as many coins for the same amount of work.
The difficulty adjusts proportionally to the total effort across the network. If the number of nodes doubles, the difficulty will also double, returning the total generated to the target rate.
For those technically inclined, the proof-of-work difficulty can be seen by searching on "target:" in debug.log. It's a 256-bit unsigned hex number, which the SHA-256 value has to be less than to successfully generate a block. It gets adjusted every 2016 blocks, typically two weeks. That's when it prints "GetNextWorkRequired RETARGET" in debug.log.
minimum 00000000ffff0000000000000000000000000000000000000000000000000000
30/12/2009 00000000d86a0000000000000000000000000000000000000000000000000000
11/01/2010 00000000c4280000000000000000000000000000000000000000000000000000
25/01/2010 00000000be710000000000000000000000000000000000000000000000000000
04/02/2010 000000008cc30000000000000000000000000000000000000000000000000000
14/02/2010 0000000065465700000000000000000000000000000000000000000000000000
24/02/2010 0000000043b3e500000000000000000000000000000000000000000000000000
08/03/2010 00000000387f6f00000000000000000000000000000000000000000000000000
21/03/2010 0000000038137500000000000000000000000000000000000000000000000000
01/04/2010 000000002a111500000000000000000000000000000000000000000000000000
12/04/2010 0000000020bca700000000000000000000000000000000000000000000000000
21/04/2010 0000000016546f00000000000000000000000000000000000000000000000000
04/05/2010 0000000013ec5300000000000000000000000000000000000000000000000000
19/05/2010 00000000159c2400000000000000000000000000000000000000000000000000
29/05/2010 000000000f675c00000000000000000000000000000000000000000000000000
11/06/2010 000000000eba6400000000000000000000000000000000000000000000000000
24/06/2010 000000000d314200000000000000000000000000000000000000000000000000
06/07/2010 000000000ae49300000000000000000000000000000000000000000000000000
13/07/2010 0000000005a3f400000000000000000000000000000000000000000000000000
16/07/2010 000000000168fd00000000000000000000000000000000000000000000000000
27/07/2010 00000000010c5a00000000000000000000000000000000000000000000000000
05/08/2010 0000000000ba1800000000000000000000000000000000000000000000000000
15/08/2010 0000000000800e00000000000000000000000000000000000000000000000000
26/08/2010 0000000000692000000000000000000000000000000000000000000000000000
date, difficulty factor, % change
2009 1.00
30/12/2009 1.18 +18%
11/01/2010 1.31 +11%
25/01/2010 1.34 +2%
04/02/2010 1.82 +36%
14/02/2010 2.53 +39%
24/02/2010 3.78 +49%
08/03/2010 4.53 +20%
21/03/2010 4.57 +9%
01/04/2010 6.09 +33%
12/04/2010 7.82 +28%
21/04/2010 11.46 +47%
04/05/2010 12.85 +12%
19/05/2010 11.85 -8%
29/05/2010 16.62 +40%
11/06/2010 17.38 +5%
24/06/2010 19.41 +12%
06/07/2010 23.50 +21%
13/07/2010 45.38 +93%
16/07/2010 181.54 +300%
27/07/2010 244.21 +35%
05/08/2010 352.17 +44%
15/08/2010 511.77 +45%
26/08/2010 623.39 +22%
--------------------
Re: Questions about Addresses
2010-02-05 19:44:46 UTC - Original Post - View in Thread
Perhaps there should be a feature against this? For instance, if a transaction isn't accepted by the recipient for a long period of time (a month?), the transaction will be canceled and the coins returned to the one who sent them?
That's not possible. You've handed control of the money over to the recipient's keypair. Only that key can control it.
It's similar to if you encrypt a file with AES and a strong password, and you lose the password. The data is lost.
--------------------
Re: Repost: Request: Make this anonymous?
2010-02-06 21:06:32 UTC - Original Post - View in Thread
--------------------
Re: How divisible are bitcoins and other market/economic questions
2010-02-06 23:25:53 UTC - Original Post - View in Thread
--------------------
fsdfj iasnd fjsd nRe: Make your "we accept Bitcoin" logo
2010-02-08 01:22:29 UTC - Original Post - View in Thread
--------------------
Bitcoin client and website translation
2010-02-08 01:27:02 UTC - Original Post - View in Thread
Thank you for the offer to help translate. That is probably the best way you could help.
I will need to prepare the code for translation first. wxWidgets has locale support, and most strings are in generated code that is already wrapped, so it shouldn't be too hard. We also must finish upgrading to wxWidgets-2.9.0 to get UTF-8 support. I've done test builds with 2.9.0 and there is one bug left to fix.
What operating system are you using? Windows, Linux 32-bit or 64 bit?
Split from another thread.
sirius-m
--------------------
Bitcoin client and website translation
2010-02-08 16:10:37 UTC - Original Post - View in Thread
It's much easier to have a single binary and multiple .mo files. It's too much maintenance work to have lots of build variations. Once the software support is implemented, anyone could contribute translations.
wxWidgets uses the gettext standard. You use the gettext tools or something like poedit to create a .po file by scanning the sourcefiles for strings and editing the translations into the .po file, then compile it into a .mo file. The program loads the .mo file at runtime and reskins all the strings. Additional languages can be added to an existing program by adding .mo files without recompiling the program.
On Windows, the .mo files would go in a lang subdirectory in the directory where the EXE is located.
Right now I'm working on JSON-RPC and command line support, but when I'm finished with that I hope to do this next.
Re: Simple to implement feature requests
2010-02-08 16:37:24 UTC - Original Post - View in Thread
There are command line options:
bitcoin -addnode=1.2.3.4 to tell bitcoin about a node to connect to
bitcoin -connect=1.2.3.4 connect only to the specified node(s)
You can use more than one of these, for instance
bitcoin -connect=(first to try) -connect=(next to try) ...
You can specify non-routable IPs with -connect like 192.168.x.x, so if you had a server farm and you wanted one server to connect to the world and the rest to connect to the one server, you could do that.
In particular, -addnode is needed if you're always going to connect through TOR, since the IRC server blocks all the TOR exit nodes. To connect through TOR, you could use:
bitcoin -proxy=127.0.0.1:9050 -addnode=212.159.72.216
----------
Re: DEB Package?
2010-02-12 02:33:02 UTC - Original Post - View in Thread
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-linux.tar.gz/downloadI recently updated the SVN for building on 64-bit Karmic with wxWidgets 2.9.0. This was after the 0.2.0 release. The 0.2.0 release did not build on 64-bit yet.Unfortunately there currently isn't a -dev deb package of either of the versions of wxWidgets that we can use. On Karmic they only have the UTF-16 version. We need either the ANSI (libwxgtk2.8-ansi-dev) version or the UTF-8 (wxWidgets 2.9.0) version. We're moving towards 2.9.0.I know you said you didn't want VM, but as a last resort, last I checked the Windows version runs fine in Wine.
---------
Re: What's with this odd generation?
2010-02-12 03:08:08 UTC - Original Post - View in Thread
There's a small transaction fee for very large transactions. The node that generates the block that contains the transaction gets the fee.
If the same money gets sent again, it won't incur the fee again. If all you have is generated coins in your wallet, if you send them all in one huge transaction, it has to bundle hundreds of 50 bc coins together. After that it's just one line to send the combined unit.
----------
Re: DEB Package?
2010-02-12 15:57:37 UTC - Original Post - View in Thread
If you want, I can provide you with a precompiled binary.
Am I missing something? Is there something wrong with the 32-bit linux precompiled binary on bitcoin.org?
The bitcoin binary in the distribution static links the wxWidgets library, and its shared links (openssl and GTK) are included in Ubuntu, so it can run without needing to be a .deb to pull down dependencies.
Since we're upgrading to wxWidgets 2.9.0 for UTF-8, which doesn't have a DEB package yet, we'll continue to need to static link it.
-----------------
Re: Repost: Request: Make this anonymous?
2010-02-12 17:28:32 UTC - Original Post - View in Thread
--------------------
Re: DEB Package?
2010-02-13 01:38:37 UTC - Original Post - View in Thread
--------------------
Re: What's with this odd generation?
2010-02-14 06:28:03 UTC - Original Post - View in Thread
Does the sending client send more BitCoins to account for the fee (so the recipient gets what he's expecting)?
Yes.
why do we even need fees ? i thougt the no-fees-feature was one of the advantages of bitcoin ?!
Almost all transactions are free. A transaction is over the maximum size limit if it has to add up more than 500 of the largest payments you've received to make up the amount. A transaction over the size limit can still be sent if a small fee is added.
The average transaction, and anything up to 500 times bigger than average, is free.
It's only when you're sending a really huge transaction that the transaction fee ever comes into play, and even then it only works out to something like 0.002% of the amount. It's not money sucked out of the system, it just goes to other nodes. If you're sad about paying the fee, you could always turn the tables and run a node yourself and maybe someday rake in a 0.44 fee yourself.
--------------------
Re: What's with this odd generation?
2010-02-14 15:52:23 UTC - Original Post - View in Thread
--------------------
Re: Proof-of-work difficulty increasing
2010-02-15 06:28:38 UTC - Original Post - View in Thread
30/12/2009 1.18 +18%
11/01/2010 1.31 +11%
25/01/2010 1.34 +2%
04/02/2010 1.82 +36%
14/02/2010 2.53 +39%
--------------------
Re: Setting up multiple bitcoin machines behind NAT
2010-02-16 01:34:56 UTC - Original Post - View in Thread
bitcoin -connect=<the IP of the first computer>
bitcoin -connect=<IP1> -connect=<IP2>
--------------------
Re: Proof-of-work difficulty increasing
2010-02-16 17:36:40 UTC - Original Post - View in Thread
Satoshi, I figured it will take my modern core 2 duo about 20 hours of nonstop work to create \u0e3f50.00! With older PCs it will take forever. People like to feel that they "own" something as soon as possible, is there a way to make the generation more divisible? So say, instead of making \u0e3f50 every 20 hours, make \u0e3f5 every 2 hours?
I thought about that but there wasn't a practical way to do smaller increments. The frequency of block generation is balanced between confirming transactions as fast as possible and the latency of the network.
The algorithm aims for an average of 6 blocks per hour. If it was 5 bc and 60 per hour, there would be 10 times as many blocks and the initial block download would take 10 times as long. It wouldn't work anyway because that would be only 1 minute average between blocks, too close to the broadcast latency when the network gets larger.
--------------------
Re: Proof-of-work difficulty increasing
2010-02-17 17:58:03 UTC - Original Post - View in Thread
. Perhaps it has to do with my connection's very high latency (2000ms or more on average)
2 seconds of latency in both directions should reduce your generation success by less than 1%.
and/or my high packet loss (sometimes up to 10% loss)?
Probably OK, but I'm not sure. The protocol is designed to resync to the next message, and messages get re-requested from all the other nodes you're connected to until received. If you miss a block, it'll also keep requesting it every time another blocks comes in and it sees there's a gap. Before the original release I did a test dropping 1 out of 4 random messages under heavy load until I could run it overnight without any nodes getting stuck.
--------------------
Re: Bitcoin client and website translation
2010-02-17 19:19:43 UTC - Original Post - View in Thread
/usr/share/locale/<langcode>/LC_MESSAGES/bitcoin.mo
/usr/local/share/locale/<langcode>/LC_MESSAGES/bitcoin.mo
(are there other standard places it should look on linux?)
- In the trunk directory, mkdir locale\<lang>\LC_MESSAGES
- In poedit, File->New catalog->Paths tab
- Click the "New item" dotted rectangle button
- Put "../../.." and MAKE SURE TO PRESS ENTER to add the path
- Click OK
- Save the file as "bitcoin.po" in the LC_MESSAGES directory you made
- It should then scan the sourcecode and find about 170 strings
- If it didn't find anything, check Catalog->Settings->Path tab, make sure the "../../.." was added
--------------------
Re: Number of connections
2010-02-21 03:43:48 UTC - Original Post - View in Thread
--------------------
Post your static IP
2010-02-21 04:19:53 UTC - Original Post - View in Thread
--------------------
Re: Current Bitcoin economic model is unsustainable
2010-02-21 05:44:24 UTC - Original Post - View in Thread
--------------------
UI improvements
2010-02-21 21:48:01 UTC - Original Post - View in Thread
- All Transactions
- Sent/Received
- Sent
- Received
--------------------
Re: generation slowed down dramatically
2010-02-23 00:49:56 UTC - Original Post - View in Thread
--------------------
Re: UI improvements
2010-02-23 01:16:28 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin Address Collisions
2010-02-23 16:26:09 UTC - Original Post - View in Thread
--------------------
Re: UI improvements
2010-02-23 16:53:27 UTC - Original Post - View in Thread
/etc/init.d/gdm start and it will start gdm!
Ah yes, there we go, back to normal again.
The ctrl+alt+F[1-8] thing never worked on this computer. The screen just goes haywire.
--------------------
Command Line and JSON-RPC
2010-02-23 22:15:41 UTC - Original Post - View in Thread
bitcoin -daemon [switches...]
bitcoin -server [switches...]
bitcoin <command> [params...]
bitcoin getinfo
bitcoin getdifficulty
bitcoin setgenerate true
bitcoin stop
--------------------
Re: Bitcoin Address Collisions
2010-02-23 22:24:00 UTC - Original Post - View in Thread
Are generated bitcoins encrypted with whichever address is currently displayed in the main Bitcoin window?
No, each generated transaction uses a new, single-use address.
Nothing uses the address in the main window, it's just there for convenience for you to copy. 0.2.5 has a "New..." button next to it to make it easy to change each time you use it.
--------------------
Re: URI-scheme for bitcoin
2010-02-24 05:57:43 UTC - Original Post - View in Thread
--------------------
Re: Command Line and JSON-RPC
2010-02-24 06:17:23 UTC - Original Post - View in Thread
- Quote from: satoshi on February 23, 2010, 10:15:41 PM
- On Linux it needs libgtk2.0-0 installed
Will this requirement be removed sometime? I'd rather not have to deal with GTK.
How much "dealing with" does GTK actually require? Is it just a matter of "sudo apt-get install libgtk2.0-0" and having some extra libraries sitting around? GTK doesn't have to do anything, just be there for bitcoin to link to when it loads up, have the gtk-init-check call fail because no GUI present, then it's done.It saves us butchering everything with ifdefs and a separate compile and binary to use wxBase just to try to avoid linking GTK.
--------------------
New icon/logo
2010-02-24 21:24:23 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin530.png
--------------------
Re: Make your "we accept Bitcoin" logo
2010-02-24 21:53:52 UTC - Original Post - View in Thread
--------------------
Re: Command Line and JSON-RPC
2010-02-24 22:08:55 UTC - Original Post - View in Thread
--------------------
Re: Proof-of-work difficulty increasing
2010-02-24 22:42:24 UTC - Original Post - View in Thread
--------------------
Re: New icon/logo
2010-02-25 01:56:24 UTC - Original Post - View in Thread
I like them. Do they come in higher resolutions?
Yes, the original is 546x531 pixels.
It looks good at larger size too, but since the small icons are what you mostly always see, I wanted to judge it on those first. I'll post larger sizes and full size a little later.
--------------------
Re: Command Line and JSON-RPC
2010-02-25 22:54:17 UTC - Original Post - View in Thread
OK,I made a build target bitcoind that only links wxBase and does not link GTK. Version 0.2.7 on SVN.
I split out the init and shutdown stuff from ui.cpp into init.cpp, so now ui.cpp is pure UI. ui.h provides inline stubs if wxUSE_GUI=0. We only have four functions that interface from the node to the UI. In the bitcoind build, we don't link ui.o or uibase.o.
It started increasing right away. I'll see if valgrind can help me.
Sure feels like it could be something in wxWidgets retrying endlessly because some UI thing failed or something wasn't inited correctly. Our hack to ignore the initialize failure and run anyway means we're in uncharted territory. We're relying on the fact that we hardly use wx in this mode. We do still use a few things like wxGetTranslation and wxMutex.
Another way to debug would be to run in gdb, wait until everything is quiet and all threads should be idle, and break it and see which thread is busily doing something and what it's doing.
I suspect bitcoind will probably work fine, but I hope you can still debug the problem.
--------------------
Re: Proof-of-work difficulty increasing
2010-02-25 23:06:29 UTC - Original Post - View in Thread
--------------------
Re: Command Line and JSON-RPC
2010-02-26 16:29:21 UTC - Original Post - View in Thread
http://www.oracle.com/technology/documentation/berkeley-db/db/api_reference/CXX/frame_main.html
http://www.oracle.com/technology/documentation/berkeley-db/db/api_reference/CXX/dbexists.html
--------------------
Re: New icon/logo
2010-02-26 23:17:19 UTC - Original Post - View in Thread
--------------------
Re: Command Line and JSON-RPC
2010-02-26 23:48:44 UTC - Original Post - View in Thread
--------------------
Re: New icon/logo
2010-02-27 04:28:29 UTC - Original Post - View in Thread
How about an SVG version? That way we could automatically generate smaller and larger versions as needed.
I don't know how to do SVG, but I did the original very large, over 500 pixels across, so it can be scaled down. I'll give the original when I'm finished.
I had to custom tweak each icon size so the vertical lines land square on their pixels, otherwise they're ugly blurry and inconsistent. Such is the challenge of making icons. The original will be good for scaling to custom sizes between 48 and 500 but not smaller.
--------------------
Re: wxWidgets 2.9.0
2010-02-27 21:22:53 UTC - Original Post - View in Thread
Looking through the source of 2.8.10 it appears that unicode is possible with that version too.
In the Windows world, "unicode" means UTF-16 (wchar).
2.8 has two build variations, ANSI and UTF-16 (unicode). The UTF-16 version is the "unicode" version provided in the Debian package. I believe 2.8 and its UTF-16 build labelled simply "unicode" has been the source of build problems described in the forum. We were previously using 2.8 ANSI in anticipation of getting to UTF-8 without going through UTF-16 hell. We cannot compile with UTF-16.
2.9 has only one version, UTF-8. On Windows, we set the codepage to UTF-8, so on all platforms our code is UTF-8 and wxWidgets interfaces with us in UTF-8. On Linux I assume the codepage is already UTF-8. By standardizing on 2.9 we avoid the multi-build confusion of 2.8, and we need 2.9 for UTF-8 internationalization.
Make sure you read build-unix.txt and configure wxWidgets using the configure parameters given.
Curious, why is it incredibly hard to provide wxWidgets 2.9.0? If you mean for users, that's why we static link it.
It's unfortunate that we require so many big dependencies, but we need them all. At least on Debian/Ubuntu, all but wxWidgets are available as packages. Eventually they'll provide a 2.9 package.
--------------------
Re: New icon/logo
2010-03-02 02:33:05 UTC - Original Post - View in Thread
--------------------
Re: Money Transfer Regulations
2010-03-03 04:28:56 UTC - Original Post - View in Thread
--------------------
Re: Command Line and JSON-RPC
2010-03-05 01:46:25 UTC - Original Post - View in Thread
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.
--------------------
Re: bitcoin auto-renice-ing
2010-03-15 18:44:12 UTC - Original Post - View in Thread
#define THREAD_PRIORITY_BELOW_NORMAL 2
#define THREAD_PRIORITY_NORMAL 0
-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"
setpriority(PRIO_PROCESS, getpid(), nPriority);
--------------------
Idea for file hosting and proxy services
2010-03-15 19:16:56 UTC - Original Post - View in Thread
--------------------
Re: On IRC bootstrapping
2010-03-16 19:48:47 UTC - Original Post - View in Thread
--------------------
Re: Idea for file hosting service
2010-03-16 20:17:34 UTC - Original Post - View in Thread
--------------------
Re: who is bitcoin.com
2010-03-23 15:22:41 UTC - Original Post - View in Thread
--------------------
Re: Exchange Methods
2010-03-23 17:35:34 UTC - Original Post - View in Thread
--------------------
Re: Idea for file hosting and proxy services
2010-03-24 18:01:57 UTC - Original Post - View in Thread
--------------------
Re: Idea for file hosting and proxy services
2010-03-24 18:02:55 UTC - Original Post - View in Thread
http://www.imagez.ws/
http://www.mihalism.net/
http://code.google.com/p/mihalismmh/
--------------------
Re: Could the bitcoin network be destroyed by someone generating endless bitcoin add
2010-05-16 21:01:44 UTC - Original Post - View in Thread
--------------------
Re: For a website taking payments with bitcoins, better: IP or bitcoin addresses?
2010-05-16 21:37:36 UTC - Original Post - View in Thread
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.
--------------------
Re: URI-scheme for bitcoin
2010-05-16 22:37:21 UTC - Original Post - View in Thread
There you go, we could easily do it the same way, like:
http://127.0.0.1:8330/?to=<bitcoinaddress>;amount=<amount>
Bitcoin can answer port 8330 on local loopback just as it does for JSON-RPC on 8332. It would give an HTTP answer.
A bitcoin-link should be more like mailto: than magnet: IMHO.
I think we can do that.
Although it would be possible for Bitcoin to take care of business in the HTTP response by presenting HTML UI to the user, as a user I would wonder if some website is trying to trick me or if I'm really talking to my own Bitcoin server.
The HTTP response could simply be HTML with the JavaScript equivalent of the back button, sending it back to the page. Bitcoin then pops up the Send Bitcoins dialog with the destination bitcoin address and amount already filled in. It would work just like a mailto: link that pops up a new email with the address filled in.
127.0.0.1 loopback is accessible by any user on the machine, it doesn't have per-user separation, but it's OK because it would only serve the convenience function of pre-filling the fields in a dialog. You'd still have to press Send. We'd have to make sure the Send button is not selected so it couldn't jump into the foreground while you're typing a space or enter.
--------------------
Re: Exception: 9key_error error
2010-05-16 22:53:59 UTC - Original Post - View in Thread
EC_KEY* pkey;
if (pkey == NULL)
throw key_error("CKey::CKey() : EC_KEY_new_by_curve_name failed");
--------------------
Re: removing bitcoin addresses
2010-05-16 23:34:40 UTC - Original Post - View in Thread
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.
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.
if (!mapReuseKey.count(pfrom->addr.ip))
mapReuseKey[pfrom->addr.ip] = GenerateNewKey();
mapReuseKey.erase(pfrom->addr.ip);
--------------------
Re: Setting up multiple bitcoin machines behind NAT
2010-05-16 23:56:03 UTC - Original Post - View in Thread
--------------------
Re: Is there a way to automate bitcoin payments for a website?
2010-05-18 02:58:11 UTC - Original Post - View in Thread
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:
Quoteobj/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.
--------------------
Re: Ummmm... where did my bitcoins go?
2010-05-18 20:06:46 UTC - Original Post - View in Thread
--------------------
Re: We accept Bitcoins
2010-05-20 21:43:42 UTC - Original Post - View in Thread
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.
--------------------
JSON-RPC programming tips using labels
2010-05-26 18:27:25 UTC - Original Post - View in Thread
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
if (strAddr == "" || getreceivedbyaddress(strAddr) > 0)
strAddr = getnewaddress(strUsername); // Label the address with username
Display(strAddr); // Display their current receiving address
getreceivedbylabel(strUsername, 0) // unconfirmed
getreceivedbylabel(strUsername, 1) // available balance
--------------------
Re: Tracing a coin's lineage
2010-05-26 18:51:04 UTC - Original Post - View in Thread
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.
--------------------
Re: CLI bitcoin generation
2010-05-26 20:09:34 UTC - Original Post - View in Thread
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.
--------------------
Re: Share database blocks ?
2010-05-26 20:34:34 UTC - Original Post - View in Thread
--------------------
Re: Website translations
2010-05-26 21:16:34 UTC - Original Post - View in Thread
--------------------
Re: Odd amount of generated coins
2010-05-26 21:34:32 UTC - Original Post - View in Thread
"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?"
"Total exceeds your balance when the # transaction fee is included "
--------------------
Re: Website translations
2010-05-27 14:18:22 UTC - Original Post - View in Thread
--------------------
Re: Hostnames instead of IP Addresses
2010-06-02 18:18:15 UTC - Original Post - View in Thread
or
1auaDZCFYqaGx4FKS5WenNfurk2SkoDu4h<someseparatorcharacter>domain.com
--------------------
Re: Proof-of-work difficulty increasing
2010-06-02 18:45:38 UTC - Original Post - View in Thread
--------------------
Re: Website translations
2010-06-02 22:18:09 UTC - Original Post - View in Thread
--------------------
Re: On IRC bootstrapping
2010-06-14 18:13:21 UTC - Original Post - View in Thread
--------------------
Re: Hostnames instead of IP Addresses
2010-06-14 19:53:44 UTC - Original Post - View in Thread
--------------------
Re: Dealing with SHA-256 Collisions
2010-06-14 20:39:50 UTC - Original Post - View in Thread
--------------------
Re: Technical clarifications
2010-06-14 22:21:55 UTC - Original Post - View in Thread
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.
--------------------
Re: Can't Build r80 from SVN
2010-06-14 22:40:14 UTC - Original Post - View in Thread
--------------------
Re: What is the incentive to collect transactions?
2010-06-15 23:41:29 UTC - Original Post - View in Thread
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.
--------------------
Re: URI-scheme for bitcoin
2010-06-16 00:15:47 UTC - Original Post - View in Thread
or
http://127.0.0.1:8330/?to=<bitcoinaddress><separatorchar>1.2.3.4&amount=200.00
http://bitcointalk.org/index.php?topic=63.msg1589#msg1589
--------------------
Re: Website translations
2010-06-16 16:53:34 UTC - Original Post - View in Thread
--------------------
Re: new binary release?
2010-06-17 17:07:56 UTC - Original Post - View in Thread
--------------------
Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG
2010-06-17 18:46:08 UTC - Original Post - View in Thread
--------------------
Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG
2010-06-18 16:17:14 UTC - Original Post - View in Thread
A second version would be a massive development and maintenance hassle for me. It's hard enough maintaining backward compatibility while upgrading the network without a second version locking things in. If the second version screwed up, the user experience would reflect badly on both, although it would at least reinforce to users the importance of staying with the official version. If someone was getting ready to fork a second version, I would have to air a lot of disclaimers about the risks of using a minority version. This is a design where the majority version wins if there's any disagreement, and that can be pretty ugly for the minority version and I'd rather not go into it, and I don't have to as long as there's only one version.
I know, most developers don't like their software forked, but I have real technical reasons in this case.
I admire the flexibility of the scripts-in-a-transaction scheme, but my evil little mind immediately starts to think of ways I might abuse it. I could encode all sorts of interesting information in the TxOut script, and if non-hacked clients validated-and-then-ignored those transactions it would be a useful covert broadcast communication channel.That's a cool feature until it gets popular and somebody decides it would be fun to flood the payment network with millions of transactions to transfer the latest Lady Gaga video to all their friends...
That's one of the reasons for transaction fees. There are other things we can do if necessary.
How long have you been working on this design Satoshi? It seems very well thought out, not the kind of thing you just sit down and code up without doing a lot of brainstorming and discussion on it first. Everyone has the obvious questions looking for holes in it but it is holding up well
Since 2007. At some point I became convinced there was a way to do this without any trust required at all and couldn't resist to keep thinking about it. Much more of the work was designing than coding.
Fortunately, so far all the issues raised have been things I previously considered and planned for.
--------------------
Re: On IRC bootstrapping
2010-06-18 17:28:18 UTC - Original Post - View in Thread
--------------------
Re: Get 5 free bitcoins from freebitcoins.appspot.com
2010-06-18 23:08:34 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin in Ubuntu 10.04
2010-06-21 17:20:21 UTC - Original Post - View in Thread
Bitcoin looks ugly in Ubuntu's new default theme. It seems that some, but not all of the theme settings are being picked up. The unselected file menu should have light text with a dark background, but it incorrectly has light text with a light background. They're similar enough that it's unreadable on my display. It should be fixed before the next stable release.
This is now fixed in the SVN version.
1) Menu bar default color.
2) Balance bar not a different color.
3) Background behind bitcoin address and balance now the same color as toolbar.
I checked all the standard themes and it seems reasonable with all of them.
Ubuntu minimize,maximize,close buttons to the right:
gconf-editor
apps->metacity->general
button_layout=menu:minimize,maximize,close
They've got it awfully buried considering 9 out of 10 users are used to having it on the right.
--------------------
Re: Dying bitcoins
2010-06-21 17:48:26 UTC - Original Post - View in Thread
Lost coins only make everyone else's coins worth slightly more. Think of it as a donation to everyone.
I wonder though, is there a point where the difficulty of generating a new coinbase is so high that it would make more sense to try to recover keys for lost coins or steal other people's coins instead? The difficulty of that is really high so for now it makes a lot more sense to generate but I just wonder what the real figures are.. would that ever become more productive? Maybe Satoshi can address this..
Computers have to get about 2^200 times faster before that starts to be a problem. Someone with lots of compute power could make more money by generating than by trying to steal.
--------------------
Re: Proof-of-work difficulty increasing
2010-06-21 18:09:17 UTC - Original Post - View in Thread
21/06/2010 01:23 hashmeter 2 CPUs 799 khash/s
21/06/2010 01:23 generated 50.00
--------------------
Re: Bitcoin in Ubuntu 10.04
2010-06-22 03:45:56 UTC - Original Post - View in Thread
--------------------
0.3 almost ready -- please test the Mac version!
2010-06-22 04:01:53 UTC - Original Post - View in Thread
--------------------
Re: How fast do the fastest computers generate bitcoins?
2010-06-22 04:35:26 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin in Ubuntu 10.04
2010-06-22 16:39:43 UTC - Original Post - View in Thread
--------------------
Re: Proof-of-work difficulty increasing
2010-06-22 16:51:14 UTC - Original Post - View in Thread
--------------------
Re: 0.3 almost ready
2010-06-22 17:02:07 UTC - Original Post - View in Thread
It would be nice if the listtransactions RPC method were finished before the next release, though.
My fear is too many programmers would latch onto that for checking for received payments. It can never be reliable that way. The list/getreceivedbyaddress/label functions are the only way to do it reliably.
We shouldn't delay forever until every possible feature is done. There's always going to be one more thing to do.
--------------------
Re: 0.3 almost ready
2010-06-22 17:37:08 UTC - Original Post - View in Thread
(removed, see RC2 below)
--------------------
Re: 0.3 almost ready
2010-06-22 19:11:41 UTC - Original Post - View in Thread
EXCEPTION: 22DbRunRecoveryException
DBENv::open: DB_RUNRECOVERY: Fatal error, run database recovery
C:\Program Files\Bitcoinitcoin.exe in OnInit()
What operating system?
Normally when it does that it's because the directory where the data directory should go doesn't exist. See if the "%appdata%" directory exists.
Do you get that error with 0.2 also? It's hard to see how you could get that with 0.3 and not with 0.2 since there's nothing different in that regard.
--------------------
Re: 0.3 almost ready
2010-06-22 19:25:13 UTC - Original Post - View in Thread
rename "%appdata%itcoin" bitcoin2
--------------------
Re: 0.3 almost ready
2010-06-22 19:46:23 UTC - Original Post - View in Thread
--------------------
Re: 0.3 almost ready
2010-06-22 22:23:39 UTC - Original Post - View in Thread
--------------------
Re: 0.3 almost ready
2010-06-24 17:40:05 UTC - Original Post - View in Thread
(link removed, see below)
- Added instructions for building wxBase, which is needed to compile bitcoind.
- The package libboost-dev doesn't install anything anymore, you need to get libboost-all-dev.
- Updated version numbers.
- The libboost libraries have removed the "-mt" from their filenames in 1.40. If you're compiling with Boost 1.38 or lower, like on Ubuntu Karmic, you would need to change it back to boost_system-mt and boost_filesystem-mt.
--------------------
Re: 0.3 almost ready
2010-06-25 02:17:41 UTC - Original Post - View in Thread
/bin32/
/bin64/
instead of
/bin/32/
/bin/64/
--------------------
Re: 0.3 almost ready
2010-06-25 14:10:06 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin clients getting k-lined from the IRC bootstrapping channel
2010-06-25 21:15:15 UTC - Original Post - View in Thread
--------------------
Re: On IRC bootstrapping
2010-06-25 22:40:47 UTC - Original Post - View in Thread
I run an IRC server you can use, it's fairly stable but it's not on redundant connections or anything. It is only two servers right now but we don't mess with it or anything, it just runs.My box is a dedicated irc server:
2:28PM up 838 days, 20:54, 1 user, load averages: 0.06, 0.08, 0.08You can use irc.lfnet.org to connect.
This seems like a good idea.
What does everyone think, should we make the switch for 0.3?
--------------------
Re: 0.3 almost ready
2010-06-26 00:32:09 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin clients getting k-lined from the IRC bootstrapping channel
2010-06-26 14:28:06 UTC - Original Post - View in Thread
http://bitcointalk.org/index.php?topic=199.msg1787#msg1787
--------------------
Re: 0.3 almost ready
2010-06-26 15:10:10 UTC - Original Post - View in Thread
--------------------
Beta?
2010-06-26 17:02:43 UTC - Original Post - View in Thread
--------------------
Re: 1.3 almost ready
2010-06-26 19:21:05 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin mobile.
2010-06-26 20:58:26 UTC - Original Post - View in Thread
You can of course use services like vekja.net or mybitcoin.com on a mobile browser, depositing money there to the extent you trust them.
I think that's the best option right now. Like cash, you don't keep your entire net worth in your pocket, just walking around money for incidental expenses.
They could make a smaller version of the site optimized for mobile. If there was an app, it could be a front end to one of those, with the main feature being QR-code reader, or maybe there's already a universal QR-code reading app that web sites can be designed to accept scans from.
If there was an iPhone app that was just a front end for vekja or mybitcoin, not a big involved P2P, would apple approve it and if not, on what basis? It could always be an Android app instead. An app is not really necessary though, just a mobile sized website.
A web interface to your own Bitcoin server at home wouldn't be a solution for everyone. Most users don't have a static IP, and it's too much trouble to set up port forwarding.
--------------------
Re: Building BitCoin Client completely Headless
2010-06-26 21:06:06 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin Faucet changes
2010-06-26 21:39:52 UTC - Original Post - View in Thread
--------------------
Re: Beta?
2010-06-27 12:43:50 UTC - Original Post - View in Thread
--------------------
Re: IPv6, headless client, and more
2010-06-27 13:02:38 UTC - Original Post - View in Thread
--------------------
Re: 1.3 almost ready
2010-06-27 15:30:13 UTC - Original Post - View in Thread
--------------------
Re: Major Meltdown
2010-06-27 19:06:09 UTC - Original Post - View in Thread
https://www.bitcoin.org/smf/index.php?topic=191.msg1585#msg1585
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.
--------------------
Re: Feature Request: Limiting Connections
2010-07-02 19:21:36 UTC - Original Post - View in Thread
--------------------
Re: 1.3 almost ready
2010-07-02 20:37:17 UTC - Original Post - View in Thread
On a related note, is the thing compilable by Visual C++? I'm inclined to give it a try when I get around to it.
It is, but generating is more than twice as slow.
--------------------
Re: 0.3 almost ready
2010-07-02 21:57:45 UTC - Original Post - View in Thread
--------------------
Re: Beta?
2010-07-02 22:03:41 UTC - Original Post - View in Thread
--------------------
Re: Feature Request: Limiting Connections
2010-07-02 22:20:20 UTC - Original Post - View in Thread
--------------------
Re: 0.3 almost ready -- please test the Mac version!
2010-07-04 21:52:28 UTC - Original Post - View in Thread
--------------------
Re: Slashdot Submission for 1.0
2010-07-05 21:31:14 UTC - Original Post - View in Thread
--------------------
Bitcoin 0.3 released!
2010-07-06 18:32:35 UTC - Original Post - View in Thread
- Includes a daemon version without GUI
- Transaction filter tabs
- 20% faster hashing
- Hashmeter performance display
- Mac OS X version (thanks to Laszlo)
- German, Dutch and Italian translations (thanks to DataWraith, Xunie and Joozero)
--------------------
Re: 0.3 almost ready -- please test the Mac version!
2010-07-06 19:43:18 UTC - Original Post - View in Thread
--------------------
Re: On IRC bootstrapping
2010-07-07 01:31:07 UTC - Original Post - View in Thread
Everybody needs to connect to the same IRC server and channel so they can find each other.
You may want to leave Freenode in as a fallback server -- if his server doesn't work, use Freenode's.
It might not be good if we suddenly rushed freenode with a ton of users all at once.
The fallback is our own seed system.
irc.lfnet.org is pretty old and has impressive uptime. I think it's going to be fine.
We could take IRC out at some point if we want, but I'd rather ease into it and just test our own seed system as a backup for now, and I really like the complementary redundant attributes of the two different systems.
--------------------
Re: bitcoin 0.3 win64 - broken access to APPDATA if non-latin characters in username
2010-07-08 18:24:19 UTC - Original Post - View in Thread
--------------------
Re: Anonymity
2010-07-08 19:12:00 UTC - Original Post - View in Thread
--------------------
Re: bitcoin 0.3 win64 - broken access to APPDATA if non-latin characters in username
2010-07-09 03:01:35 UTC - Original Post - View in Thread
--------------------
Re: BTC Vulnerability? (Massive Attack against BTC system. Is it really?)
2010-07-09 03:28:46 UTC - Original Post - View in Thread
--------------------
Re: bitcoin 0.3 win64 - broken access to APPDATA if non-latin characters in username
2010-07-09 15:37:05 UTC - Original Post - View in Thread
--------------------
Re: Security
2010-07-10 12:58:02 UTC - Original Post - View in Thread
{
if (mapArgs.count("-connect"))
return;
--------------------
Re: Major Meltdown
2010-07-10 13:36:17 UTC - Original Post - View in Thread
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)
--------------------
Re: No blocks downloaded... why?
2010-07-14 16:22:03 UTC - Original Post - View in Thread
--------------------
Re: resource hog
2010-07-14 16:29:39 UTC - Original Post - View in Thread
--------------------
Re: stopped prodicing coins
2010-07-14 17:04:02 UTC - Original Post - View in Thread
--------------------
Re: Building Bitcoin 0.3
2010-07-14 17:34:50 UTC - Original Post - View in Thread
--------------------
Re: bitcoin auto-renice-ing
2010-07-14 17:38:31 UTC - Original Post - View in Thread
--------------------
Re: Stuck on 513 blocks
2010-07-14 18:02:28 UTC - Original Post - View in Thread
--------------------
Re: Error on Ubuntu 10.04
2010-07-14 18:25:41 UTC - Original Post - View in Thread
--------------------
Re: Runaway CPU usage for 64bit BitCoin (Linux Client)
2010-07-14 18:45:53 UTC - Original Post - View in Thread
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.
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?
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.
--------------------
Re: Warning this block was not received by any other nodes
2010-07-14 18:56:29 UTC - Original Post - View in Thread
--------------------
Re: Hash/sec Throttling for Democracy
2010-07-14 20:25:06 UTC - Original Post - View in Thread
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.
--------------------
Re: Scalability
2010-07-14 21:10:52 UTC - Original Post - View in Thread
--------------------
Re: Runaway CPU usage for 64bit BitCoin (Linux Client)
2010-07-15 00:18:23 UTC - Original Post - View in Thread
--------------------
Re: [Bitcoin 0.3.0] Runtime error
2010-07-15 14:05:20 UTC - Original Post - View in Thread
http://bitcointalk.org/index.php?topic=246.0
--------------------
Re: Static Linux x86_64 bins for those having libcrypto troubles
2010-07-15 14:33:04 UTC - Original Post - View in Thread
--------------------
Re: resource hog
2010-07-15 14:59:00 UTC - Original Post - View in Thread
--------------------
Bitcoin 0.3.1 released
2010-07-15 17:05:54 UTC - Original Post - View in Thread
- 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
--------------------
Re: 0.3.1 release candidate, please test
2010-07-15 17:23:48 UTC - Original Post - View in Thread
--------------------
Re: 0.3.1 release candidate, please test
2010-07-15 17:56:43 UTC - Original Post - View in Thread
--------------------
Re: Website and software translations
2010-07-15 18:30:22 UTC - Original Post - View in Thread
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.
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.
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.
--------------------
Re: Website and software translations
2010-07-15 18:37:13 UTC - Original Post - View in Thread
http://bitcointalk.org/index.php?topic=151.msg1259#msg1259
- 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
- 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
--------------------
Re: Website and software translations
2010-07-15 18:43:54 UTC - Original Post - View in Thread
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.
--------------------
Re: Website and software translations
2010-07-15 19:12:14 UTC - Original Post - View in Thread
--------------------
Re: 0.3.1 release candidate, please test
2010-07-15 21:40:34 UTC - Original Post - View in Thread
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) 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?
--------------------
Re: 0.3.1 release candidate, please test
2010-07-15 22:07:35 UTC - Original Post - View in Thread
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
--------------------
Re: 0.3.1 release candidate, please test
2010-07-15 22:10:19 UTC - Original Post - View in Thread
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.
--------------------
Re: "SetIcons(): icon bundle doesn't contain any suitable icon"
2010-07-15 22:18:26 UTC - Original Post - View in Thread
--------------------
Re: Runaway CPU usage for 64bit BitCoin (Linux Client)
2010-07-15 22:22:30 UTC - Original Post - View in Thread
http://bitcointalk.org/index.php?topic=383.msg3198#msg3198
--------------------
Re: 0.3.1 release candidate, please test
2010-07-15 23:23:04 UTC - Original Post - View in Thread
I don't see either happening, although it did get put into the "Startup" folder. That is so Windows 95ish (just kidding..... Microsoft has so screwed this up that it isn't even funny). I would recommend the registry settings for a number of reasons including the fact that most software puts the startup in that location, even though I personally find the startup folder to be more attractive and how most software on Windows should behave.
It could go either way. The Startup folder has the advantage that the end user can see it and manually remove it with the regular UI (not regedit) if they already blew away the Bitcoin directory and its uninstaller. Bitcoin will not relentlessly keep re-adding it if you delete it manually.OpenOffice is another example of something that puts its link in the Startup folder.
--------------------
Re: "SetIcons(): icon bundle doesn't contain any suitable icon"
2010-07-15 23:41:23 UTC - Original Post - View in Thread
in 120DPI mode.
What is "120DPI mode"? Is that an actual setting somewhere? Sounds like an obscure enough candidate. I suppose it needs twice the resolution icon to fill the size of the upper left corner icon. Only one size is provided.
--------------------
Re: 0.3.1 release candidate, please test
2010-07-16 00:44:32 UTC - Original Post - View in Thread
--------------------
Re: Donations to freebitcoins.appspot.com needed!
2010-07-16 02:02:07 UTC - Original Post - View in Thread
--------------------
Re: "SetIcons(): icon bundle doesn't contain any suitable icon"
2010-07-16 02:43:29 UTC - Original Post - View in Thread
--------------------
Re: Proof-of-work difficulty increasing
2010-07-16 14:46:12 UTC - Original Post - View in Thread
--------------------
Re: Assertion Failure - Ubuntu Lucid
2010-07-16 14:52:04 UTC - Original Post - View in Thread
--------------------
Re: Fedora 13 libcrypto
2010-07-16 14:55:23 UTC - Original Post - View in Thread
--------------------
Re: Resending transaction
2010-07-16 15:01:33 UTC - Original Post - View in Thread
--------------------
Re: 0.3.1 release candidate, please test
2010-07-16 15:09:59 UTC - Original Post - View in Thread
--------------------
Re: Source code documentation
2010-07-16 15:37:00 UTC - Original Post - View in Thread
--------------------
Re: Hash() function not secure
2010-07-16 16:13:53 UTC - Original Post - View in Thread
--------------------
Re: Request: expected bitcoins per day display
2010-07-16 16:47:14 UTC - Original Post - View in Thread
--------------------
Re: Proof-of-work difficulty increasing
2010-07-16 16:56:54 UTC - Original Post - View in Thread
--------------------
Re: Source code documentation
2010-07-16 17:15:47 UTC - Original Post - View in Thread
--------------------
Re: 0.3.1 release candidate, please test
2010-07-16 17:26:17 UTC - Original Post - View in Thread
--------------------
Re: Proof-of-work difficulty increasing
2010-07-16 17:29:28 UTC - Original Post - View in Thread
--------------------
Re: bitcoin trademark?
2010-07-16 17:47:05 UTC - Original Post - View in Thread
--------------------
Re: The dollar cost of bitmining energy
2010-07-16 17:58:44 UTC - Original Post - View in Thread
--------------------
Re: Website integration for bitcoin
2010-07-16 18:23:04 UTC - Original Post - View in Thread
--------------------
Re: Proof-of-work difficulty increasing
2010-07-16 18:43:51 UTC - Original Post - View in Thread
http://nullvoid.org/bitcoin/statistix.php
--------------------
Sample account system using JSON-RPC needed
2010-07-16 19:45:10 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin 0.3.1 released
2010-07-16 21:06:57 UTC - Original Post - View in Thread
--------------------
Re: A New Currency System for the World
2010-07-16 22:20:09 UTC - Original Post - View in Thread
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.
--------------------
Re: BUG Report: Rounding glitch
2010-07-17 16:06:12 UTC - Original Post - View in Thread
1.13999999 or
1.140000001.
(double)GetBalance() / (double)COIN.
--------------------
Re: Privacy versus Safety: handling change
2010-07-17 16:27:39 UTC - Original Post - View in Thread
--------------------
Re: Nenolod, the guy that wants to prove Bitcoin doesn't work.
2010-07-17 16:56:06 UTC - Original Post - View in Thread
--------------------
Bitcoin 0.3.2 released
2010-07-17 21:35:51 UTC - Original Post - View in Thread
- Reduced addr messages to save bandwidth now that there are plenty of nodes to connect to.
- Spanish translation by milkiway.
- French translation by aidos.
--------------------
Re: Bitcoin snack machine (fast transaction problem)
2010-07-17 22:29:13 UTC - Original Post - View in Thread
1 0
4 1
16 4
64 16
80% 20%
--------------------
Re: Assertion Failure - Ubuntu Lucid
2010-07-17 22:37:06 UTC - Original Post - View in Thread
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.
--------------------
Re: Bitcoin 0.3.2 released
2010-07-17 22:54:24 UTC - Original Post - View in Thread
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.
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.
--------------------
Re: Source code documentation
2010-07-17 23:18:30 UTC - Original Post - View in Thread
--------------------
Re: Network Size
2010-07-17 23:25:16 UTC - Original Post - View in Thread
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.
--------------------
Re: Bitcoin snack machine (fast transaction problem)
2010-07-18 01:59:15 UTC - Original Post - View in Thread
This is a good start, but still not impermeable.
I didn't say impermeable, I said good-enough. The loss in practice would be far lower than with credit cards.
Quote(for example, by refusing to propogate word of the transaction at the vending machine)
No, the vending machine talks to a big service provider (aka payment processor) that provides this service to many merchants. Think something like a credit card processor with a new job. They would have many well connected network nodes.
--------------------
Re: Source code documentation
2010-07-18 15:12:54 UTC - Original Post - View in Thread
--------------------
Re: URI-scheme for bitcoin
2010-07-18 16:06:16 UTC - Original Post - View in Thread
I think you're misunderstanding the issue. My browser will always be able to go to 127.0.0.1 (barring some strange IE settings or a virus). If I type the address into the URL bar or click a link, it will work fine. However, it isn't possible to use Javascript to complete POST requests between domains (or ports on the same domain).
That's what I thought too.
Yeah, I meant to say that cross-domain javascript calls are forbidden, so you can't call 127.0.0.1 from a javascript that doesn't reside in 127.0.0.1. Come to think of it, it would be quite funny if browsers allowed malicious cross-domain javascript to change people's Facebook pages etc.
Now I'm hearing a report that it IS possible for javascript to do a cross-domain POST request to 127.0.0.1. Not other domains, but just specifically to that one. Great...
If this is the case, then do not use the -server switch or bitcoind on a system where you do web browsing.
I'll get started on adding the password field.
--------------------
Re: Bitcoin 0.3.2 released
2010-07-18 18:58:21 UTC - Original Post - View in Thread
--------------------
JSON-RPC password
2010-07-18 20:49:22 UTC - Original Post - View in Thread
bitcoin -rpcpw=<password> -- runs with JSON-RPC port open
bitcoind -rpcpw=<password> -- daemon with password
if (params.size() < 1 || params[0].type() != str_type)
throw runtime_error("First parameter must be the password.");
if (params[0].get_str() != strRPCPassword)
{
if (strRPCPassword.size() < 15)
Sleep(50);
begin = strRequest.end();
printf("ThreadRPCServer incorrect password attempt ");
throw runtime_error("Incorrect password.");
}
getbalance <pw>
getblockcount <pw>
getblocknumber <pw>
getconnectioncount <pw>
getdifficulty <pw>
getgenerate <pw>
getinfo <pw>
getlabel <pw> <bitcoinaddress>
getnewaddress <pw> [label]
getreceivedbyaddress <pw> <bitcoinaddress> [minconf=1]
getreceivedbylabel <pw> <label> [minconf=1]
help <pw>
listreceivedbyaddress <pw> [minconf=1] [includeempty=false]
listreceivedbylabel <pw> [minconf=1] [includeempty=false]
sendtoaddress <pw> <bitcoinaddress> <amount> [comment] [comment-to]
setgenerate <pw> <generate> [genproclimit]
setlabel <pw> <bitcoinaddress> <label>
stop <pw>
--------------------
Re: MSVC build & SHA-256
2010-07-18 21:24:09 UTC - Original Post - View in Thread
--------------------
Re: Nenolod, the guy that wants to prove Bitcoin doesn't work.
2010-07-18 21:56:18 UTC - Original Post - View in Thread
--------------------
Re: Did block generation crawl to a halt?
2010-07-18 23:35:27 UTC - Original Post - View in Thread
--------------------
Re: JSON-RPC password
2010-07-19 04:43:13 UTC - Original Post - View in Thread
--------------------
Warning: don't use -server or bitcoind where you web browse (v0.3.2 and lower)
2010-07-19 16:01:38 UTC - Original Post - View in Thread
The JSON-RPC HTTP authentication feature in 0.3.3 solves this problem.
--------------------
Re: JSON-RPC password
2010-07-19 16:20:50 UTC - Original Post - View in Thread
So you drop a settings file in the ~/.bitcoin directory, that sounds better. In the "no password is set" warning, it could tell you where the file is and what to do.
What is the most popular and common settings file format?
HTTP basic authentication should be considered. In actual practice though, it's more work for web developers to figure out how to specify the password through some extra parameter in the HTTP or JSON-RPC wrapper than to just stick an extra parameter at the beginning of the parameter list. What do you think? Does HTTP basic authentication get us any additional benefits? Moving it off the parameter list but then you still have to specific it in a more esoteric place I'm not sure is a net win.
I was confused for a bit because the password is given LAST on the command line, but FIRST in the JSON-RPC params list. I agree that reading the command-line password from a file would be more convenient and more secure.
You're also confusing me, what do you mean? Did I do something unintended?
--------------------
Re: They want to delete the Wikipedia article
2010-07-20 18:38:28 UTC - Original Post - View in Thread
--------------------
Re: JSON-RPC password
2010-07-21 00:05:20 UTC - Original Post - View in Thread
# comment
setting=value
--------------------
Re: JSON-RPC password
2010-07-21 05:51:34 UTC - Original Post - View in Thread
1) No comments! How can you have a config file where you can't comment out a line to disable it?
2) Not very user friendly to have to "quote" all the strings, including the keys, and also have to remember the comma at the end of lines.
{
"key" : "value",
}
# comment
"key" : "value", # still have to remember the comma
"key2" : "value", // comment like this or both
read line
if '#' found, truncate line
split line at first ':' -> key, value
mapConfig.insert(key, value)
# comment
key : value
key : ["item1", "item2", "item3"]
# comment
key : value
--------------------
Re: JSON-RPC password
2010-07-21 16:07:57 UTC - Original Post - View in Thread
I just did a quick survey of 20 .conf files in /etc on my debian system, and found:
1 file used "key value"
5 used "key=value"
Thanks for that survey!
I find "key value" a little unnatural. There ought to be a more definite separator between key and value that suggests assignment. The space people may just be getting lazy using their language's split function.
key=some full sentence with spaces in it. # seems more clear
key some full sentence with spaces in it. # than this
Allright then, lets go with self-parsed mapConfig, syntax:
# comment
key=value
file extension .conf. What's the filename, is it ~/.bitcoin/settings.conf or ~/.bitcoin/bitcoin.conf or what?
I think we better strip whitespace at the beginning and end of the key and the value.
# user who likes column formatted
k = value
key = value
longerkey = this sentence would be this # "this sentence would be this"
key = value # guess this is ok too
nextkey = value
right = justified
The normal syntax should be "key=value", but you can't blame people for the occasional "key = value".
--------------------
Re: JSON-RPC password
2010-07-21 17:31:09 UTC - Original Post - View in Thread
--------------------
Re: JSON-RPC password
2010-07-22 02:34:23 UTC - Original Post - View in Thread
TODO: dialog box or debug.log warning if no rpc.user/rpc.password is set, explaining how to set.
In many of the contexts of this RPC stuff, you can print to the console with fprintf(stdout, like this:
#if defined(__WXMSW__) && wxUSE_GUI
MyMessageBox("Warning: rpc password is blank, use -rpcpw=<password> ", "Bitcoin", wxOK | wxICON_EXCLAMATION);
#else
fprintf(stdout, "Warning: rpc password is blank, use -rpcpw=<password> ");
#endif
--------------------
Re: JSON-RPC password
2010-07-23 17:07:40 UTC - Original Post - View in Thread
Question for everybody: should I add a section to the wiki page describing, in detail, how to do HTTP Basic authentication? PHP and Python make is really easy-- just use the http://user:pass@host:port/URL syntax.
Yes, I think that would be really good so each dev doesn't have to figure it out themselves. We need a simple example for each of Python, PHP and Java importing the json-rpc library and using it to do a getinfo or something, including doing the http authentication part.
--------------------
Re: JSON-RPC password
2010-07-23 17:14:31 UTC - Original Post - View in Thread
--------------------
Re: bitcoind not responding to RPC
2010-07-23 17:23:47 UTC - Original Post - View in Thread
--------------------
Faster initial block download (5x faster)
2010-07-23 18:24:56 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.2.5-linux.tar.gz
--------------------
Re: Faster initial block download
2010-07-23 20:13:27 UTC - Original Post - View in Thread
Is there a safety reason to stop within the last 2000 blocks or can it be tweaked to stop at remaining 500 blocks for example?
Not really. I'll change it to 1000 next time.
--------------------
Re: JSON-RPC password
2010-07-23 20:39:03 UTC - Original Post - View in Thread
rpcpassword= # fill in a password here
--------------------
Re: JSON-RPC Multiple Invocations
2010-07-24 00:59:08 UTC - Original Post - View in Thread
{"method": "postMessage", "params": ["I have a question:"], "id": 101}
{"result": 1, "error": null, "id": 99}
{"result": 1, "error": null, "id": 101}
--------------------
Re: bitcoind not responding to RPC
2010-07-24 01:15:58 UTC - Original Post - View in Thread
--------------------
Re: Warning: don't use -server or bitcoind on a machine where you web browse
2010-07-24 02:29:09 UTC - Original Post - View in Thread
--------------------
Version 0.3.2.5 -- please test!
2010-07-24 03:32:52 UTC - Original Post - View in Thread
- Gavin Andresen's HTTP authentication to secure JSON-RPC
- 5x faster initial block download, under 30 minutes
http://www.bitcoin.org/download/bitcoin-0.3.2.5-win32.zip
http://www.bitcoin.org/download/bitcoin-0.3.2.5-linux.tar.gz
--------------------
Re: Reading/Writing Blocks and FLATDATA
2010-07-24 04:04:20 UTC - Original Post - View in Thread
--------------------
Re: a simple traffic load test run
2010-07-25 14:46:33 UTC - Original Post - View in Thread
http://bitcointalk.org/index.php?topic=363.0
--------------------
Re: a simple traffic load test run
2010-07-25 15:29:52 UTC - Original Post - View in Thread
--------------------
Bitcoin 0.3.3 released -- PLEASE UPGRADE
2010-07-25 16:55:09 UTC - Original Post - View in Thread
- Gavin Andresen's HTTP authentication to secure JSON-RPC
- 5x faster initial block download, under 30 minutes
--------------------
Re: Stealing Coins
2010-07-25 17:45:22 UTC - Original Post - View in Thread
--------------------
Re: Stealing Coins
2010-07-25 19:06:23 UTC - Original Post - View in Thread
--------------------
Re: Stealing Coins
2010-07-25 20:01:40 UTC - Original Post - View in Thread
If I figure out that Public Key 123456 generates Hash ABCD
and
Public Key 654321 also generates Hash ABCD
I'm still left without the Private Key.But from what you are saying, all I need is Public Key 654321 and I can spend coin pretending to be Public Key 123456.
You would still have to sign it with public key 654321. You need to find a collision using a public key for which you know the private key.
When you claim a Bitcoin Address transaction, you give your public key that matches the hash, then you must sign it with that key.
Red's point is that it's easy to quickly generate insecure public keys which you could break and find the private key after you find a collision.
He points out that if the public key was required to be a secure one, one which must have required significant work to find the prime numbers, that would increase the strength above that of the hash function alone. Someone trying to brute force would have to take time generating a key for each attempt.
--------------------
Re: Stealing Coins
2010-07-25 20:48:01 UTC - Original Post - View in Thread
QuoteHere is a paper that claims to find SHA-1 collisions in 2^52 crypto operations. And optimally secure hash would take 2^80 operations. 2^52 time is still large, but it is getting into cluster and botnet range.
2^80 is if you can use a birthday attack. You can't use a birthday attack for this, so the difficulty is the full 2^160 bits. Although, if you were trying to crack any one of 1 million (2^20) transactions, you could do a partial birthday attack 2^160/2^20 = 2^140.
Bitcoin Addresses are the only place where 160-bit hash is used. Everything else is SHA-256. They're calculated as:
bitcoinaddress = RIPEMD-160(SHA-256(publickey))
Correct me if I'm wrong (please, and I'll gladly eat crow) but I think it would be hard to use an analytical attack on RIPEMD-160 in this case. An analytical attack prescribes a certain range or pattern of inputs to try that will greatly increase your chance of finding a collision. Here, you don't have that kind of control over RIPEMD-160's input, because the input is the output of SHA-256. If an analytical attack helps you find an input to RIPEMD-160 that produces a collision, what are you going to do with it? You still have to get SHA-256 to output that value, so you would still have to break SHA-256 too.
For brute force, RIPEMD-160(SHA-256(x)) is no stronger than RIPEMD-160 alone. But for analytical attack, it seems like you must analytical attack both RIPEMD-160 and SHA-256. If I'm wrong, then the strength is the same as RIPEMD-160 and the SHA-256 only serves as one round of key strengthening.
--------------------
Re: JSON-RPC password
2010-07-25 21:34:29 UTC - Original Post - View in Thread
I found what appears to be a bug: with a long enough username and password combination, the base64 encoder in bitcoind produces authorization headers that look like this:
Code:...
Authorization: Basic YWJiYWJiYWFiYmE6aGVsbG93b3JsZGhlbGxvd29ybGRoZWxsb3dvcmxkaGVsbG93
b3JsZGhlbGxvd29ybGRoZWxsb3dvcmxkIt inserts a newline every 64 characters, which obviously breaks the Authorization header, so commands like "bitcoin getinfo" fail. The server still works fine with properly behaving clients.This can be solved by removing the newlines (and maybe ' 's) from result at the end of the Base64Encode function:
Code:result.erase(std::remove(result.begin(), result.end(), ' '), result.end());
result.erase(std::remove(result.begin(), result.end(), ' '), result.end());
+1 to you for having such a long password that you found this bug.
Uploaded to SVN as rev 110.
--------------------
Re: JSON-RPC password
2010-07-25 21:44:16 UTC - Original Post - View in Thread
i got some problems here too trying to get this run on PHP.
so far i had no luck, neither the wiki-sample (jsonRPCClient trying to fopen(http://username:password@localhost:8332/)), nor my curl-sample (using setopt CURLOPT_HTTPAUTH, CURLAUTH_BASIC) seem to work.
That's strange, didn't someone just say that was supposed to work? (what library was he using?) Post if you figure out what wrong.
I hope it's not going to put up this much of a fight for all PHP users.
Looks like we've got the Fortran scenario already.
--------------------
Re: JSON-RPC password
2010-07-25 21:51:31 UTC - Original Post - View in Thread
Great catch! Simpler fix is to specify the BIO_FLAGS_BASE64_NO_NL in the rpc.cpp/EncodeBase64 function
SVN rev 111
--------------------
Re: md5?
2010-07-25 22:06:57 UTC - Original Post - View in Thread
--------------------
Re: Stealing Coins
2010-07-25 22:27:36 UTC - Original Post - View in Thread
--------------------
bitcoind without wxWidgets
2010-07-26 17:23:33 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin x64 for Windows
2010-07-26 18:41:31 UTC - Original Post - View in Thread
Credit to tcatm for the caching part of the SHA context - this offers absolutely brilliant performance. Additionally, the Intel compiler really comes into its own here as its parallelisation abilities give a massive performance boost over Visual Studio.Performance: 4700khash/s on 4 cores, I think that speaks for itself.I've included both the VS and Intel build, but there's really no comparison, the Intel build craps all over VS.
Is that still starting from Crypto++? Lets get this into the main sourcecode.
--------------------
Re: Bitcoin x86 for Windows
2010-07-27 01:29:42 UTC - Original Post - View in Thread
Crypto++ 5.6.0: http://www.cryptopp.com/
Cached SHA256: http://pastebin.com/rJAYZJ32 (although I'm pretty sure this is publically submitted elsewhere, I was linked to it on IRC)
I added the cached SHA256 state idea to the SVN, rev 113. The speedup is about 70%. I credited it to tcatm based on your post in the x64 thread.
I can compile the Crypto++ 5.6.0 ASM SHA code with MinGW but as soon as it runs it crashes. It says its for MASM (Microsoft's assembler) and the sample command line they give looks like Visual C++. Does it only work with the MSVC and Intel compilers?
--------------------
Re: Proof-of-work difficulty increasing
2010-07-27 03:04:58 UTC - Original Post - View in Thread
+35%
2009 1.00
30/12/2009 1.18 +18%
11/01/2010 1.31 +11%
25/01/2010 1.34 +2%
04/02/2010 1.82 +36%
14/02/2010 2.53 +39%
24/02/2010 3.78 +49%
08/03/2010 4.53 +20%
21/03/2010 4.57 +9%
01/04/2010 6.09 +33%
12/04/2010 7.82 +28%
21/04/2010 11.46 +47%
04/05/2010 12.85 +12%
19/05/2010 11.85 -8%
29/05/2010 16.62 +40%
11/06/2010 17.38 +5%
24/06/2010 19.41 +12%
06/07/2010 23.50 +21%
13/07/2010 45.38 +93%
16/07/2010 181.54 +300%
27/07/2010 244.21 +35%
--------------------
Re: Bitcoin x86 for Windows
2010-07-27 18:27:30 UTC - Original Post - View in Thread
I was able to integrate the SHA256 functionality from Crypto++ 5.6.0 into Bitcoin. This is the fastest SHA256 yet using the SSE2 assembly code. Since Bitcoin was sending unaligned data to the block hash function, I had to change the MOVDQA instruction to MOVDQU.I think using the SHA256 functionality from Crypto++ 5.6.0 is the way forward right now.
I added a subset of the Crypto++ 5.6.0 library to the SVN. I stripped it down to just SHA and 11 general dependency files. There shouldn't be any other crypto in there other than SHA.
I aligned the data fields and it worked. The ASM SHA-256 is about 48% faster. The combined speedup is about 2.5x faster than version 0.3.3.
I guess it's using SSE2. It automatically sets its build configuration at compile time based on the compiler environment.
It looks like it has some SSE2 detection at runtime, but it's hard to tell if it actually uses it to fall back if it's not available. I want the release builds to have SSE2. SSE2 has been around since the first Pentium 4. A Pentium 3 or older would be so slow, you'd be wasting your electricity trying to generate on it anyway.
This is SVN rev 114.
--------------------
Re: Bitcoin x86 for Windows
2010-07-27 19:47:42 UTC - Original Post - View in Thread
--------------------
Re: Having problems specifing -datadir
2010-07-28 20:58:26 UTC - Original Post - View in Thread
--------------------
Re: Build error SVN r115 on my Mac: workaround
2010-07-28 21:23:23 UTC - Original Post - View in Thread
--------------------
Re: Difficulty
2010-07-29 01:16:23 UTC - Original Post - View in Thread
You were looking at the wrong code. Here's the code that applies:
Code:bool CBlock::CheckBlock() const
{
...
// Check timestamp
if (nTime > GetAdjustedTime() + 2 * 60 * 60)
return error("CheckBlock() : block timestamp too far in the future");
...bool CBlock::AcceptBlock()
{
...
// Check timestamp against prev
if (nTime <= pindexPrev->GetMedianTimePast())
return error("AcceptBlock() : block's timestamp is too early");
The timestamp is limited to up to 2 hours in the future. It can be earlier than the previous block, but it must be greater than the median of the last 11 blocks. The reason for doing it that way is so the time can get corrected in the next block if the previous block had the time too far in the future, like what happened.
--------------------
Re: Scalability and transaction rate
2010-07-29 02:00:38 UTC - Original Post - View in Thread
The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users. The more burden it is to run a node, the fewer nodes there will be. Those few nodes will be big server farms. The rest will be client nodes that only do transactions and don't generate.
Besides, 10 minutes is too long to verify that payment is good. It needs to be as fast as swiping a credit card is today.
See the snack machine thread, I outline how a payment processor could verify payments well enough, actually really well (much lower fraud rate than credit cards), in something like 10 seconds or less. If you don't believe me or don't get it, I don't have time to try to convince you, sorry.
http://bitcointalk.org/index.php?topic=423.msg3819#msg3819
--------------------
Re: wiki registration email?
2010-07-29 02:10:46 UTC - Original Post - View in Thread
--------------------
*** ALERT *** Upgrade to 0.3.6
2010-07-29 19:13:06 UTC - Original Post - View in Thread
- midstate cache optimisation thanks to tcatm
- Crypto++ ASM SHA-256 thanks to BlackEye
Total generating speedup 2.4x faster.
--------------------
Re: *** ALERT *** version 0.3.6
2010-07-29 19:55:51 UTC - Original Post - View in Thread
--------------------
Re: *** ALERT *** version 0.3.6
2010-07-29 20:30:15 UTC - Original Post - View in Thread
--------------------
Re: *** ALERT *** Upgrade to 0.3.6 ASAP!
2010-07-29 21:20:38 UTC - Original Post - View in Thread
--------------------
Re: *** ALERT *** Upgrade to 0.3.6 ASAP!
2010-07-29 21:43:15 UTC - Original Post - View in Thread
--------------------
Re: Implementation bug prior to 0.3.6
2010-07-29 22:04:15 UTC - Original Post - View in Thread
--------------------
Re: Transaction disappeared in the void...
2010-07-29 22:08:31 UTC - Original Post - View in Thread
--------------------
Re: Linux distribution download
2010-07-29 22:17:24 UTC - Original Post - View in Thread
--------------------
Re: *** ALERT *** Upgrade to 0.3.6 ASAP!
2010-07-29 23:12:12 UTC - Original Post - View in Thread
On Debian testing 32-bit, I get a few build errors, all resembling:
Code:script.cpp:114: error: \u0091OP_NOP1\u0092 was not declared in this scopeI got these when attempting to "make bitcoind" without "make clean" or "make" first. It looks like the bitcoind build instructions don't compile the headers first, but they also don't delete the headers.h.gch, so the old headers are used if present.
If anyone else gets this error, the simplest solution is to "make clean" and retry the build.
We don't really need pre-compiled header. It only makes it compile slightly faster. I think I'll just get rid of it. Even still, you'd still need to remember to "make -f makefile.unix clean" or delete headers.h.gch one more time to get rid of the leftover file.
Damn that GLIBC_2.11. I thought I'd been careful not to accept any of the updates.
--------------------
Re: Bug: "Immature" coins lost in wallet.dat during transaction
2010-07-30 19:19:05 UTC - Original Post - View in Thread
--------------------
Re: [PATCH] implement 'listtransactions'
2010-07-30 19:40:54 UTC - Original Post - View in Thread
--------------------
Re: *** ALERT *** Upgrade to 0.3.6 ASAP!
2010-07-30 19:53:06 UTC - Original Post - View in Thread
I can only imagine the pain you went through to get these builds because I'm trying to build the program on a Ubuntu 9.04 box and so far I can't seem to find all the dependencies to compile no matter how much I keep installing packages and compiling source, LOL.
I can't understand why you're having so much pain. I just followed the instructions in build-unix.txt. I made a couple little corrections for Boost 1.37, which I'll put on SVN the next time I update it, noted below:
Dependencies
------------
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install libssl-dev
sudo apt-get install libdb4.7-dev
sudo apt-get install libdb4.7++-dev
sudo apt-get install libboost-all-dev (or libboost1.37-dev)wxWidgets
---------
cd /usr/local
tar -xzvf wxWidgets-2.9.0.tar.gz
cd /usr/local/wxWidgets-2.9.0
mkdir buildgtk
cd buildgtk
../configure --with-gtk --enable-debug --disable-shared --enable-monolithic
make
sudo su
make install
ldconfigadded a comment in makefile.unix:# for boost 1.37, add -mt to the boost libraries
LIBS= \
-Wl,-Bstatic \
-l boost_system \
-l boost_filesystem \
-l boost_program_options \
-l boost_thread \
-l db_cxx \
-l crypto \
-Wl,-Bdynamic \
-l gthread-2.0
--------------------
Re: *** ALERT *** Upgrade to 0.3.6 ASAP!
2010-07-30 21:44:04 UTC - Original Post - View in Thread
So that last command should simply be
sudo apt-get install libboost1.37-dev
Except that wouldn't work for boost 1.40+ (on Ubuntu 10.04), where you need to get libboost-all-dev.
Seems they changed everything around in Boost recently, "-mt" and all that, makes it hard.
BTW, I tried Boost 1.34 but it didn't have the boost.interprocess stuff.
Mac OSX version is available now. See bitcoin.org or the SourceForge link.
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-07-31 00:29:20 UTC - Original Post - View in Thread
--------------------
Webpage idea: Next predicted difficulty change
2010-07-31 01:32:08 UTC - Original Post - View in Thread
------------------------------------
time_since_last_adjustment / 14_days
--------------------
Re: Linux distribution download
2010-07-31 14:38:52 UTC - Original Post - View in Thread
--------------------
Re: Linux version => No GUI after upgrade. WTF?
2010-08-02 17:39:27 UTC - Original Post - View in Thread
--------------------
Re: Mac Client Problems Outlined...
2010-08-02 18:02:20 UTC - Original Post - View in Thread
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-02 19:02:46 UTC - Original Post - View in Thread
Is it 2x fast on AMD and 1/2 fast on Intel?
Btw. Why are you using this alignup<16> function when __attribute__ ((aligned (16))) will tell the compiler to align at compiletime?
Tried that, but it doesn't work for things on the stack. I ran some tests.
It doesn't even cause an error, it just doesn't align it.
--------------------
Re: Protocol Buffers for Bitcoin
2010-08-02 20:22:08 UTC - Original Post - View in Thread
--------------------
Re: Builds for Ubuntu?
2010-08-03 20:56:11 UTC - Original Post - View in Thread
Is satoshi noWx patch in 0.3.7 already? Before that bitcoind required wx, and I never seen Satoshi announcing that it's in trunk
Yes, 0.3.7 has it. It was in rev 112.
--------------------
Re: Bitcoind x86 binary for CentOS
2010-08-03 21:05:08 UTC - Original Post - View in Thread
I have successfully built it with 4.8, 4.7 never would but with 4.8 bitcoind locks up whenever it dumps the initial block download to disk.
I urge you not to use BDB 4.8. The database/log0000* files will be incompatible if anyone uses your build and then goes back to the official build.
--------------------
Re: Content-Length header and 500 (was Re: Authentication, JSON RPC and Python)
2010-08-03 21:26:26 UTC - Original Post - View in Thread
- Quote from: jgarzik on August 03, 2010, 06:09:08 PM
- bitcoin requires the Content-Length header, but several JSON-RPC libraries do not provide it. When the Content-Length header is absent, bitcoin returns 500 Internal Server Error.
Can you be more specific about which JSON libraries don't provide Content-Length ? It'd be nice to document that.
I guess we should try to support the case where there's no Content-Length parameter. I don't want to rip and replace streams though, even if it has to read one character at a time.
Edit: That is, assuming there actually are any libraries that don't support Content-Length.
--------------------
Re: What happens when network is split for prolonged time and reconnected?
2010-08-03 22:45:07 UTC - Original Post - View in Thread
creighto: I agree with that idea. After a few hours, it should be possible for the client to notice if the flow of blocks has dropped off by more than would be likely just by chance. It could tell if it's not hearing the hum of the world anymore.
- Quote from: gavinandresen on August 03, 2010, 06:38:44 PM
- Or if the split lasted long enough (more than 100 blocks), transactions that involve generated coins on the shorter chain would be invalid at the merge.
Interesting info, so other than some double-spending issues, as long as the block chain isn't separated for more than 100 or so blocks (or 16+ hours),
In practice, splits are likely to be very asymmetrical. It would be hard to split the world down the middle. More likely it would be a single country vs the rest of the world, lets say a 1:10 split. In that case, it would take the minority fork 10 times as long to generate 100 blocks, so about 7 days. Also it would be super easy for the client to realize it's hearing way too few blocks and something must be wrong.
If there a hard coded limit on split delay? Meaning if I had a small network split from the public network, spent some coin around, came back a few days later and got them sync up to the public network (other than coin generation if it happened) transactions should be fine?
There's no time limit. Assuming you weren't spending coins generated in the minority fork, or spending someone's double-spends you received, your transactions can get into the other chain at any time later.
--------------------
Please upgrade to 0.3.8!
2010-08-03 23:40:18 UTC - Original Post - View in Thread
--------------------
Re: Bitcoind x86 binary for CentOS
2010-08-04 00:09:32 UTC - Original Post - View in Thread
There are two versions, one built from stock code, the other modified to accept up to 1,000 nodes (hence the super node name)
I'd rather you didn't make a build of the 1000 node connecting version available. It won't take very many people running that before we have to make another release just to limit the incoming connections.
--------------------
Re: Please upgrade to 0.3.8!
2010-08-04 00:29:37 UTC - Original Post - View in Thread
--------------------
Re: Building initial transaction trust through "coin ripping"
2010-08-04 00:40:40 UTC - Original Post - View in Thread
--------------------
Re: Flood attack 0.00000001 BC
2010-08-04 16:25:36 UTC - Original Post - View in Thread
It seems to do more harm than good because it prevents micropayment implementations such as the one bytemaster is suggesting.
Bitcoin isn't currently practical for very small micropayments. Not for things like pay per search or per page view without an aggregating mechanism, not things needing to pay less than 0.01. The dust spam limit is a first try at intentionally trying to prevent overly small micropayments like that.
Bitcoin is practical for smaller transactions than are practical with existing payment methods. Small enough to include what you might call the top of the micropayment range. But it doesn't claim to be practical for arbitrarily small micropayments.
--------------------
Re: Flood attack 0.00000001 BC
2010-08-05 16:03:21 UTC - Original Post - View in Thread
Forgot to add the good part about micropayments. While I don't think Bitcoin is practical for smaller micropayments right now, it will eventually be as storage and bandwidth costs continue to fall. If Bitcoin catches on on a big scale, it may already be the case by that time. Another way they can become more practical is if I implement client-only mode and the number of network nodes consolidates into a smaller number of professional server farms. Whatever size micropayments you need will eventually be practical. I think in 5 or 10 years, the bandwidth and storage will seem trivial.
I am not claiming that the network is impervious to DoS attack. I think most P2P networks can be DoS attacked in numerous ways. (On a side note, I read that the record companies would like to DoS all the file sharing networks, but they don't want to break the anti-hacking/anti-abuse laws.)
If we started getting DoS attacked with loads of wasted transactions back and forth, you would need to start paying a 0.01 minimum transaction fee. 0.1.5 actually had an option to set that, but I took it out to reduce confusion.
Free transactions are nice and we can keep it that way if people don't abuse them.That brings up the question: if there was a minimum 0.01 fee for each transaction, should we automatically add the fee if it's just the minimum 0.01? It would be awfully annoying to ask each time. If you have 50.00 and send 10.00, the recipient would get 10.00 and you'd have 39.99 left. I think it should just add it automatically. It's trivial compared to the fees many other types of services add automatically.
Does including more slow down your hashing rate?
No, not at all.
--------------------
Re: Flood attack 0.00000001 BC
2010-08-05 16:30:20 UTC - Original Post - View in Thread
Quote from: bytemasterPayments would generally be advanced, say 1 BTC at a time and when the connection closes any "change" would be returned. This rule makes it impossible to pay for a simple "search query" with no further transactions.
One alternative is to use a round-up system. You pay for, say, 1000 pages or images or downloads or searches or whatever at a time. When you've used up your 1000 pages, you pay for another 1000 pages. If you only use 1 page, then you have 999 left that you may never use, but it's not a big deal because the cost per 1000 is still small.
Or you could pay per day. The first time you access the site on a given day, you pay for 24 hours of access.
Per 1000 or per day may be easier for consumers to get their heads around too. They worry about per item because it's harder to figure if it might add up too fast. Unlimited for 24 hours they know what the cost will be. Or if 1000 seems like plenty, they're not worrying that it's costing more with each click if they figure 1000 is more than they'll probably use.
--------------------
Re: Flood attack 0.00000001 BC
2010-08-05 16:39:58 UTC - Original Post - View in Thread
The only solution to this problem is to make broadcasting of a transaction "non free". Namely, if you want me to include it you have to pay me. The net (no pun intended) result is that each client would need to pay other clients to whom they even send their transaction, not just the individual who gets it in a block. In this way the laws of economics take over and no one gets a free ride on the transaction broadcast system.
I don't know a way to implement that. The transaction fee to the block creator uses a special trick to include the transaction fee without any additional size. If there was a transaction for each transaction fee, then what about the transactions fees for the transaction fee's transaction?
--------------------
Re: Who's the Spanish jerk draining the Faucet?
2010-08-05 17:06:03 UTC - Original Post - View in Thread
Silently failing would look bad.
1. Rate limit based on the first byte of the IP address (79. or 81. in this case).
Definitely needed. What rate are you thinking of? Ultimately, it's better to rate limit it than to let it all drain out.
3. Rate limit based on last two domains of reverse DNS lookup of the IP address (rima-tde.net in this case).
That might work surprisingly well. If it works, it keeps them from hitting the rate limit, but the rate limit is there as the last line of defence.
4. Make the standard amount given away 0.5 Bitcoins (Bitcoins have gone up 10 times in value since I started the Faucet).
Definitely time to lower it.
--------------------
Re: bitcoind transaction to ip address
2010-08-05 17:28:40 UTC - Original Post - View in Thread
--------------------
Re: Transaction Overload Solution
2010-08-05 17:38:21 UTC - Original Post - View in Thread
--------------------
Re: Flood attack 0.00000001 BC
2010-08-05 17:49:43 UTC - Original Post - View in Thread
Right now the transaction fee address is left "blank" and the block generator fills it out.
Now you would fill it in with the address of the person you are asking to build the block.
If you're only going to have one person work on building the block, that could take days. Oh, do you mean send a different variation to each node with the tx fee written to them?
The way it is now, it's whoever builds this gets it.
If we needed to, we could have a BitTorrent-esque tit-for-tat for transaction broadcast. Relay paying transactions to me, or I won't relay them to you. It probably won't be an actual problem though. It only takes one node relaying like it should to cancel out 7 others greedily not relaying.
--------------------
Re: A proposal for a semi-automated Escrow mechanism
2010-08-05 18:08:30 UTC - Original Post - View in Thread
--------------------
Re: latency and locality
2010-08-07 16:28:17 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin minting is thermodynamically perverse
2010-08-07 17:46:09 UTC - Original Post - View in Thread
It's the same situation as gold and gold mining. The marginal cost of gold mining tends to stay near the price of gold. Gold mining is a waste, but that waste is far less than the utility of having gold available as a medium of exchange.I think the case will be the same for Bitcoin. The utility of the exchanges made possible by Bitcoin will far exceed the cost of electricity used. Therefore, not having Bitcoin would be the net waste.
As an overall point, I also do not agree with the idea that the very high computational burden of coin generation is in fact a necessity of the current system. As I understand it, currency creation is fundamentally metered by TIME - and if that is the fundamental controlling variable, what is the need for everyone to "roll as many dice as posible" within that given time period? The "chain of proof" for coin ownership and transactions doesn't depend on the method for spawning coins.
Each node's influence on the network is proportional to its CPU power. The only way to show the network how much CPU power you have is to actually use it.
If there's something else each person has a finite amount of that we could count for one-person-one-vote, I can't think of it. IP addresses... much easier to get lots of them than CPUs.
I suppose it might be possible to measure CPU power at certain times. For instance, if the CPU power challenge was only run for an average of 1 minute every 10 minutes. You could still prove your total power at given times without running it all the time. I'm not sure how that could be implemented though. There's no way for a node that wasn't present at the time to know that a past chain was actually generated in a duty cycle with 9 minute breaks, not back to back.
Proof-of-work has the nice property that it can be relayed through untrusted middlemen. We don't have to worry about a chain of custody of communication. It doesn't matter who tells you a longest chain, the proof-of-work speaks for itself.
-------------------
Re: A proposal for a semi-automated Escrow mechanism
2010-08-07 20:04:59 UTC - Original Post - View in Thread
Due to that recourse, it is unlikely to be used as an escrow mechanism
Really? Do you think people won't be able to understand the benefit? (If your response is an argument that there's no benefit at all, I guess that will reinforce the case that people won't be able to understand it.)
--------------------
Escrow
2010-08-07 20:13:52 UTC - Original Post - View in Thread
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-07 21:16:01 UTC - Original Post - View in Thread
CRITICAL_BLOCK is a macro that contains a for loop. The assertion failure indicates that break has been called inside the body of the loop. The only break statement in this block is in line 2762. In the original source file, there is no break statement in this critical block. I think you must remove lines 2759-2762. The is nothing like that in the original main.cpp.
Sorry about that. CRITICAL_BLOCK isn't perfect. You have to be careful not to break or continue out of it. There's an assert that catches and warns about break. I can be criticized for using it, but the syntax would be so much more bloated and error prone without it.
Is there a chance the SSE2 code is slow on Intel because of some quirk that could be worked around? For instance, if something works but is slow if it's not aligned, or thrashing the cache, or one type of instruction that's really slow? I'm not sure how available it is, but I think Intel used to have a profiler for profiling on a per instruction level. I guess if tcatm doesn't have a system with the slow processor to test with, there's not much hope. But it would be really nice if this was working on most CPUs.
--------------------
Re: bitcoin generation broken in 0.3.8?
2010-08-09 18:50:41 UTC - Original Post - View in Thread
--------------------
Version 0.3.8.1 update for Linux 64-bit
2010-08-09 19:46:58 UTC - Original Post - View in Thread
--------------------
Re: What could be the transition plan to Y2038 compliant Bitcoin?
2010-08-09 20:13:26 UTC - Original Post - View in Thread
--------------------
Re: bitcoin generation broken in 0.3.8? (64-bit)
2010-08-09 20:34:06 UTC - Original Post - View in Thread
--------------------
Re: Version 0.3.8.1 update for Linux 64-bit
2010-08-09 20:55:06 UTC - Original Post - View in Thread
#define CRYPTOPP_DISABLE_SSE2 1
#endif
--------------------
Connection limits
2010-08-09 20:58:45 UTC - Original Post - View in Thread
- Always make 8 outbound connections even if have 8 inbound
- Limit outbound connections to one per a.b.?.? range
- Switch -maxconnections=#
--------------------
Re: Bitcoin minting is thermodynamically perverse
2010-08-09 21:28:39 UTC - Original Post - View in Thread
--------------------
Re: Version 0.3.8.1 update for Linux 64-bit
2010-08-10 23:46:00 UTC - Original Post - View in Thread
--------------------
Re: Not a suggestion
2010-08-11 00:14:22 UTC - Original Post - View in Thread
--------------------
Re: Escrow
2010-08-11 01:30:02 UTC - Original Post - View in Thread
Ask some real-world business owners if they want to tell their customers about the chance of the money being lost forever, unrecoverable by either party.
That makes it sound like it might somehow get lost and the parties can't get it even if they want to cooperate.
When you pay for something up front, you can't get it back either. Consumers seem comfortable with that. It's no worse than that.
Either party always has the option to release it to the other.
But the money burning solution, while great at preventing economically viable fraud, does nothing to prevent revenge and actually makes everyone loose if one side is dishonest. I would certainly not endorse that.
Then you must also be against the common system of payment up front, where the customer loses.
Payment up front: customer loses, and the thief gets the money.
Simple escrow: customer loses, but the thief doesn't get the money either.
Are you guys saying payment up front is better, because at least the thief gets the money, so at least someone gets it?
Imagine someone stole something from you. You can't get it back, but if you could, if it had a kill switch that could be remote triggered, would you do it? Would it be a good thing for thieves to know that everything you own has a kill switch and if they steal it, it'll be useless to them, although you still lose it too? If they give it back, you can re-activate it.
Imagine if gold turned to lead when stolen. If the thief gives it back, it turns to gold again.
It still seems to me the problem may be one of presenting it the right way. For one thing, not being so blunt about "money burning" for the purposes of game theory discussion. The money is never truly burned. You have the option to release it at any time forever.
--------------------
Re: Compile error in SVN r127
2010-08-11 01:42:30 UTC - Original Post - View in Thread
--------------------
Re: Not a suggestion
2010-08-11 21:07:59 UTC - Original Post - View in Thread
- the value
- the association of inpoints and outpoints in one transaction
--------------------
Re: Lost large number of bitcoins
2010-08-11 21:46:51 UTC - Original Post - View in Thread
I added to the FAQ the warning to back up after each transaction. Is it necessary btw to stop the client before making a backup? That's a bit inconvenient. Automatic backups would be useful indeed.
You can get away with backing up without stopping the client if you don't do anything or receive a payment within a few seconds before the backup. (like 5 seconds)
Wait, I'm confused again. I thought the essence of the surprise was that Bitcoin is programmed to "empty your wallet" for EACH transaction.
No, it doesn't usually empty your wallet with each transaction. It uses the smallest set of coins it can find to add up to near the amount. In this case, unfortunately, his wallet had a single 9000 BTC bill in it, and it had to break it to get 1 BTC and 8999 BTC change.
--------------------
Re: Where is the separate discussion devoted to possible Bitcoin weaknesses.
2010-08-11 22:40:25 UTC - Original Post - View in Thread
It doesn't have to be such a breaking change. New nodes could accept old transactions for a long time until most nodes have already upgraded before starting to refuse transactions without PoW. Or, they could always accept old transactions, but only a limited number per time period.
I've thought about PoW on transactions many times, but usually I end up thinking a 0.01 transaction fee is essentially similar and better. 0.01 is basically a proof of work, but not wasted. But if the problem is validating loads of transactions, then PoW could be checked faster.
A more general umbrella partial solution would be to implement the idea where an unlikely dropoff in blocks received is detected. Then an attacker would still need a substantial portion of the network's power to benefit from a DoS attack.
Bitcoin's p2p network is subject to various kinds of denial of service attacks.There, I said it.
+1
Any demonstration tests at this point would only show what we already know, and divert dev time from strengthening the system to operational fire fighting.
--------------------
Re: Flood attack 0.00000001 BC
2010-08-11 23:28:50 UTC - Original Post - View in Thread
--------------------
Re: BSD detection
2010-08-12 00:02:06 UTC - Original Post - View in Thread
There is this piece of code in headers.h:
#ifdef __WXMAC_OSX__
#define __WXMAC__ 1
#define __WXOSX__ 1
#define __BSD__ 1
#endif
#endif
That code was a bad idea anyway, I'm deleting it. Any Mac code should only use __WXMAC_OSX__, not __WXMAC__ or __WXOSX__, and we should stop using __BSD__.
Quote
#if (defined(__unix__) || defined(unix)) && !defined(USG)
#include <sys/param.h>
#endif
Will that definitely cause BSD to be defined on Mac?
--------------------
Re: Not a suggestion
2010-08-12 02:46:56 UTC - Original Post - View in Thread
- Quote from: satoshi on August 11, 2010, 09:07:59 PM
- I believe the clients would have to keep the entire history back to the original generated coins. The fact that clients have to keep the entire history reduces the privacy benefit.
I thought this too at first. But then I convinced myself otherwise.
Are you back to talking about the existing Bitcoin system here?
I was talking about in the hypothetical system I was describing, if the network doesn't know the values and lineage of the transactions, then it can't verify them and vouch for them, so the clients would have to keep the history all the way back.
If a client wasn't present until recently, the two ways to convince it that a transaction has a valid past is:
1) Show it the entire history back to the original generated coin.
2) Show it a history back to a thoroughly deep block, then trust that if so many nodes all said the history up to then was correct then it must be true.
But if the network didn't know all the values and lineage of the transactions, it couldn't do 2), I don't think.
--------------------
Re: BSD detection
2010-08-12 21:14:20 UTC - Original Post - View in Thread
This is in SVN rev 130. Check that it compiles right.
Code:#if (defined(__unix__) || defined(unix)) && !defined(USG)
#include <sys/param.h> // to get BSD define
#endif
#ifdef __WXMAC_OSX__
#ifndef BSD
#define BSD 1
#endif
#endif
--------------------
Bugfixes in SVN rev 130
2010-08-12 21:20:31 UTC - Original Post - View in Thread
autostart is now off by default except on windows
fix occasional "vector iterator not dereferencable" assertion when compiled with msvc
fix readlink compile warning on linux build
use sys/param.h and BSD define instead of __BSD__
-paytxfee switch, e.g. -paytxfee=0.01
--------------------
Re: Bitcoin Watchdog Service
2010-08-12 21:34:44 UTC - Original Post - View in Thread
--------------------
Re: Having problems specifing -datadir
2010-08-12 21:43:29 UTC - Original Post - View in Thread
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-12 22:07:23 UTC - Original Post - View in Thread
Xeon Quad 41% slower
Core 2 Duo 55% slower
Core 2 Duo same (vess)
Core 2 Quad 50% slower
Core i5 200% faster (nelisky)
Core i5 100% faster (vess)
AMD Opteron 105% faster
My system went from ~7100 to ~4200.
This particular system has dual Intel Xeon Quad-Core CPUs (E5335) @ 2.00GHz.
on an Intel Core 2 Duo T7300 running x86_64 linux it was 55% slower compared to the stock version (r121)
My Core2Quad (Q6600) slowed down 50%,
my i5 improved ~200%,
on an AMD Opteron 2374 HE running x86_64 linux I got a 105% improvement (!)
--------------------
Re: Bugfixes in SVN rev 130
2010-08-13 03:15:23 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin Watchdog Service
2010-08-13 17:09:27 UTC - Original Post - View in Thread
QuoteBut there will be no irc server to bootstrap from.
Which doesn't matter because you can't access sourceforge to download the software either.
If you've ever been connected before, you don't need IRC to bootstrap anymore. Even if you haven't, you can bootstrap from seed nodes. IRC is completely redundant since 0.3.0.
--------------------
Version 0.3.9 rc1, please test
2010-08-13 17:40:00 UTC - Original Post - View in Thread
(or if you'd rather get upgrading out of the way now instead of waiting)
http://www.bitcoin.org/download/bitcoin-0.3.9.rc1-win32.zip
(http://www.bitcoin.org/download/bitcoin-0.3.9.rc1-linux.tar.gz)
SHA1 bbb333b0ea57302740ad1bb9948520d00f884f9d bitcoin-0.3.9.rc1-linux.tar.gz
Linux please test rc2 instead. This adds a -4way switch for tcatm's 4-way SSE2. This will only be for Linux:
http://www.bitcoin.org/download/bitcoin-0.3.9.rc2-linux.tar.gz
http://bitcointalk.org/index.php?topic=820
--------------------
Re: Not a suggestion
2010-08-13 19:28:47 UTC - Original Post - View in Thread
http://www.users.zetnet.co.uk/hopwood/crypto/rh/
--------------------
Re: Proposed change to sendtoaddress API call
2010-08-13 23:39:14 UTC - Original Post - View in Thread
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-14 00:49:18 UTC - Original Post - View in Thread
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
make: *** [obj/sha256.o] Error 1
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-14 04:22:29 UTC - Original Post - View in Thread
If you haven't already, try aligning thash. It might matter. Couldn't hurt.
Looks like we're triggering a compiler bug in the tree optimizer. Can you try to compile it -O0?
No help from -O0, same error.
MinGW is GCC 3.4.5. Probably the problem.
I'll see if I can get a newer version of MinGW.
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-14 17:55:37 UTC - Original Post - View in Thread
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-14 22:06:13 UTC - Original Post - View in Thread
Crypto++ doesn't work, X86_SHA256_HashBlocks() never returns
I only got 4-way working with test.cpp but not when called by BitcoinMiner
Crypto++ works
4-way SIGSEGV
#define Ch(b, c, d) ((b & c) ^ (~b & d))
#define Maj(b, c, d) ((b & c) ^ (b & d) ^ (c & d))
#define ROTR(x, n) (_mm_srli_epi32(x, n) | _mm_slli_epi32(x, 32 - n))
#define SHR(x, n) _mm_srli_epi32(x, n)
--------------------
Re: 4 hashes parallel on SSE2 CPUs for 0.3.6
2010-08-15 03:40:29 UTC - Original Post - View in Thread
On both MinGW GCC 4.4.1 and 4.5.0 I have it working with test.cpp but SIGSEGV when called by BitcoinMiner. So now it doesn't look like it's the version of GCC, it's something else, maybe just the luck of how the stack is aligned.
I have it working fine on GCC 4.3.3 on Ubuntu 32-bit.
I found the problem with Crypto++ on MinGW 4.5.0. Here's the patch for that:
+++ ew\sha.cpp Sat Aug 14 20:21:08 2010
@@ -336,7 +336,7 @@
ROUND(14, 0, eax, ecx, edi, edx)
ROUND(15, 0, ecx, eax, edx, edi)- ASL(1)
+ ASL(label1) // Bitcoin: fix for MinGW GCC 4.5
AS2(add WORD_REG(si), 4*16)
ROUND(0, 1, eax, ecx, edi, edx)
ROUND(1, 1, ecx, eax, edx, edi)
@@ -355,7 +355,7 @@
ROUND(14, 1, eax, ecx, edi, edx)
ROUND(15, 1, ecx, eax, edx, edi)
AS2( cmp WORD_REG(si), K_END)
- ASJ( jne, 1, b)
+ ASJ( jne, label1, ) // Bitcoin: fix for MinGW GCC 4.5
AS2( add WORD_REG(dx), 64)
--------------------
tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
2010-08-15 15:52:09 UTC - Original Post - View in Thread
Get 0.3.10 from http://bitcointalk.org/index.php?topic=827.0
--------------------
Re: Potential disaster scenario
2010-08-15 16:37:16 UTC - Original Post - View in Thread
1) places where it's cheapest or free
2) people who want to help for idealogical reasons
3) people who want to get some coins without the inconvenience of doing a transaction to buy them
--------------------
Re: Version 0.3.9 rc1, please test
2010-08-15 18:11:41 UTC - Original Post - View in Thread
The idea was the main part. When you posted your patch, I realized it should have been done that way instead of "-?". I always had reservations about "-?" because it intrudes on the possible parameter values, and the help response is based on the version of the caller instead of the server.
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit 0.3.9 rc2
2010-08-15 18:23:26 UTC - Original Post - View in Thread
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit 0.3.9 rc2
2010-08-15 18:43:27 UTC - Original Post - View in Thread
--------------------
Re: overflow bug SERIOUS
2010-08-15 20:59:09 UTC - Original Post - View in Thread
Here's the preliminary change. Look right? I have more changes to make, this isn't all of it. Will SVN shortly.
Code:bool CheckTransaction() const
{
// Basic checks that don't depend on any context
if (vin.empty() || vout.empty())
return error("CTransaction::CheckTransaction() : vin or vout empty");// Check for negative and overflow values
int64 nTotal = 0;
foreach(const CTxOut& txout, vout)
{
if (txout.nValue < 0)
return error("CTransaction::CheckTransaction() : txout.nValue negative");
if (txout.nValue > 21000000 * COIN)
return error("CTransaction::CheckTransaction() : txout.nValue too high");
nTotal += txout.nValue;
if (nTotal > 21000000 * COIN)
return error("CTransaction::CheckTransaction() : txout total too high");
}if (IsCoinBase())
{
if (vin[0].scriptSig.size() < 2 || vin[0].scriptSig.size() > 100)
return error("CTransaction::CheckTransaction() : coinbase script size");
}
else
{
foreach(const CTxIn& txin, vin)
if (txin.prevout.IsNull())
return error("CTransaction::CheckTransaction() : prevout is null");
}return true;
}Don't sticky the topic, nobody looks up there. There'll be enough posts to bump.
--------------------
Re: overflow bug SERIOUS
2010-08-15 21:06:45 UTC - Original Post - View in Thread
--------------------
Re: overflow bug SERIOUS
2010-08-15 21:23:55 UTC - Original Post - View in Thread
--------------------
Re: overflow bug SERIOUS
2010-08-15 21:40:19 UTC - Original Post - View in Thread
1) Shut down.
2) Download knightmb's blk files. (replace your blk0001.dat and blkindex.dat files)
3) Upgrade.
4) It should start out with less than 74000 blocks. Let it redownload the rest.
--------------------
Re: overflow bug SERIOUS
2010-08-15 22:58:08 UTC - Original Post - View in Thread
- remove -DFOURWAYSSE2
- remove obj/sha256.o from the end of these lines:
bitcoin: $(OBJS) obj/ui.o obj/uibase.o obj/sha256.o
bitcoind: $(OBJS:obj/%=obj/nogui/%) obj/sha256.o
http://www.bitcoin.org/download/bitcoin-0.3.10-win32.zip
SHA1 4f35ad7711a38fe8c880c6c9beab430824c426d3 bitcoin-0.3.10-win32.zip
1) Shut down.
2) Download knightmb's blk files and replace your blk0001.dat and blkindex.dat files.
http://knightmb.dyndns.org/files/bitcoin/blocks/
http://rapidshare.com/files/413168038/BitcoinBlocks.torrent
3) Upgrade to 0.3.10.
4) It should start out with less than 74000 blocks and redownload the rest.
2) Delete (or move) blk*.dat
3) Upgrade to 0.3.10.
4) It redownloads all blocks, probably take about an hour.
--------------------
Re: overflow bug SERIOUS
2010-08-15 23:17:24 UTC - Original Post - View in Thread
[edit] Just saw your post, I'll build one to less than 74,000 then, should at least save you technical people a few minutes of downloading the new chain.
Just leave the old one alone! Older is better. What block number is it? Anywhere from 60000-74000 is good. The one that you've had available for a while has been vetted and is the best choice.
--------------------
Re: overflow bug SERIOUS
2010-08-15 23:36:10 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.10-win32-setup.exe
http://www.bitcoin.org/download/bitcoin-0.3.10-win32.zip
http://www.bitcoin.org/download/bitcoin-0.3.10-linux.tar.gz
SHA1 4f35ad7711a38fe8c880c6c9beab430824c426d3 bitcoin-0.3.10-win32.zip
SHA1 e3fda1ddb31b0d5c35156cacd80dee6ea6ae6423 bitcoin-0.3.10-linux.tar.gz
--------------------
Re: overflow bug SERIOUS
2010-08-15 23:37:07 UTC - Original Post - View in Thread
I think that you should add something about this: http://bitcointalk.org/index.php?topic=259.0
There must be a label on the client that show a warning message if needed
Now everyone have always to check the website, and I think that this is bad.
Agree, wanted to do that for a long time, haven't had time to do it.
For now, you could also subscribe to the bitcoin-list mailing list. It rarely gets used except for announcements like this and major new versions.
Subscribe/unsubscribe page:
http://lists.sourceforge.net/mailman/listinfo/bitcoin-list
--------------------
Version 0.3.10 - block 74638 overflow PATCH!
2010-08-15 23:48:22 UTC - Original Post - View in Thread
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.10/
SHA1 4f35ad7711a38fe8c880c6c9beab430824c426d3 bitcoin-0.3.10-win32.zip
SHA1 e3fda1ddb31b0d5c35156cacd80dee6ea6ae6423 bitcoin-0.3.10-linux.tar.gz
SHA1 b812ccff4881778b9090f7c0b0255bcba7b078ac bitcoin-0.3.10-macosx.zip
--------------------
Re: 0.3.10.1 Question on where block should be
2010-08-16 00:28:28 UTC - Original Post - View in Thread
--------------------
Re: 0.3.10.1 Question on where block should be
2010-08-16 00:37:20 UTC - Original Post - View in Thread
--------------------
Re: overflow bug SERIOUS
2010-08-16 01:00:45 UTC - Original Post - View in Thread
Question about fallout: I had a transaction that I submitted after the bad block, using the bad block chain.What is the status of that transaction?From what I can tell, my (updated) sending client wallet shows the deducted amount.Will it get reincorporated into the fixed chain, and will the recipient be able to spend it?
Right, it will get reincorporated into the fixed chain. The transaction won't disappear, it'll still be visible on both sides, but the confirmation count will jump back to 0 and start counting up again.
It's only if you generated a block in the bad chain after block 74638 that the 50 BTC from that will disappear. Any blocks in the bad chain wouldn't have matured yet.
--------------------
Re: overflow bug SERIOUS
2010-08-16 01:02:24 UTC - Original Post - View in Thread
I did all steps, now my client is 0.3.10 and it stopped at block 74638. Is all fine?
If you still show 74638 blocks then you aren't connected to any 0.3.10 nodes.
For today, try adding these parameters:
-addnode=75.158.131.108 -addnode=99.27.237.13 -addnode=68.68.99.14
--------------------
Re: overflow bug SERIOUS
2010-08-16 01:12:05 UTC - Original Post - View in Thread
2) How will this affect clients that upgrade to 3.8.10 but don't remove their block chain files?
1) Once more than 50% of the node power is upgraded and the good chain overtakes the bad, the 0.3.10 nodes will make it hard for any bad transactions to get any confirmations.
2) If you didn't remove your blk*.dat files, you're not helping to contribute to that 50%, and you'll still show bad transactions until the good chain overtakes the bad chain.
--------------------
Re: overflow bug SERIOUS
2010-08-16 02:16:10 UTC - Original Post - View in Thread
--------------------
Re: overflow bug SERIOUS
2010-08-16 02:38:21 UTC - Original Post - View in Thread
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit 0.3.9 rc2
2010-08-16 02:57:57 UTC - Original Post - View in Thread
I propose to compile sha256.cpp with -O3 -march=amdfamk10 (will work on 32bit and 64bit) as only CPUs supporting this instruction set (AMD Phenom, Intel i5 and newer) benefit from -4way and it'll improve performance by ~9%.
GCC 4.3.3 doesn't support -march=amdfamk10. I get:
sha256.cpp:1: error: bad value (amdfamk10) for -march= switch
With 4way, I get significantly better performance when I have all my virtual cores enabled. I think I get about the same amount of hashes when hyper threading is turned off with or without 4way.
Hey, you may be onto something!
hyperthreading didn't help before because all the work was in the arithmetic and logic units, which the hyperthreads share.
tcatm's SSE2 code must be a mix of normal x86 instructions and SSE2 instructions, so while one is doing x86 code, the other can do SSE2.
How much of an improvement do you get with hyperthreading?
Some numbers? What CPU is that?
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit 0.3.9 rc2
2010-08-16 03:23:04 UTC - Original Post - View in Thread
That works.
That's strange... are we sure that's the same thing? tcatm, try amdfam10 and make sure you get the same speed measurement.
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
2010-08-16 04:36:59 UTC - Original Post - View in Thread
Code:cpu family : 6
model : 26
model name : Genuine Intel(R) CPU 000 @ 3.20GHz
stepping : 4
cpu family 6 model 26 stepping 4 is an Intel Core i7.
That's a 23% speedup with -4way, 63% total speedup with -4way + hyperthreading.
33% faster with hyperthreading than without it.
--------------------
Re: overflow bug SERIOUS
2010-08-16 12:59:38 UTC - Original Post - View in Thread
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
2010-08-16 13:38:01 UTC - Original Post - View in Thread
#ifdef FOURWAYSSE2
#endif // FOURWAYSSE2
--------------------
Re: [PATCH] Automatic block validation
2010-08-16 15:25:54 UTC - Original Post - View in Thread
That's a difficult approach.
We need to cause a reorg, which will disconnect the invalid chain.
This is code that will rarely ever get tested, and is fairly intricate, so something simple and safe is best.
Here's what I was thinking of. (I haven't tested this yet) It checks all the blocks in the main chain. If it finds a bad one, it sets all that chain's bnChainWork to 0 so it can't win best chain again, and it reduces best chain work to the fork level so any new block after the fork will cause a reorg. (It can't change pindexBest without actually doing a reorg)
This isn't perfect yet. It still needs to receive one valid block to trigger the reorg.
It would probably be possible to initiate an AddToBlockIndex or Reorganize after the check, but it would require a lot more careful attention. I probably should break out part of AddToBlockIndex that sets the new best block. I'll probably end up doing that instead of the code below.
Code:bool CTxDB::LoadBlockIndex()
{
...// Verify blocks in the main chain
vector<CBlockIndex*> vChain;
for (CBlockIndex* pindex = pindexBest; pindex && pindex->pprev; pindex = pindex->pprev)
{
vChain.push_back(pindex);
CBlock block;
if (!block.ReadFromDisk(pindex))
return error("LoadBlockIndex() : block.ReadFromDisk failed");
if (!block.CheckBlock())
{
bnBestChainWork = pindex->pprev->bnChainWork;
foreach(CBlockIndex* pindex2, vChain)
pindex2->bnChainWork = 0;
}
}return true;
}
blocks minus 1
2010-08-16 15:59:25 UTC - Original Post - View in Thread
- Quote from: davidonpda on August 15, 2010, 11:31:37 PM
- ... It already is on block 74638. I assume that means that block is now a good one?
I had some confusion on this myself and got clarification in #bitcoin-dev:The bad block was number 74638, the last good one was 74637. The numbers start at 0, so when your client shows there are 74638 blocks then that means you have up to block number 74637, the last good one.
--------------------
--------------------
BitcoinTalk
Re: [PATCH] Automatic block validation
2010-08-16 17:08:02 UTC - Original Post - View in Thread
It would probably be possible to initiate an AddToBlockIndex or Reorganize after the check, but it would require a lot more careful attention. I probably should break out part of AddToBlockIndex that sets the new best block. I'll probably end up doing that instead of the code below.
This is what I ended up doing in SVN rev 139.
Instead of deleting the bad chain, I added an extra CheckBlock to ConnectBlock so bad blocks can't get back into the best chain once they're kicked out.
--------------------
Checking the block chain on load
2010-08-16 20:07:46 UTC - Original Post - View in Thread
--------------------
Re: checkpointing the block chain
2010-08-16 20:20:53 UTC - Original Post - View in Thread
--------------------
Re: overflow bug SERIOUS
2010-08-16 22:54:55 UTC - Original Post - View in Thread
--------------------
Re: checkpointing the block chain
2010-08-16 23:01:48 UTC - Original Post - View in Thread
How is the strength of the chain calculated?
Total proof-of-work.
--------------------
Re: New screenshots to the front page?
2010-08-18 16:58:44 UTC - Original Post - View in Thread
--------------------
Re: Difficulty: More nodes active, or faster nodes?
2010-08-18 18:01:40 UTC - Original Post - View in Thread
--------------------
Re: Checking the block chain on load
2010-08-18 18:28:28 UTC - Original Post - View in Thread
--------------------
Re: Convert Bitcoin to GTK: Yes? No? wx is better?
2010-08-19 18:44:36 UTC - Original Post - View in Thread
WxWidgets is not really a problem. My problem is the version that is used (2.9), which is considered unstable by many distro packagers (although the WxWidgets devs say it isn't). On the other side, as far as I know WxWidgets uses gtk under Linux for drawing the whole stuff and makes it for the bitcoins devs easy to make things cross platform.
wxWidgets 2.9 is their first UTF-8 version. We are UTF-8 on all platforms including Windows.
The distro packages of 2.8 are UTF-16, so they just trip people up. People had endless build problems with 2.8 and its wxString UTF-16/ANSI conditional build options until we standardized on 2.9. Also, to use 2.8, we were using ANSI, which was just a temporary stopgap until wxWidgets supported UTF-8.
This is a problem that will solve itself. With time, 2.9 will become a more mainline release.
--------------------
Re: HOWTO: Compiling Bitcoin on Ubuntu 10.04 (Karmic)
2010-08-19 18:55:48 UTC - Original Post - View in Thread
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
2010-08-19 19:07:43 UTC - Original Post - View in Thread
Any non-Mac i5 love?
Windows i5 64-bit got slower here.
That's the first I've heard anyone say i5 was slower. Everyone else has said 4way was faster on i5. Moreso with hyperthreading enabled.
And i5, at least on my macbookpro
Good, so I take it that's a confirmation that it's working on Mac as well?
Laszlo told me he did compile in the -4way stuff on Mac, so the -4way switch is also available to try on Mac. I don't think makefile.osx on SVN has it yet, just the built version.
--------------------
Re: 28 days without generation, i have 4200khash/s
2010-08-19 19:40:30 UTC - Original Post - View in Thread
--------------------
Need a post writing up some things users should know
2010-08-19 20:14:01 UTC - Original Post - View in Thread
--------------------
Re: Hypothetical question on lost coins / transfers
2010-08-19 20:28:50 UTC - Original Post - View in Thread
-------------------
Re: Need a post writing up some things users should know
2010-08-22 22:51:00 UTC - Original Post - View in Thread
--------------------
Re: 28 days without generation, i have 4200khash/s
2010-08-22 23:01:02 UTC - Original Post - View in Thread
Search debug.log for "proof-of-work found". If you find any, then check for any errors right after that.
How big of a margin on the time is allowed for things to work right.
The margin is 2 hours.
This should be solved in SVN rev 141 and the next release (0.3.11+). It'll pop up a message box alerting you if your clock is off by more than an hour.
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
2010-08-22 23:21:50 UTC - Original Post - View in Thread
--------------------
Development of alert system
2010-08-22 23:55:06 UTC - Original Post - View in Thread
- Put a warning message on the status bar.
- Make the money handling methods of the json-rpc interface return an error.
sendtoaddress
getbalance
getreceivedbyaddress
getreceivedbylabel
listreceivedbyaddress
listreceivedbylabel
--------------------
Re: integrating digital payments into p2p protocols
2010-08-22 23:57:32 UTC - Original Post - View in Thread
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
2010-08-24 22:43:56 UTC - Original Post - View in Thread
- AMD K10: 2 128bit units
- intel nehalem: 3 128bit units
This probably explains why hyperthreading increases performance with -4way. If three SSE2 units is excessive, then hyperthreading would help keep them all busy.
--------------------
Re: Development of alert system
2010-08-24 23:51:12 UTC - Original Post - View in Thread
--------------------
Re: Development of alert system
2010-08-25 00:06:36 UTC - Original Post - View in Thread
--------------------
Re: Development of alert system
2010-08-25 15:17:37 UTC - Original Post - View in Thread
sendtoaddress
getbalance
getreceivedbyaddress
getreceivedbylabel
listreceivedbyaddress
listreceivedbylabel
--------------------
Re: Development of alert system
2010-08-25 16:40:20 UTC - Original Post - View in Thread
--------------------
Re: Development of alert system
2010-08-25 16:56:15 UTC - Original Post - View in Thread
- Quote from: BioMike on August 23, 2010, 05:15:43 AM
- @mizerydearia, I think the quote button is easier to find then the reply one.
- So, theoretical this is a first control system where <some goverment> can arrest satoshi and demand
that he hands over his key (or get it from his computer) and shut down the complete network?- Or is that not possible? How far would <some goverment> get?
A few rhetorical questions for satoshi:
Can you resist waterboarding?
Can you endure electric shock?
All forms of torture?
Lastly, are you Jack Bauer by any chance? Seriously.
WRT the alert system, who cares? The most the key can do is temporarily disable six json-rpc commands until the site owners either add the -disablesafemode switch or upgrade. All nodes keep running and generating, the network stays up. If I'm not available, any script kiddie can figure out how to add two characters and make a new version that disables the alert system. It would be a temporary inconvenience only.
So, theoretical this is a first control system where <some goverment> can arrest satoshi and demand
that he hands over his key (or get it from his computer) and shut down the complete network?
This is what makes me think the people objecting don't know what they're talking about. It can't "shut down the complete network".
--------------------
Re: Development of alert system
2010-08-25 17:59:30 UTC - Original Post - View in Thread
So what kind of warning do admins get from bitcoind? Is there something we can grep from debug.log? Or will rpc calls raise some specific error? Is there a way to locally force this to happen, for unittesting services?
getinfo has a new field that shows any alert messages or other errors that would be displayed on the status bar.
The rpc methods return a json-rpc error with the error description "Safe mode: " followed by additional text specified by the alert.
I added the switch "-testsafemode" for you. SVN rev 145.
This stuff is very new and may still be subject to change.
I just discovered http://www.bitcoin.org/wiki/doku.php?id=man_page and don't see any reference to -disablesafemode. Perhaps it should be added! Also others liek -4way should be added as well.
Many switches are intentionally undocumented, like if their functionality is still under construction or I haven't settled on their name yet, or just test code not intended for release.
-4way should eventually be replaced by an auto-detect.
--------------------
Re: Development of alert system
2010-08-26 00:08:12 UTC - Original Post - View in Thread
So, theoretical this is a first control system where <some goverment> can arrest satoshi and demand
that he hands over his key (or get it from his computer) and shut down the complete network?Or is that not possible? How far would <some goverment> get?
- This is what makes me think the people objecting don't know what they're talking about. It can't "shut down the complete network".
I've never objected this change/idea, just asking if this was possible and to what extent.
What's wrong with getting informed?
My apologies, your post was indeed a question not a statement.
--------------------
Re: RFC: remove DB_PRIVATE flag
2010-08-26 00:33:28 UTC - Original Post - View in Thread
--------------------
Re: Need a post writing up some things users should know
2010-08-26 00:44:05 UTC - Original Post - View in Thread
--------------------
Re: auto backing up of wallet.dat
2010-08-26 00:57:40 UTC - Original Post - View in Thread
backupwallet <destination>
--------------------
Re: Gentoo Linux Ebuild
2010-08-27 00:49:43 UTC - Original Post - View in Thread
Try -datadir=
Last time I tried $(shell /usr/bin/wx-config), there was immediate hollering about build problems with it. There wasn't time to investigate at the time.
One problem with $(shell /usr/bin/wx-config) is it will pick up any version (wx 2.8 ) and any configuration (non-UTF-8 ) of wxWidgets that happens to be there. -lwx_gtk2ud-2.9 only matches the right configuration. It fails if wxWidgets was built with the wrong configuration.
QuoteIirc, chatting in #wxwidgets on freenode, the devs there were baffled why that was used.
Did they say why they were baffled?
QuoteThis is because on my system the path is /usr/include/wx-2.9/wx/wx.h
Why is it there? Was it included by the OS, or did you have to build it? If you built it, I wonder why it would put itself in a different place.
Has wxWidgets 2.9 finally started to become available as a debian package?
Maybe we should do this:
INCLUDEPATHS= \
-I"/usr/local/include/wx-2.9" \
-I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9" \
-I"/usr/include/wx-2.9" \
-I"/usr/lib/wx/include/gtk2-unicode-debug-static-2.9"
Again, those paths help make sure it's only 2.9 and will fail with 2.8.
wxWidgets 2.8 comes in ANSI and UTF-16, both wrong for us. It's tempting because it's so easily available as a package; a lot of people were frustrated by it until we started hardcoding 2.9 into the makefile.
--------------------
Re: auto backing up of wallet.dat
2010-08-27 01:13:42 UTC - Original Post - View in Thread
If you read it into memory and write it out, it could fail in tight memory situations.
I'm looking for something like copyfile(const char* from, const char* to) or copyfile(path from, path to), preferably something in Boost if it has it. If you find it for me, it's more likely I'll get to implementing it.
As for the file copy, why add to the boost dependency? I for one would love to get a core lib with very little deps.
We require Boost for JSON and a dozen things replacing dependencies on wxWidgets. Boost is good, portable stuff, we should not shy away from it.
--------------------
Re: auto backing up of wallet.dat
2010-08-27 02:54:07 UTC - Original Post - View in Thread
I doubt there's an mmap(2) on Windows. I'd rather call an existing file copy function than make and test my own.
But if you are already using features from boost::filesystem you can use copy_file from that. I just think that, if not already required for something else, it's a tad overkill.
Thanks. I thought it would be in there somewhere.
We already use boost::filesystem in a dozen places. It's not a new added dependency. It gives us a lot of portable stuff that we would otherwise have to have a #ifdef for each OS and test everywhere.
--------------------
Re: auto backing up of wallet.dat
2010-08-27 15:47:57 UTC - Original Post - View in Thread
--------------------
Re: New web service: obtain dump of bitcoin block NNNN
2010-08-27 16:13:16 UTC - Original Post - View in Thread
--------------------
Re: Bitcoins are most like shares of common stock
2010-08-27 16:39:26 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin does NOT violate Mises' Regression Theorem
2010-08-27 17:32:07 UTC - Original Post - View in Thread
- boring grey in colour
- not a good conductor of electricity
- not particularly strong, but not ductile or easily malleable either
- not useful for any practical or ornamental purpose
- can be transported over a communications channel
--------------------
Version 0.3.11 with upgrade alerts
2010-08-27 21:54:12 UTC - Original Post - View in Thread
- Some blk*.dat checking on load
- Built the -4way code with -march=amdfam10, which makes it a little faster
- Warning if your clock is too far off
- Warnings/errors/alerts can also be seen in the getinfo command
- Alert system
sendtoaddress
getbalance
getreceivedbyaddress
getreceivedbylabel
listreceivedbyaddress
listreceivedbylabel
--------------------
Re: tcatm's 4-way SSE2 for Linux 32/64-bit is in 0.3.10
2010-08-28 14:27:15 UTC - Original Post - View in Thread
--------------------
Re: Version 0.3.11 with upgrade alerts
2010-08-28 14:54:04 UTC - Original Post - View in Thread
The "About" dialog still shows 0.3.10.1 beta.
What OS? I ran the Windows and 64-bit Linux version and checked the about dialog.
The Mac version is still 0.3.10.1.
iirc, it is possible to specify -march on a per-function basis using some gcc __attribute__. That way, only the function in question would be optimized, and if the user doesn't specify -4way, everything else should be ok.
I updated the first post to be more specific. Only the -4way code is compiled this way.
--------------------
Re: Big endian code problems
2010-08-29 22:14:36 UTC - Original Post - View in Thread
--------------------
Re: CryptoPP Assertion Error
2010-09-05 23:25:32 UTC - Original Post - View in Thread
cryptopp/secblock.h:187
//assert(false);
--------------------
Re: Warning : Check your system ( Help me )
2010-09-05 23:36:20 UTC - Original Post - View in Thread
1) the system clock
2) the other nodes, if within an hour of the system clock
if those disagree, then
3) the user (asking the user to fix the system clock)
--------------------
Re: HTTP status codes from the JSON-RPC api
2010-09-06 21:21:21 UTC - Original Post - View in Thread
- The command line json-rpc returns the error code as its exit code. Exit codes can only be 0-255 on unix, so it's abs(code)%256.
- The "backupwallet <destination>" command that was discussed in another thread. It locks the wallet and copies it, so you can be sure you get a correct copy.
--------------------
Re: Warning : Check your system ( Help me )
2010-09-06 21:41:06 UTC - Original Post - View in Thread
- Quote from: satoshi on September 05, 2010, 11:36:20 PM
- Any suggestions for better text to put for this error message so the next person will be less likely to be confused?
"Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
Thanks.
--------------------
Re: auto backing up of wallet.dat
2010-09-06 21:45:10 UTC - Original Post - View in Thread
--------------------
Re: bitcoind as daemon in OSX
2010-09-06 21:52:45 UTC - Original Post - View in Thread
#ifdef __WXGTK__
#ifndef __WXMSW__
--------------------
Re: Always pay transaction fee?
2010-09-07 16:32:21 UTC - Original Post - View in Thread
--------------------
Version 0.3.12
2010-09-07 19:17:55 UTC - Original Post - View in Thread
- json-rpc errors return a more standard error object. (thanks to Gavin Andresen)
- json-rpc command line returns exit codes.
- json-rpc "backupwallet" command.
- Recovers and continues if an exception is caused by a message you received. Other nodes shouldn't be able to cause an exception, and it hasn't happened before, but if a way is found to cause an exception, this would keep it from being used to stop network nodes.
http://bitcointalk.org/index.php?topic=969.0
--------------------
Re: Always pay transaction fee?
2010-09-08 17:30:14 UTC - Original Post - View in Thread
--------------------
Re: Version 0.3.12
2010-09-08 18:06:04 UTC - Original Post - View in Thread
--------------------
Re: Bitcoin Blogger: Is It Better To Buy Or Generate Bitcoins?
2010-09-08 20:27:39 UTC - Original Post - View in Thread
AMD X3 @2.8ghz
->stock client
~3800khs ~150Watt
Did you try -4way?
QuoteHow many hashes can I expect with a 24 core machine? I have a quad-core generating 4,300 hashes-per-second, so I am estimating a 24-core machine could mine bitcoins at 25,000 hashes-per-second.
AMD Phenom (I think 4-core) CPUs are doing about 11,000khps with -4way, about 100% speedup. 24 cores should get 66,000khps. AMD is the best choice because it has the best SSE2 implementation. (or maybe because tcatm had an AMD and optimised his code for that)
There's been so much else to do that I haven't had time to make -4way automatic. For now you still have to do it manually.
http://bitcointalk.org/index.php?topic=820.0
--------------------
Auto-detect for 128-bit 4-way SSE2
2010-09-09 01:04:05 UTC - Original Post - View in Thread
SVN rev 150 has some code to try to auto-detect whether to use 4-way SSE2. We need this because it's only faster on certain newer CPUs that have 128-bit SSE2 and not ones with 64-bit SSE2.
It uses the CPUID instruction to get the CPU brand, family, model number and stepping. That's the easy part. Knowing what to do with the model number is the hard part. I was not able to find any table of family, model and stepping numbers for CPUs. I had to go by various random reports I saw.
Here's what I ended up with:
Code:// We need Intel Nehalem or AMD K10 or better for 128bit SSE2
// Nehalem = i3/i5/i7 and some Xeon
// K10 = Opterons with 4 or more cores, Phenom, Phenom II, Athlon II
// Intel Core i5 family 6, model 26 or 30
// Intel Core i7 family 6, model 26 or 30
// Intel Core i3 family 6, model 37
// AMD Phenom family 16, model 10
bool fUseSSE2 = ((fIntel && nFamily * 10000 + nModel >= 60026) ||
(fAMD && nFamily * 10000 + nModel >= 160010));
I saw some sporadic inconsistent model numbers for AMD CPUs, so I'm not sure if this will catch all capable AMDs.
If it's wrong, you can still override it with -4way or -4way=0.
It prints what it finds in debug.log. Search on CPUID.
This is only enabled if built with GCC.
--------------------
Re: Won't let me send coins because it requires a transaction fee?
2010-09-10 00:23:24 UTC - Original Post - View in Thread
--------------------
Re: Won't let me send coins because it requires a transaction fee?
2010-09-10 00:46:37 UTC - Original Post - View in Thread
--------------------
Re: Won't let me send coins because it requires a transaction fee?
2010-09-10 17:12:33 UTC - Original Post - View in Thread
--------------------
Re: Auto-detect for 128-bit 4-way SSE2
2010-09-10 18:11:06 UTC - Original Post - View in Thread
Since the function CallCPUID function contains x86 assembler, it breaks the build on other architectures. I've changed line 2770 in main.cpp to#if defined(__GNUC__) && defined(CRYPTOPP_X86_ASM_AVAILABLE)to make it compile again, at least on ARM.
Added in SVN rev 152
--------------------
Re: Running on a port other than 8333
2010-09-12 17:40:20 UTC - Original Post - View in Thread
Is there a way to open BerkeleyDB exclusive?DB_PRIVATE is the worst of both worlds. DB_PRIVATE is not exclusive, but it does make it get screwed up if another process tries to access it at the same time.
I've dropped the DB_PRIVATE flag in rev 153.
--------------------
Re: RFC: remove DB_PRIVATE flag
2010-09-12 18:00:39 UTC - Original Post - View in Thread
with DB_PRIVATE 20 minutes 51 seconds
without DB_PRIVATE 20 minutes 51 seconds
--------------------
Re: Switch to GPL
2010-09-12 19:24:53 UTC - Original Post - View in Thread
--------------------
Re: Memory leak
2010-09-19 17:22:03 UTC - Original Post - View in Thread
{
boost::thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(n));
}
--------------------
Re: Issues building bitcoin on Windows 7
2010-09-19 18:46:46 UTC - Original Post - View in Thread
The lines it's tripping on:
Code:ERROR extern map<string, string> mapAddressBook;
ERROR extern CCriticalSection cs_mapAddressBook;
ERROR extern vector<unsigned char> vchDefaultKey;
OK extern bool fClient;
OK extern int nBestHeight;OK extern unsigned int nWalletDBUpdated;
ERROR extern DbEnv dbenv;
So it's acting like nothing is defined, not even map and vector.
Yet, db.h is included by headers.h (and only there, nowhere else) which includes vector, map, util.h and everything before db.h.
Is VC trying to use precompiled headers and screwing it up? Could there be some leftover precompiled header files in your directory from previously failed attempts that it's finding and using?
There's an installer package now that makes it really easy to install MinGW. Don't use the latest version 4.5.0, use a few versions back like 4.4.1 (1.908.0) or 1.812.0. A setup program completely installs everything, it's not hard like it used to be. I think the only thing I had to do was rename make*.exe something to make.exe.
http://tdm-gcc.tdragon.net/
Off topic, but: It would be nice if someone would hack on getting tcatm's 4-way 128-bit SSE2 code working on Windows. There's something with MinGW's optimisation, I'm not sure but maybe a problem with 16-byte alignment on the stack, that makes it segfault. With some fiddling, I was able to get his code to work in a test program, but not in Bitcoin itself for some reason.
--------------------
Re: Bug? /usr/bin/bitcoind ""
2010-09-19 19:58:11 UTC - Original Post - View in Thread
--------------------
Re: The case for removing IP transactions
2010-09-19 21:49:30 UTC - Original Post - View in Thread
--------------------
Re: Message Encryption as a built-in feature?
2010-09-19 22:47:00 UTC - Original Post - View in Thread
--------------------
Re: Always pay transaction fee?
2010-09-23 16:08:35 UTC - Original Post - View in Thread
The current threshold is 200KB per block, or about 1000 transactions per block. I think it should be lowered to 50KB per block. That would still be more than 100 times the average transactions per block.
I implemented this change in SVN rev 157.
The reason I previously made it so high was to allow very large transactions without hitting the transaction fee. The threshold was around 26,000 BTC for transactions made of 50 BTC generated coins. Even though it was 100 times easier to generate back then, only a few people ever encountered the fee at that level. The new threshold puts it at around 11,000 BTC for sending generated coins. It would mostly only be reached with generated bitcoins. If you bought your bitcoins, they'll be denominated in larger transactions and won't be anywhere near the fee limit, unless you bought them in several hundred separate transactions. Even if you do reach the fee level, you only have to pay it once to bundle your little transactions together.
--------------------
Internal version number
2010-09-23 16:19:08 UTC - Original Post - View in Thread
--------------------
Re: Warning : Check your system ( Help me )
2010-09-23 16:28:25 UTC - Original Post - View in Thread
I don't understand, are you under the impression that the program sets the system clock? It doesn't.
We already have ways to synchronize (approximately) the clients, so why not make use of that?
We use an internal offset based on the median of other nodes' times, but for security reasons we don't let them offset us by more than an hour. If they indicate we're off by more than an hour, then we resort to alerting the user to fix their clock.
--------------------
Re: Porn
2010-09-23 17:56:55 UTC - Original Post - View in Thread
--------------------
Re: How divisible are bitcoins - the technical side
2010-09-23 18:39:56 UTC - Original Post - View in Thread
--------------------
Re: Internal version number
2010-09-23 18:46:20 UTC - Original Post - View in Thread
--------------------
Re: How To Make a Distributed BitCoin Escrow Service
2010-09-26 17:34:26 UTC - Original Post - View in Thread
http://bitcointalk.org/index.php?topic=750.0
--------------------
Re: I broke my wallet, sends never confirm now.
2010-09-30 16:38:53 UTC - Original Post - View in Thread
if (pcoin->GetDepthInMainChain() < 1 && pcoin->GetDebit() <= 0)
continue;
to:
if (pcoin->GetDepthInMainChain() < 1)
continue;
--------------------
Re: I broke my wallet, sends never confirm now.
2010-09-30 16:59:00 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.13-rc1-win32-setup.exe
--------------------
0.3.13 RC1 for Windows, please test
2010-09-30 17:04:15 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.13-rc1-win32-setup.exe
http://bitcointalk.org/index.php?topic=1306.0
- internal version number from 312 to 31300
- only accept transactions sent by IP address if -allowreceivebyip is specified
- dropped DB_PRIVATE Berkeley DB flag
- fix problem sending the last cent with sub-cent fractional change
- auto-detect whether to use 128-bit 4-way SSE2 on Linux
Gavin Andresen:
- option -rpcallowip= to accept json-rpc connections from another machine
- clean shutdown on SIGTERM on Linux
--------------------
Re: BitCoin Wikipedia page DELETED!!!
2010-09-30 17:50:32 UTC - Original Post - View in Thread
"Bitcoin is a peer-to-peer decentralised /link/electronic currency/link/."
--------------------
Re: Prioritized transactions, and tx fees
2010-09-30 18:11:56 UTC - Original Post - View in Thread
50KB 0.01
250KB 0.02
333KB 0.03
375KB 0.04
etc.
--------------------
Re: Prioritized transactions, and tx fees
2010-09-30 18:22:22 UTC - Original Post - View in Thread
--------------------
Re: Remote RPC access
2010-09-30 18:27:41 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.13-rc1-win32-setup.exe
--------------------
Re: 0.3.13 RC1 for Windows, please test
2010-10-01 00:32:46 UTC - Original Post - View in Thread
--------------------
Version 0.3.13, please upgrade
2010-10-01 00:34:35 UTC - Original Post - View in Thread
- Don't count or spend payments until they have 1 confirmation.
- Internal version number from 312 to 31300.
- Only accept transactions sent by IP address if -allowreceivebyip is specified.
- Dropped DB_PRIVATE Berkeley DB flag.
- Fix problem sending the last cent with sub-cent fractional change.
- Auto-detect whether to use 128-bit 4-way SSE2 on Linux.
Gavin Andresen:
- Option -rpcallowip= to accept json-rpc connections from another machine.
- Clean shutdown on SIGTERM on Linux.
The SSE2 auto-detect in the Linux 64-bit version doesn't work with AMD in 64-bit mode. Please try this instead and let me know if it gets it right:
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz
http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe
--------------------
Re: Version 0.3.13
2010-10-03 18:17:06 UTC - Original Post - View in Thread
That's nice, however the automatic 4way detection is not working on my Gentoo AMD 64 version client.I still have to add the "-4way" switch.
Forgot to say, I suspected the detect might not work on 64-bit AMD. I found it hard to believe but AMD reports a different model number in 64-bit mode.
Could you grep CPUID your debug.log and tell me what it says? (and anyone else with 64-bit AMD) And what AMD chip do you have?
Do all AMDs that support 64-bit have the better SSE2 hardware also?
--------------------
Re: Version 0.3.13, please upgrade
2010-10-03 19:39:06 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-win32.zip
http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz
SHA1 9fc44ea5f2109618073e2cfd887e2cc266eb31a9 bitcoin-0.3.13.1-specialbuild-linux64.tar.gz
--------------------
Re: Version 0.3.13, please upgrade
2010-10-03 19:49:32 UTC - Original Post - View in Thread
983 Mhash/s box.
Seriously? What hardware is that?
--------------------
Re: Version 0.3.13, please upgrade
2010-10-03 20:02:24 UTC - Original Post - View in Thread
Code:diff -u old\main.cpp new\main.cpp
--- old\main.cpp Sun Oct 03 20:57:20 2010
+++ new\main.cpp Sun Oct 03 20:57:54 2010
@@ -2831,6 +2831,10 @@
bool fUseSSE2 = ((fIntel && nFamily * 10000 + nModel >= 60026) ||
(fAMD && nFamily * 10000 + nModel >= 160010));+ // AMD reports a lower model number in 64-bit mode
+ if (fAMD && sizeof(void*) > 4 && nFamily * 10000 + nModel >= 160004)
+ fUseSSE2 = true;
+
static bool fPrinted;
if (!fPrinted)
{
@@ -2989,6 +2993,17 @@// Transaction fee based on block size
int64 nMinFee = tx.GetMinFee(nBlockSize);
+ //////// temporary code
+ if (nBlockSize < MAX_BLOCK_SIZE_GEN / 10 && GetWarnings("statusbar") == "")
+ {
+ if (nBestHeight < 91000)
+ nMinFee = 0;
+ if (nBestHeight < 100000 && nTxSize < 2000)
+ nMinFee = 0;
+ if (nBestHeight < 110000 && nBestHeight % 10 == 0)
+ nMinFee = 0;
+ }
+ //////// temporary codemap<uint256, CTxIndex> mapTestPoolTmp(mapTestPool);
if (!tx.ConnectInputs(txdb, mapTestPoolTmp, CDiskTxPos(1,1,1), pindexPrev, nFees, false, true, nMinFee))
diff -u old\serialize.h new\serialize.h
--- old\serialize.h Sun Oct 03 20:57:45 2010
+++ new\serialize.h Sun Oct 03 20:57:54 2010
@@ -22,8 +22,8 @@
class CAutoFile;
static const unsigned int MAX_SIZE = 0x02000000;-static const int VERSION = 31300;
-static const char* pszSubVer = "";
+static const int VERSION = 31301;
+static const char* pszSubVer = " test1";
--------------------
Re: Version 0.3.13, please upgrade
2010-10-03 20:54:07 UTC - Original Post - View in Thread
ArtForz is already running with no fees, and he has 20-30% of the network's CPU power. The person who originally sent the broken transactions deleted his wallet, though, and the network has forgotten these historical transactions, so any transactions based on this won't confirm.
Transactions aren't accepted or displayed as 0/unconfirmed until your node has a path of transactions back to the block chain.
Any transactions in your wallet also have bundled with them all unrecorded transactions required to reach the block chain. If you have a transaction that is displayed as 0/unconfirmed, then you have all the previous unrecorded transactions it depends on and you will also rebroadcast those transactions when you rebroadcast yours.
If a no-fee block has already been generated and hasn't helped, then I need to look at what's wrong. It's a part of code that doesn't get much use. They should be recorded in the wallets of everyone who has a transaction depending on them.
The person who originally sent the broken transactions deleted his wallet
Sigh... why delete a wallet instead of moving it aside and keeping the old copy just in case? You should never delete a wallet.
It's running. Should find a block within 3 hours.
It may take a while to collect re-broadcast transactions. It'll help if you can accept inbound connections so you'll be listening to more nodes. Even if you find a block in 3 hours, keep it running continuously for a few days at least.
--------------------
Re: [PATCH] increase block size limit
2010-10-03 21:07:28 UTC - Original Post - View in Thread
+1 theymos. Don't use this patch, it'll make you incompatible with the network, to your own detriment.
We can phase in a change later if we get closer to needing it.
--------------------
Re: How to overthrow the GPU Oligarchs
2010-10-03 21:30:04 UTC - Original Post - View in Thread
- Quote from: lzsaver on October 02, 2010, 05:49:47 AM
- Can you tell more about it:
"they have to do weird things with extraNonce, which increases the size of the block header".When you generate, you calculate hashes of the block header. Hashing more data is slower than hashing less data, so the block header is critically of a fixed size for everyone, with one exception.
This is the point of confusion. extraNonce is not part of the block header, it is part of the first transaction. It does not slow down your hashing. It does not change the size of the header.
We need to be vigilant and nip in the bud any misconception that the contents of your block slows down your hash speed. It doesn't.
extraNonce never needs to be very big. We could reset it every second whenever the time changes if we wanted. Worst case, if you didn't want to keep track of incrementing it, extraNonce could be 4 random bytes and the chance of wasting time from collision would be negligible.
Separate machines are automatically collision proof because they have different generated public keys in the first transaction. That also goes for each thread too.
--------------------
Re: Version 0.3.13, please upgrade
2010-10-03 21:43:20 UTC - Original Post - View in Thread
--------------------
Re: Memory leak
2010-10-03 22:07:00 UTC - Original Post - View in Thread
--------------------
Re: Version 0.3.13, please upgrade
2010-10-03 23:46:19 UTC - Original Post - View in Thread
--------------------
Re: Website and software translations
2010-10-04 01:44:41 UTC - Original Post - View in Thread
--------------------
Re: Website and software translations
2010-10-04 19:21:01 UTC - Original Post - View in Thread
Where can I find the latest English .po file to keep the translation up-to-date?
poedit does it. Either get the src directory from a release, or download it with SVN. Place your .po file 3 directories deep under the src directory. Open it with poedit and do Catalog->Update from sources.
So for example, you have:
src
srcase58.h
srcignum.h
...
src\util.cpp
src\util.h
src\xpm
src\locale u\LC_MESSAGESitcoin.po
Open bitcoin.po with poedit, do Catalog->Update from sources. It looks for the sourcecode up 3 directories (..\..\..) from where bitcoin.po is.
This updates your existing .po file you already worked on and adds any news strings. It may try to match close strings, so check things over and make sure it didn't make any bad guesses.
Make sure you use the .po file I uploaded to SVN or in a release, because I always fix up at least a few things. I'm attaching your Russian one to this message.
--------------------
Re: [PATCH] increase block size limit
2010-10-04 19:48:40 UTC - Original Post - View in Thread
maxblocksize = largerlimit
--------------------
Re: Website and software translations
2010-10-06 15:42:39 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe
--------------------
Re: I broke my wallet, sends never confirm now.
2010-10-06 16:54:23 UTC - Original Post - View in Thread
http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe
--------------------
Re: Tor connections not working reliably, many seednodes offline
2010-10-06 17:36:41 UTC - Original Post - View in Thread
--------------------
Re: The Niche List
2010-10-06 23:10:31 UTC - Original Post - View in Thread
1. Download site like rapidshare and other crappy host. Inconvenient captcha and required paypal. Bitcoin can possibly take both roles and streamline the whole process.
Repeating myself here, but there is open source software for that, so it would just be a matter of bolting on a Bitcoin payment mechanism. One good one I found was Mihalism Multi Host. It's designed as a free host, so it would just need a few tweaks to loosen up restrictions consistent with paid use.
--------------------
Key pool feature for safer wallet backup
2010-10-09 20:19:33 UTC - Original Post - View in Thread
--------------------
Version 0.3.14
2010-10-21 16:39:27 UTC - Original Post - View in Thread
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.14/
- Key pool feature for safer wallet backup
Gavin Andresen:
- TEST network mode with switch -testnet
- Option to use SSL for JSON-RPC connections on unix/osx
- validateaddress RPC command
eurekafag:
- Russian translation
--------------------
Re: Website and software translations
2010-10-21 22:50:47 UTC - Original Post - View in Thread
The order matters not to the program, but it matters to me maintaining it. If it jumbles the order of the .po file then I can't diff for changes. I have to update all 7 translation files when I change the English text in the program, and it's easier when they're all in the same order.
I can still put it back into normal order by making poedit rescan it.
It is normal that untranslated strings are shown on top.
By the way, there are some similar lines that possibly may be replaced by one. They are very close by meaning and differs only by 1-2 words. Just a suggestion of course.
I know, but not easily without complicating the sourcecode.
--------------------
Re: ERROR - PLEASE HELP ME!
2010-10-23 18:22:49 UTC - Original Post - View in Thread
his block count remains "stuck" at 1698.
He was generating invalid blocks at difficulty 1.0. He must have a corrupted entry in his blk0001.dat or blkindex.dat file. He just needs to delete blk*.dat and let it redownload.
The safety lockdown detected the problem and was displaying "WARNING: Displayed transactions may not be correct!" because it saw a longer chain existed that it was unable to accept. The safety lockdown cannot stop generation or it would create an attack possibility.
The Bitcoin client really shouldn't allow coin generation until you have all of the blocks up to the last block checkpoint.
Good idea, I made a change to make sure it won't generate before checkpoint block 74000.
--------------------
Re: ERROR - PLEASE HELP ME!
2010-10-23 18:38:04 UTC - Original Post - View in Thread
--------------------
Re: Win7 64bit since last patch Tues now crashes
2010-10-23 18:52:02 UTC - Original Post - View in Thread
Fault Module Name: mingwm10.dll
This is the important clue. I believe it's saying it crashed in that. Maybe there are other versions of it to try. mingwm10.dll is just a simple placeholder thing that satisfies some callback requirement for multithreaded apps.
Is anyone else running OK on Windows 64-bit?
--------------------
Re: Suggestion: Allow short messages to be sent together with bitcoins ?
2010-10-23 19:02:57 UTC - Original Post - View in Thread
--------------------
Re: Multiple Wallets, one computer
2010-10-24 19:17:51 UTC - Original Post - View in Thread
Move from one internal account to another. I think blank account name ("") will be your default account. If you sell something to a user, you could do move "theiraccount" "" 123.45.
Is "move" the best name for this? I shied away from "transfer" because that sounds too close to sending a transaction.
Gives you an address allocated from getnewaddress <account>. It'll keep giving the same address until something is received on the address, then it allocates a new address. (It automatically does what the sample code I posted some time ago did)
--------------------
Re: Multiple Wallets, one computer
2010-10-25 16:53:53 UTC - Original Post - View in Thread
print "balance: " + getbalance(username, 0)
print "available balance: " + getbalance(username, 6)
move(username, "", amount, 6)
sendfrom(username, bitcoinaddress, amount, 6)
--------------------
Re: Win7 64bit since last patch Tues now crashes
2010-10-25 17:27:47 UTC - Original Post - View in Thread
--------------------
Re: New icon/logo
2010-11-13 00:55:51 UTC - Original Post - View in Thread
--------------------
Re: Some testing that I did on the testnetwork, my findings.
2010-11-13 23:25:26 UTC - Original Post - View in Thread
--------------------
Version 0.3.15
2010-11-13 23:26:40 UTC - Original Post - View in Thread
- paytxfee switch is now per KB, so it adds the correct fee for large transactions
- sending avoids using coins with less than 6 confirmations if it can
- BitcoinMiner processes transactions in priority order based on age of dependencies
- make sure generation doesn't start before block 74000 downloaded
- bugfixes by Dean Gores
- testnet, keypoololdest and paytxfee added to getinfo
--------------------
Re: Some testing that I did on the testnetwork, my findings.
2010-11-14 16:53:19 UTC - Original Post - View in Thread
Of course, if the network is not being flooded and you're not overly concerned about the current transaction getting held up then it's probably worth preferring to use your 0 conf transactions so that you can "save" the higher priority coins for when the network is being flooded.
You should use at least some priority in case a flood comes along before the next block.
As long as all dependencies have at least 1 conf, if the transaction doesn't have enough priority at first, the dependencies will age until it does.
QuoteGaming the system by including 1000 or so recently turned over BTC to bump the priority as described in my post above still works of course!
Or managing how much priority you spend on a transaction. The software would have to know your future plans to know whether to spend your priority now or save it for later. I don't think we'll need to get into that much detail though. There's a wide enough difference between normal users and flooders.
Priority doesn't have to do everything. Once you know there's a flood, you can add -paytxfee=0.01. Hopefully with priority, your transactions before that should be at worst slow, not stuck.
--------------------
Re: Need OP_BLOCKNUMBER to allow "time" limited transactions
2010-11-15 18:37:44 UTC - Original Post - View in Thread
--------------------
Re: Transaction / spam flood attack currently under way
2010-11-19 23:50:24 UTC - Original Post - View in Thread
Perhaps in addition to the age priority rule recently implimented, there should be a minimum age rule without a transaction fee. Said another way, perhaps a generation rule that says that a free transaction must be 3 blocks deep before it can be transfered again for free. This will still allow real users to immediately spend new funds if they have to, while still permitting real users to reshuffle funds to suit their needs without an overhead cost. I think that this would significantly inhibit the type of spamming attack that is currently underway.
I'm doing something like that. Priority is a more formalised version of the concept you're describing.
As it stands now 3.15 has a lot of free transaction space and that space is given first to transactions with the highest [age]*[value]/[size] correct? Would it be reasonable to make some arbitrary portion of the free space require [age]*[value]/[size] > C ?Maybe set C so that a standard 1BTC transaction can get into the main free area on the next block. And a .1 can get in after waiting about 10 blocks. And make the area which allows [age]*[value]/[size] < C to let in about a dozen transactions or so.
Yes, like this. And the no-priority-requirement area is 3K, about a dozen transactions per block.
I just uploaded SVN rev 185 which has a minimal priority requirement for free transactions. Transaction floods are made up of coins that are re-spent over and over, so they depend on their own 0 conf transactions repeatedly. 0 conf transactions have 0 priority, so free transactions like that will have to wait for one transaction to get into a block at a time.
Version 0.3.15 doesn't write transactions using 0 conf dependencies unless that's all it has left, so normal users shouldn't usually have a problem with this.
I think this is a good compromise short of making the default fee 0.01. It's not so much to ask that free transactions can only be used to turn coins over so often. If you're using free transactions, you're taking charity and there has to be some limit on how often you can use it with the same coins.
We've always said free transactions may be processed more slowly. You can help ensure your transactions go through quickly by adding -paytxfee=0.01.
--------------------
Re: OpenCL miner for the masses
2010-11-20 17:24:20 UTC - Original Post - View in Thread
updated to SVN 186
Thanks m0mchil for keeping up on the updates!GPU miners, please upgrade as soon as possible to shut down the free transaction abuse! This version has the new priority-based limit on free transaction spam.
Just updated to SVN 181 and fixed getwork patch to wait 60 seconds between rebuilding the block with new transactions. This is actually the behavior of the original client, was forgotten in the patch by mistake. Fixes heavy CPU usage on every getwork request (this became obvious with recent heavy transaction spam). Please upgrade.
Before SVN 184, compiling transactions into a block used an n^2 algorithm. The new efficient single-pass algorithm is orders of magnitude quicker. (O(n) vs O(n^2)/2 algorithm, n=200 maybe 10 to 100 times quicker)
--------------------
New getwork
2010-11-23 19:50:12 UTC - Original Post - View in Thread
If [data] is not specified, returns formatted hash data to work on:
"midstate" : precomputed hash state after hashing the first half of the data
"data" : block data
"hash1" : formatted hash buffer for second hash
"target" : little endian hash target
If [data] is specified, tries to solve the block and returns true if it was successful. [data] is the same 128 byte block data that was returned in the "data" field, but with the nonce changed.
- It does not return work when you submit a possible hit, only when called without parameter.
- The block field has been separated into data and hash1.
- data is 128 bytes, which includes the first half that's already hashed by midstate.
- hash1 is always the same, but included for convenience.
- Logging of "ThreadRPCServer method=getwork" is disabled, it would be too much junk in the log.
--------------------
Re: New getwork
2010-11-23 20:55:27 UTC - Original Post - View in Thread
--------------------
Re: New getwork
2010-11-24 17:21:01 UTC - Original Post - View in Thread
I suspect something weird going on with ByteReverse (or lack thereof). It's quite unclear whether or not 'data' and 'nonce' must be byte-reversed, and in what way.
getwork does the byte-reversing. midstate, data and hash1 are already big-endian, and you pass data back still big-endian, so you work in big-endian and don't have to do any byte-reversing. They're the same data that is passed to the ScanHash_ functions. You can take midstate, data and hash1, put them in 16-byte aligned buffers and pass them to a ScanHash_ function, like ScanHash(pmidstate, pdata + 64, phash1, nHashesDone). If a nonce is found, patch it into data and call getwork.
I should probably change the ScanHash_ functions to use pdata instead of pdata + 64 so they're consistent.
target is little endian, it's supposed to be the same as how m0mchil's did it. (if it's not, then it should be fixed) That's the only case where you would use byte reverse. I think you do it like: if ByteReverse((unsigned int*)hash[6]) < (unsigned int*)target[6].
Satoshi, please fix your implementation of getwork so it complies with m0mchill's specification
This is the new spec. It shouldn't be hard to update your miner to use it.The changes are:
- It does not return work when you submit a possible hit, only when called without parameter.
- The block field has been split into data and hash1.
- state renamed to midstate for consistency.
- extranonce not needed.
--------------------
Re: OpenCL miner for the masses
2010-11-24 17:53:09 UTC - Original Post - View in Thread
--------------------
Re: RFC: ship block chain 1-74000 with release tarballs?
2010-11-25 17:51:39 UTC - Original Post - View in Thread
--------------------
Version 0.3.17
2010-11-25 20:07:36 UTC - Original Post - View in Thread
- new getwork, thanks m0mchil
- added transaction fee setting in UI options menu
- free transaction limits
- sendtoaddress returns transaction id instead of "sent"
- getaccountaddress <account>
--------------------
Re: RFC: ship block chain 1-74000 with release tarballs?
2010-11-26 17:32:01 UTC - Original Post - View in Thread
I tested it on a slow 7 year old drive, where bandwidth and CPU were clearly not the bottleneck. Initial download took 1 hour 20 minutes.
If it's taking a lot longer than that, certainly 24 hours, then it must be downloading from a very slow node, or your connection is much slower than around 15KB per sec (120kbps), or something else is wrong. It would be nice to know what appears to be the bottleneck when that happens.
Every 10 minutes or so when the latest block is sent, it should have the chance to change to a faster node. When the latest block is broadcast, it requests the next 500 blocks from other nodes, and continues the download from the one that sends it fastest. At least, that's how it should work.
- Quote from: satoshi on November 25, 2010, 05:51:39 PM
- Maybe Berkeley DB has some tweaks we can make to enable or increase cache memory.
Which of the ACID properties do you need, while downloading?
It may only need more read caching. It has to read randomly all over blk0001.dat and blkindex.dat to index. It can't assume the file is smaller than memory, although it currently still is. Caching would be effective, since most dependencies are recent.
Someone should experiment with different Berkeley DB settings and see if there's something that makes the download substantially faster. If something substantial is discovered, then we can work out the particulars.
QuoteAdding BDB records is simply appending to a log file, until you issue a checkpoint. The checkpoint then updates the main database file.
We checkpoint every 500 blocks.
--------------------
Re: Version 0.3.17
2010-11-26 18:23:30 UTC - Original Post - View in Thread
--------------------
Re: New getwork
2010-11-26 21:31:13 UTC - Original Post - View in Thread
--------------------
Re: New demonstration CPU miner available
2010-11-26 22:02:41 UTC - Original Post - View in Thread
--------------------
Re: Cooperative mining
2010-11-28 16:03:30 UTC - Original Post - View in Thread
--------------------
Re: RFC: ship block chain 1-74000 with release tarballs?
2010-11-28 17:13:01 UTC - Original Post - View in Thread
Despite everything else said, the current next step is:
QuoteSomeone should experiment with different Berkeley DB settings and see if there's something that makes the download substantially faster. If something substantial is discovered, then we can work out the particulars.
In particular, I suspect that more read caching might help a lot.
Another new user on IRC, Linux this time, was downloading at a rate of 1 block every 4 seconds -- estimated total download time around 4 days.
Then something more specific was wrong. That's not due to normal initial download time. Without more details, it can't be diagnosed. If it was due to slow download, did it speed up after 10-20 minutes when the next block broadcast should have made it switch to a faster source? debug.log might have clues. How fast is their Internet connection? Was it steadily slow, or just slow down at one point?
QuoteWe have the hashes for genesis block through block 74000 hardcoded (compiled) into bitcoin, so there's no reason why we shouldn't be able to automatically download a compressed zipfile of the block database from anywhere, unpack it, verify it, and start running.
The 74000 checkpoint is not enough to protect you, and does nothing if the download is already past 74000. -checkblocks does more, but is still easily defeated. You still must trust the supplier of the zipfile.
If there was a "verify it" step, that would take as long as the current normal initial download, in which it is the indexing, not the data download, that is the bottleneck.
Presumably at some point there will be a lightweight client that only downloads block headers, but there will still be hundreds of thousands of those...
80 bytes per header and no indexing work. Might take 1 minute.
Quoteuncompressed data using a protocol (bitcoin P2P) that wasn't designed for bulk data transfer.
The data is mostly hashes and keys and signatures that are uncompressible.
The speed of initial download is not a reflection of the bulk data transfer rate of the protocol. The gating factor is the indexing while it downloads.
--------------------
Re: Is safe running bitcoins with the same wallet on more computers simultaneously?
2010-11-28 18:06:39 UTC - Original Post - View in Thread
QuoteWill it be synchronized automatically?
Very much not. Using multiple copies of wallet.dat is not recommended or supported, in fact all of Bitcoin is designed to defeat that. Both copies will get screwed up.
If you're trying to consolidate your generated coins into one wallet, a better solution now is to run getwork miners on the additional systems. jgarzik has a CPU miner, and it supports tcatm's 4-way SSE2, so on Windows it's up to twice as fast as the built-in SHA if you have an AMD or recent Intel (core 3, 5 or 7).
New demonstration CPU miner available:
http://bitcointalk.org/index.php?topic=1925.0
--------------------
Re: RFC: ship block chain 1-74000 with release tarballs?
2010-11-29 20:19:12 UTC - Original Post - View in Thread
It seems like you're inclined to assume everything is wrong more than is actually so.
Writing the block index is light work. Building the tx index is much more random access per block. I suspect reading all the prev txins is what's slow. Read caching would help that. It's best if the DB does that. Maybe it has a setting for how much cache memory to use.
Quote1) bitcoin should be opening databases, not just environment, at program startup, and closing database at program shutdown.
Already does that. See CDB. The lifetime of the (for instance) CTxDB object is only to support database transactions and to know if anything is still using the database at shutdown.
QuoteAnd, additionally, bitcoin forces a database checkpoint, pushing all transactions from log into main database.
If it was doing that it would be much slower. It's supposed to be only once a minute or 500 blocks:if (strFile == "blkindex.dat" && IsInitialBlockDownload() && nBestHeight % 500 != 0)
nMinutes = 1;
dbenv.txn_checkpoint(0, nMinutes, 0);Probably should add this:
if (!fReadOnly)
dbenv.txn_checkpoint(0, nMinutes, 0);
Quote2) For the initial block download, txn commit should occur once every N records, not every record. I suggest N=1000.
Does transaction commit imply flush? That seems surprising to me. I assume a database op wrapped in a transaction would be logged like any other database op. Many database applications need to wrap almost every pair of ops in a transaction, such as moving money from one account to another. (debit a, credit b) I can't imagine they're required to batch all their stuff up themselves.
In the following cases, would case 1 flush once and case 2 flush twice?
case 1:
write
write
write
write
checkpoint
case 2:
begin transaction
write
write
commit transaction
begin transaction
write
write
commit transaction
checkpoint
Contorting our database usage will not be the right approach. It's going to be BDB settings and caching.
--------------------
Re: Incompatible wallet format with latest bitcoin-git ?
2010-11-30 19:02:31 UTC - Original Post - View in Thread
{
string strAccount;
ssKey >> strAccount;
uint64 nNumber;
ssKey >> nNumber;
if (nNumber > nAccountingEntryNumber)
nAccountingEntryNumber = nNumber;
}
{
string strAccount;
assert(!ssKey.empty());
ssKey >> strAccount;
uint64 nNumber;
if (ssKey.size() != 8 )
printf("***** %s %d ", strAccount.c_str(), ssKey.size());
assert(ssKey.empty() == false);
ssKey >> nNumber;
if (nNumber > nAccountingEntryNumber)
nAccountingEntryNumber = nNumber;
}
run
(wait for exception)
bt
--------------------
Re: RFC: ship block chain 1-74000 with release tarballs?
2010-12-01 21:25:39 UTC - Original Post - View in Thread
dbenv.set_errfile(fopen(strErrorFile.c_str(), "a")); /// debug
dbenv.set_flags(DB_AUTO_COMMIT, 1);
+ dbenv.set_flags(DB_TXN_NOSYNC, 1);
ret = dbenv.open(strDataDir.c_str(),
DB_CREATE |
DB_INIT_LOCK |
DB_INIT_LOG |
--------------------
Re: Wikileaks contact info?
2010-12-05 09:08:08 UTC - Original Post - View in Thread
Basically, bring it on. Let's encourage Wikileaks to use Bitcoins and I'm willing to face any risk or fallout from that act.
No, don't "bring it on".
The project needs to grow gradually so the software can be strengthened along the way.
I make this appeal to WikiLeaks not to try to use Bitcoin. Bitcoin is a small beta community in its infancy. You would not stand to get more than pocket change, and the heat you would bring would likely destroy us at this stage.
--------------------
Re: JSON-RPC method idea: list transactions newer than a given txid
2010-12-08 20:21:49 UTC - Original Post - View in Thread
1) How do you know if a past transaction becomes invalid and disappears?
2) When there's a block-chain reorg, it would be easy to double-count transactions when they get confirmed again.
3) A transaction can be replaced by a double-spend with a different txid. You would count both spends.
--------------------
Re: JSON-RPC method idea: list transactions newer than a given txid
2010-12-08 22:36:45 UTC - Original Post - View in Thread
--------------------
Version 0.3.18
2010-12-08 23:19:24 UTC - Original Post - View in Thread
- Fixed a wallet.dat compatibility problem if you downgraded from 0.3.17 and then upgraded again
- IsStandard() check to only include known transaction types in blocks
- Jgarzik's optimisation to speed up the initial block download a little
- getaccountaddress
- sendfrom
- move
- getbalance
- listtransactions
--------------------
Re: JSON-RPC method idea: list transactions newer than a given txid
2010-12-09 00:12:17 UTC - Original Post - View in Thread
I'm not talking about the normal risk for a given minconf level, I'm talking about additional pitfalls from listtransactions when used this way.
2) When there's a block-chain reorg, it would be easy to double-count transactions when they get confirmed again.
The OP's example of listtransactions <account> [count=10] [txid] seems to imply and it would be very easy for programmers to assume that if they pass in the last txid of the previous call to listtransactions, they will never see the same transaction more than once, which is not the case. It would be very easy to double-count payments if you don't maintain your own persistent map or dictionary to track which txid's you've already accepted.
It doesn't seem right to have a function that seems tailor made to be used a certain obvious way, and that way is a non-obvious trap.
- Quote from: satoshi on December 08, 2010, 10:36:45 PM
- 3) A transaction can be replaced by a double-spend with a different txid. You would count both spends.
listtransactions does not add anything to this problem, beyond that which is already vulnerable through listreceivedbyaddress.
Suppose both spends are to the same address. getreceivedbyaddress would always count only one or the other spend at any given time, never both.
Using listtransactions, it would be very easy to count both. You see the first spend, you count it. You see the second spend, you count it. Total is double counted.
--------------------
Re: Version 0.3.18
2010-12-09 14:37:05 UTC - Original Post - View in Thread
txout: 0.00 <appid, hash> OP_CHECKSIG
fee: 0.01
I thought of a simple way to implement the timestamp concept I mentioned above. Run sha1sum on the file you want to timestamp. Convert the result to a Bitcoin address, such as via http://blockexplorer.com/q/hashtoaddress . Then send a small payment to that address.The money will be lost forever, as there is no way to spend it further, but the timestamp Bitcoin address will remain in the block chain as a record of the file's existence.I understand that this is arguably not a good use of the Bitcoin distributed database, but nothing stops people from doing this so we should be aware that it may be done.
--------------------
Re: Version 0.3.18
2010-12-09 15:17:53 UTC - Original Post - View in Thread
I came to agree with Gavin about whitelisting when I realized how quickly new transaction types can be added.
why not make it easier on everyone and just allow say, 64 or 128 bytes of random data in a transaction?
That's already possible. <pubkey> OP_CHECKSIG. <pubkey> can be 33 to 120 bytes.
I also support a third transaction type for timestamp hash sized arbitrary data. There's no point not having one since you can already do it anyway. It would tell nodes they don't need to bother to index it.
--------------------
Re: JSON-RPC method idea: list transactions newer than a given txid
2010-12-09 18:08:08 UTC - Original Post - View in Thread
I agree with you and satoshi about "txs after <txid>". My listtransactions (now xlisttransactions) patch pointedly does not have that feature, and never has.
As long as the interface is designed for things like showing the user the last N transactions history, it's fine, now that we have the Accounts feature making it easier to do payment detection the right way.
Gavin, could listtransactions have an option to list transactions for all accounts?
I'm not sure what the interface could be, maybe:
listtransactions <JSON null type> [count]
It would be hard to do that from the command line though.
I can't think of a good solution for the interface, that's the problem. Maybe "*" special case like "" is. Everyone would have to make sure no user can create account name "*".
Sure, and that's easy enough to track with transactions.
I don't get how that's "easy" to track with transactions.
--------------------
Re: Automated nightly builds
2010-12-09 18:28:45 UTC - Original Post - View in Thread
--------------------
Re: BitDNS and Generalizing Bitcoin
2010-12-09 21:02:42 UTC - Original Post - View in Thread
--------------------
Re: BitDNS and Generalizing Bitcoin
2010-12-09 22:46:50 UTC - Original Post - View in Thread
seems that the miner would have to basically do "extra work". and if there's no reward from the bitdns mining from the extra work (which of course, slows down the main bitcoin work), what would be a miner's incentive to include bitdns (and whatever other side chains) ?
The incentive is to get the rewards from the extra side chains also for the same work.
While you are generating bitcoins, why not also get free domain names for the same work?
If you currently generate 50 BTC per week, now you could get 50 BTC and some domain names too.
You have one piece of work. If you solve it, it will solve a block from both Bitcoin and BitDNS. In concept, they're tied together by a Merkle Tree. To hand it in to Bitcoin, you break off the BitDNS branch, and to hand it in to BitDNS, you break off the Bitcoin branch.In practice, to retrofit it for Bitcoin, the BitDNS side would have to have maybe ~200 extra bytes, but that's not a big deal. You've been talking about 50 domains per block, which would dwarf that little 200 bytes per block for backward compatibility. We could potentially schedule a far in future block when Bitcoin would upgrade to a modernised arrangement with the Merkle Tree on top, if we care enough about saving a few bytes.
Note that the chains are below this new Merkle Tree. That is, each of Bitcoin and BitDNS have their own chain links inside their blocks. This is inverted from the common timestamp server arrangement, where the chain is on top and then the Merkle Tree, because that creates one common master chain. This is two timestamp servers not sharing a chain.
--------------------
Re: Fees in BitDNS confusion
2010-12-09 23:58:54 UTC - Original Post - View in Thread
--------------------
Re: BitDNS and Generalizing Bitcoin
2010-12-10 17:29:28 UTC - Original Post - View in Thread
--------------------
Accounts example code
2010-12-10 19:21:03 UTC - Original Post - View in Thread
print "balance: " + getbalance(username, 0)
print "available balance: " + getbalance(username, 6)
if (move(username, "", amount, 6, "purchased item"))
SendTheGoods()
sendfrom(username, bitcoinaddress, amount, 6, "withdrawal by user")
--------------------
Re: BitDNS and Generalizing Bitcoin
2010-12-10 19:55:12 UTC - Original Post - View in Thread
additional block chains would each create their own flavor of coins, which would trade with bitcoins on exchanges? These chain-specific coins would be used to reward miners on those chains, and to purchase some kinds of rights or privileges within the domain of that chain?
Right, the exchange rate between domains and bitcoins would float.
A longer interval than 10 minutes would be appropriate for BitDNS.
So far in this discussion there's already a lot of housekeeping data required. It will be much easier if you can freely use all the space you need without worrying about paying fees for expensive space in Bitcoin's chain. Some transactions:
Changing the IP record.
Name change. A domain object could entitle you to one domain, and you could change it at will to any name that isn't taken. This would encourage users to free up names they don't want anymore. Generated domains start out blank and the miner sells it to someone who changes it to what they want.
Renewal. Could be free, or maybe require consuming another domain object to renew. In that case, domain objects (domaincoins?) could represent the right to own a domain for a year. The spent fee goes to the miners in the next block fee.
--------------------
Re: BitDNS and Generalizing Bitcoin
2010-12-10 20:19:39 UTC - Original Post - View in Thread
--------------------
Re: BitDNS and Generalizing Bitcoin
2010-12-11 13:08:30 UTC - Original Post - View in Thread
1) IP records don't need to be in the chain, just do registrar function not DNS. And CA problem solved, neat.
2) Pick one TLD, .web +1.
3) Expiration and significant renewal costs, very important.
However, thinking more about this now I support inclusion of additional coinbases / tracking systems in the main network. The reason for doing this is so as not to water down CPU power into multiple networks. We want one strong network, so the network should be versatile.
Avoiding CPU power fragmentation is no longer a reason. Independent networks/chains can share CPU power without sharing much else. See: http://bitcointalk.org/index.php?topic=1790.msg28696#msg28696 and http://bitcointalk.org/index.php?topic=1790.msg28715#msg28715
--------------------
Re: Bitcoin and buffer overflow attacks
2010-12-11 13:32:37 UTC - Original Post - View in Thread
direct to IP address transfers seems like a obvious surface area to attack.
If you ever find anyone who turned it on. It's disabled by default.
There is no way to be absolutely sure that there are no buffer overflow attacks. Although it would help to implement the client in a language that doesn't have buffer overflows because it checks array indices (Python, Java, C#, ...).
It's all STL. There are almost no buffers.
--------------------
Re: minimalistic bitcoin client on D language?
2010-12-11 22:07:04 UTC - Original Post - View in Thread
I'd like to hear some specific criticisms of the code. To me it looks like an impressive job, although I'd wish for more comments. Now I've mostly studied the init, main, script and a bit of net modules. This is some powerful machinery.
That means a lot coming from you, Hal. Thanks.
--------------------
Re: PC World Article on Bitcoin
2010-12-11 23:39:16 UTC - Original Post - View in Thread
--------------------
Added some DoS limits, removed safe mode (0.3.19)
2010-12-12 18:22:33 UTC - Original Post - View in Thread
As Gavin and I have said clearly before, the software is not at all resistant to DoS attack. This is one improvement, but there are still more ways to attack than I can count.
"safe mode" alerts was a temporary measure after the 0.3.9 overflow bug. We can say all we want that users can just run with "-disablesafemode", but it's better just not to have it for the sake of appearances. It was never intended as a long term feature. Safe mode can still be triggered by seeing a longer (greater total PoW) invalid block chain.
----------------
参与讨论(0)