# Kicking the Hornet's Nest - third edition - part 11

All links, digital (pdf, txt, docx, md) and book in print, can be found at https://hive.blog/@crrdlx/satoshi

Edited by [crrdlx](https://njump.me/nprofile1qyv8wumn8ghj7mn0wdj8y6tkv5hxzurs9aex2mrp0yq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uqzqqzmcn0yrn7ttq8hrjkk46ysn2tk26rr8f8k4y7xkl74hlh3rcdzm9d3t8), npub:

```

nostr:npub1qpdufhjpel94srm3ett2azgf49m9dp3n5nm2j0rt0l2mlmc3ux3qza082j

```

----

### Kicking the Hornet's Nest pages 225 - 250

----

**BitcoinTalk**

Re: Simple to implement feature requests

_2010-02-08 16:37:24 UTC_ - [-](https://bitcointalk.org/index.php?topic=46.msg284#msg284)

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

**Martii Malmi (AKA Sirius) “COPA trial” email #158**

**Date: Thu, 11 Feb 2010 22:58:29 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: Translation**

**To: mmalmi@cc.hut.fi**

I didn't make any changes to Drupal code. The only thing other than

installing themes was the .htaccess file (which really is needed, it

didn't work in the global config file).

It was only SMF where I made some PHP changes.

You might find it preferable not to translate it into your own language.

Often the standard answer about legalities is that it's only intended

for people in other countries. Translating it into your home language

weakens that argument.

_mmalmi@cc.hut.fi wrote:_

_> I got the translations working correctly, now it should automatically_

_> detect the language from the browser settings. Choosing manually is of_

_> course also possible. I asked the translators to send me their_

_> translations as pm or e-mail. I guess I'll make a Finnish translation_

_> myself at some point. Multiple translations add to the site's credibility._

_>_

_> Drupal is asking to do a security update. Do we have other customized_

_> files we need to backup than those located in the "sites" directory?_

_>_

**BitcoinTalk**

Re: DEB Package?

_2010-02-12 02:33:02 UTC_ - [-](https://bitcointalk.org/index.php?topic=49.msg315#msg315)

Are you just trying to run the program or do you really need to compile it? There's a 32-bit linux binary that can be run on 64-bit ubuntu if you "sudo apt-get ia32-libs".

[http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-linux.tar.gz/download](http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.2.0-linux.tar.gz/download)

I 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.

**BitcoinTalk**

Re: Repost: Request: Make this anonymous?

_2010-02-12 17:28:32 UTC_ - [-](https://bitcointalk.org/index.php?topic=7.msg324#msg324)

True, sending by IP through Tor trades one problem for another. The Tor exit node can see the text of your message and potentially MITM you.

Best to only send to bitcoin addresses then. Payments by bitcoin address are broadcast over the network as part of the normal network traffic. All communications with the network are broadcasts of public information.

**Martii Malmi (AKA Sirius) “COPA trial” email #160**

**Date: Sat, 13 Feb 2010 01:08:42 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: JSON-RPC status**

**To: mmalmi@cc.hut.fi**

I uploaded my JSON-RPC and command line implementation to SVN. I'm

waiting to post on the forum when I've had more time to think about the

commands. At least some method names are going to change.

To enable the RPC server, add the switch -server. It's not on by default.

Client commands are without any switches, as such:

bitcoin getblockcount

bitcoin getdifficulty

bitcoin getnewaddress somelabel

bitcoin sendtoaddress 1DvqsbZ... 1.00

bitcoin getallpayments 0

bitcoin stop

Applications would normally use JSON-RPC directly, not command line.

I haven't tested my JSON-RPC server with anything else yet. If you do,

please tell me how it goes. You're using Python, right?

Getting the Linux version to run without the GTK installed will be a

separate task.

mmalmi@cc.hut.fi wrote:

> That's great! I'll start familiarizing myself with Liberty Reserve and

> its api.

>

**BitcoinTalk**

Re: DEB Package?

_2010-02-13 01:38:37 UTC_ - [-](https://bitcointalk.org/index.php?topic=49.msg326#msg326)

I couldn't get wxWidgets 2.8.9 to compile on Karmic 64-bit either.

I have been compiling the latest SVN on Karmic 64-bit with wxWidgets 2.9.0, which compiles fine on 64-bit. Read build-unix.txt and use the given ../configure parameters on wxWidgets so you can use the makefile.unix.wx2.9 as supplied. (--enable-debug --disable-shared --enable-monolithic)

-- fixed

The download link on the homepage is to the sourceforge tar.gz archive which contains the 32-bit binary and the 0.2.0 sources, which were not yet buildable on 64-bit at the time.

The SVN was first buildable on 64-bit with wx2.9.0 on 28 January 2010.

Hopefully they'll have a wxWidgets 2.9.0 debian package someday.

**BitcoinTalk**

Re: What's with this odd generation?

_2010-02-14 06:28:03 UTC_ - [-](https://bitcointalk.org/index.php?topic=48.msg327#msg327)

[_**Quote from: theymos on February 12, 2010, 08:31:52 AM**_](https://bitcointalk.org/index.php?topic=48.msg318#msg318)

_Does the sending client send more BitCoins to account for the fee (so the recipient gets what he's expecting)?_

Yes.

[_**Quote from: SmokeTooMuch on February 12, 2010, 01:11:09 PM**_](https://bitcointalk.org/index.php?topic=48.msg319#msg319)

_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.

**BitcoinTalk**

Re: What's with this odd generation?

_2010-02-14 15:52:23 UTC_ - [-](https://bitcointalk.org/index.php?topic=48.msg329#msg329)

Right. Otherwise we couldn't have a finite limit of 21 million coins, because there would always need to be some minimum reward for generating. In a few decades when the reward gets too small, the transaction fee will become the main compensation for nodes. I'm sure that in 20 years there will either be very large transaction volume or no volume.

**Martii Malmi (AKA Sirius) “COPA trial” email #163**

**Date: Sun, 14 Feb 2010 21:48:31 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: JSON-RPC status**

**To: mmalmi@cc.hut.fi**

_mmalmi@cc.hut.fi wrote:_

_>> I haven't tested my JSON-RPC server with anything else yet. If you do,_

_>> please tell me how it goes. You're using Python, right?_

_>>_

_>> Getting the Linux version to run without the GTK installed will be a_

_>> separate task._

_>_

_> Yes, using Python. I didn't test the JSON-RPC yet as I don't have_

_> Bitcoin running on the vps yet. It doesn't work without a window manager_

_> even if GTK libraries are installed. I asked about it at wxWidgets forum_

_> (http://wxforum.shadonet.com/viewtopic.php?t=26954) but they didn't have_

_> much clue. Maybe we'll just need to make two different binaries._

I will probably relent and do that. I can move init and shutdown into

init.cpp or start.cpp or something, link only wxbase and not link ui.o

and uibase.o.

wxWidgets is mostly Windows people, they wouldn't know much about GTK.

Don't you have an Ubuntu laptop you can test and compile on so you don't

have to toy with the vps?

**BitcoinTalk**

Re: Proof-of-work difficulty increasing

_2010-02-15 06:28:38 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg346#msg346)

14/02/2010 0000000065465700000000000000000000000000000000000000000000000000

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%

Another big jump in difficulty yesterday from 1.82 times to 2.53 times, a 39% increase since 10 days ago. It was 10 days apart not 14 because more nodes joined and generated the 2016 blocks in less time.

**Martii Malmi (AKA Sirius) “COPA trial” email #165**

**Date: Mon, 15 Feb 2010 18:11:53 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: JSON-RPC status**

**To: mmalmi@cc.hut.fi**

_mmalmi@cc.hut.fi wrote:_

_>> Don't you have an Ubuntu laptop you can test and compile on so you_

_>> don't have to toy with the vps?_

_>_

_> Yes. Tested with Python's JSON-RPC, and seems to work fine! Really easy_

_> to use._

Hurray, I got it on the first go.

Could you send me the Python code you used? So if I do some testing

later I don't have to figure it out myself.

**BitcoinTalk**

Re: Setting up multiple bitcoin machines behind NAT

_2010-02-16 01:34:56 UTC_ - [-](https://bitcointalk.org/index.php?topic=54.msg360#msg360)

Right now there isn't a port number setting to do that. It's a feature yet to be implemented. You can only set up your NAT to port-forward to one of the computers. (I said something earlier about NAT port translation, but that wouldn't work, other nodes wouldn't know to connect to that port)

If you want, as a small optimization, you could run the rest of your computers as:

bitcoin -connect=

so they get all their network communication from the first computer and don't all connect over the net individually for the same information. This saves bandwidth, although it doesn't use much bandwidth to begin with, so it wouldn't really matter unless you had tons of computers.

For redundancy in case the first computer goes down, you could have two that connect out and the rest connect to both of them. The first two are run normally, the rest are run like:

bitcoin -connect= -connect=

**BitcoinTalk**

Re: Proof-of-work difficulty increasing

_2010-02-17 17:58:03 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg388#msg388)

[_**Quote from: Sabunir on February 16, 2010, 08:51:51 AM**_](https://bitcointalk.org/index.php?topic=43.msg372#msg372)

_. 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%.

[_**Quote from: Sabunir on February 16, 2010, 08:51:51 AM**_](https://bitcointalk.org/index.php?topic=43.msg372#msg372)

_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.

**BitcoinTalk**

Re: Bitcoin client and website translation

_2010-02-17 19:19:43 UTC_ - [-](https://bitcointalk.org/index.php?topic=47.msg389#msg389)

I updated the SVN with changes to support translation. Translatable strings are all enclosed in _(""), and we're using UTF-8 on all platforms.

When the program runs, it looks in the directory of the EXE for the file: locale\\LC_MESSAGESitcoin.mo

is the two letter code of the language your OS is set to, like "de" or "nl".

On Linux, it also looks for:

/usr/share/locale//LC_MESSAGES/bitcoin.mo

/usr/local/share/locale//LC_MESSAGES/bitcoin.mo

(are there other standard places it should look on linux?)

Here's a quick walkthrough using poedit to make a .po and .mo file:

- Download the bitcoin sourcecode from SVN

- In the trunk directory, mkdir locale\\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

When you're done translating, commit both bitcoin.po (the editable catalog file) and bitcoin.mo (compiled data used by the program).

**BitcoinTalk**

Re: Number of connections

_2010-02-21 03:43:48 UTC_ - [-](https://bitcointalk.org/index.php?topic=58.msg413#msg413)

Nodes stop trying to initiate connections once they have 15. If you can accept incoming connections, then you can get well above that from nodes connecting to you, otherwise you max out at 15.

I don't know if there's any reason to have 15 connections. Maybe it should be 10.

Since nodes that can only connect out are probably at or near 15 most of the time now, you should level off to an equilibrium. 45 suggests a ratio of 3 out-only nodes to every 1 in-accepting node.

The number of connections won't be a good gauge of the size of the network any more. Someone should periodically IRC to the bitcoin channel on chat.freenode.net and count the number of users. That gives you the total count of network nodes (except TOR nodes).

Block generation is again running ahead of pace. We're in for another big step up in difficulty at the next adjustment in about 5 days.

**BitcoinTalk**

Post your static IP

_2010-02-21 04:19:53 UTC_ - [-](https://bitcointalk.org/index.php?topic=59.msg414#msg414)

It would be nice to have a list of static IPs for new users to send test donations to so they can see how the software works. If you can accept incoming connections and you have a static IP address, post it here!

Anything sent to these IPs should be considered a donation.

If you do request a round-trip, be sure to include your return bitcoin address or IP in the comment, but please assume it'll be one-way. They won't necessarily be watching for incoming transactions to send back.

**BitcoinTalk**

Re: Current Bitcoin economic model is unsustainable

_2010-02-21 05:44:24 UTC_ - [-](https://bitcointalk.org/index.php?topic=57.msg415#msg415)

Excellent analysis, xc.

A rational market price for something that is expected to increase in value will already reflect the present value of the expected future increases. In your head, you do a probability estimate balancing the odds that it keeps increasing.

In the absence of a market to establish the price, NewLibertyStandard's estimate based on production cost is a good guess and a helpful service (thanks). The price of any commodity tends to gravitate toward the production cost. If the price is below cost, then production slows down. If the price is above cost, profit can be made by generating and selling more. At the same time, the increased production would increase the difficulty, pushing the cost of generating towards the price.

In later years, when new coin generation is a small percentage of the existing supply, market price will dictate the cost of production more than the other way around.

At the moment, generation effort is rapidly increasing, suggesting people are estimating the present value to be higher than the current cost of production.

**BitcoinTalk**

UI improvements

_2010-02-21 21:48:01 UTC_ - [-](https://bitcointalk.org/index.php?topic=60.msg426#msg426)

Uploaded some UI changes to SVN as version 0.2.5.

Instead of View->Show Generated, we now have tabs:

- All Transactions

- Sent/Received

- Sent

- Received

Makes it a lot easier to flip to received and check for payments.

Moved the "Your Addresses" book inside the main address book. It was confusing having two address books.

I found the "To:" in "From: unknown, To: (one of your bitcoin addresses)" still confusing, so I changed it to "From: unknown, Received with:". The bitcoin address is abbreviated so you can see the label that you set in the Receiving tab of the address book.

Fixed a few UI glitches from the upgrade to wxWidgets 2.9.0.

I haven't forgotten about you people who want non-UI, but I had to do some fun stuff before more build bashing.

**Martii Malmi (AKA Sirius) “COPA trial” email #168**

**Date: Mon, 22 Feb 2010 20:17:42 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: Non-GUI option**

**To: mmalmi@cc.hut.fi**

_mmalmi@cc.hut.fi wrote:_

_> Just a few clues I've found about running the same binary without a GUI:_

_>_

_> 1) GTK supports running a program without display:_

_> http://library.gnome.org/devel/gtk/2.12/gtk-General.html#gtk-init-check._

_> This doesn't tell if it's possible in wxWidgets though._

I see it calls gtk-init-check in wxApp::Initialize.

I can subclass Initialize, call the original one while suppressing the

error message and ignore the return value. It seems to be working.

Any suggestions what to name the command line switches and how to

describe them? Is there any traditional standard? I'm currently using:

-daemon (or -d) (Enables RPC and runs in the background)

-server (Enables RPC)

**BitcoinTalk**

Re: generation slowed down dramatically

_2010-02-23 00:49:56 UTC_ - [-](https://bitcointalk.org/index.php?topic=61.msg433#msg433)

Just a random streak of bad luck. It looks steady to me.

Competition doesn't have an effect until the next automatic retarget adjustment, and we haven't reached the next one yet.

The adjustments are every 2016 blocks. To calculate our progress towards the next one, divide the block total by 2016. The fractional part is how far we are to the next one.

My back-of-the-envelope projection: 42032 blocks/2016 = 20.85 = 85% of the way. About 1.5 days to go until the next one. That'll only be about 10 days since the last one, the target is 14 days, so 14/10 = 1.4 = around 40% difficulty increase.

**BitcoinTalk**

Re: UI improvements

_2010-02-23 01:16:28 UTC_ - [-](https://bitcointalk.org/index.php?topic=60.msg434#msg434)

There are now "Sending" and "Receiving" tabs in the Address Book. Your addresses are referred to as "receiving addresses".

madhatter was working on building it on Mac. He had errors probably caused by UTF-16 wxWidgets 2.8. Should have better luck now with 2.9.0. wxWidgets 2.9.0 is UTF-8 and wouldn't have that problem.

I think he had it working on FreeBSD, but he wanted a non-UI version.

I have the command line and JSON-RPC daemon version working now. Will SVN it in a day or two.

I disabled gdm on my Ubuntu system so it boots into command line. I hope I will be able to get it enabled again with rcconf.

**Martii Malmi (AKA Sirius) “COPA trial” email #169**

**Date: Tue, 23 Feb 2010 01:41:01 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: Non-GUI option**

**To: Martti Malmi **

_>> Just a few clues I've found about running the same binary without a GUI:_

_>>_

_>> 1) GTK supports running a program without display:_

_>> http://library.gnome.org/devel/gtk/2.12/gtk-General.html#gtk-init-check._

_>> This doesn't tell if it's possible in wxWidgets though._

_>_

_> I see it calls gtk-init-check in wxApp::Initialize._

_>_

_> I can subclass Initialize, call the original one while suppressing the_

_> error message and ignore the return value. It seems to be working._

This is working. A few more things and I'll upload it.

We'll need to tell people to install the GTK libraries. Do you remember

the apt-get command to install GTK, and can you install it without

having a GUI installed?

**BitcoinTalk**

Re: Bitcoin Address Collisions

_2010-02-23 16:26:09 UTC_ - [-](https://bitcointalk.org/index.php?topic=62.msg443#msg443)

There's a separate public/private keypair for every bitcoin address. You don't have a single private key that unlocks everything. Bitcoin addresses are a 160-bit hash of the public key, everything else in the system is 256-bit.

If there was a collision, the collider could spend any money sent to that address. Just money sent to that address, not the whole wallet.

If you were to intentionally try to make a collision, it would currently take 2^126 times longer to generate a colliding bitcoin address than to generate a block. You could have got a lot more money by generating blocks.

The random seed is very thorough. On Windows, it uses all the performance monitor data that measures every bit of disk performance, network card metrics, cpu time, paging etc. since your computer started. Linux has a built-in entropy collector. Adding to that, every time you move your mouse inside the Bitcoin window you're generating entropy, and entropy is captured from the timing of disk ops.

**BitcoinTalk**

Re: UI improvements

_2010-02-23 16:53:27 UTC_ - [-](https://bitcointalk.org/index.php?topic=60.msg446#msg446)

[_**Quote from: Xunie on February 23, 2010, 12:28:27 PM**_](https://bitcointalk.org/index.php?topic=60.msg439#msg439)

_/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.

**BitcoinTalk**

Command Line and JSON-RPC

_2010-02-23 22:15:41 UTC_ - [-](https://bitcointalk.org/index.php?topic=63.msg452#msg452)

Version 0.2.6 on SVN can now run as a daemon and be controlled by command line or JSON-RPC.

On Linux it needs libgtk2.0-0 installed, but does not need a GUI running. Hopefully gtk can be installed without having a windowing system installed.

The command to start as a daemon is:

bitcoin -daemon [switches...]

Or, to run the UI normally and also be able to control it from command line or JSON-RPC, use the "-server" switch.

bitcoin -server [switches...]

With either switch, it runs an HTTP JSON-RPC server that accepts local socket connections on 127.0.0.1:8332. The port is bound to loopback and can only be accessed from the local machine, but from any account, not just the user it's running under.

To control it from the command line, the interface is a command name without any switches, followed by parameters if any.

bitcoin [params...]

For example:

bitcoin getinfo

bitcoin getdifficulty

bitcoin setgenerate true

bitcoin stop

It's a simple JSON-RPC client and prints the JSON result. Look at rpc.cpp for the list of commands.

Web apps or anything automated will normally use JSON-RPC directly, not command line. There are JSON-RPC libraries for all the major languages. In script languages like PHP and Python the syntax is as natural as calling a local function.

**BitcoinTalk**

Re: Bitcoin Address Collisions

_2010-02-23 22:24:00 UTC_ - [-](https://bitcointalk.org/index.php?topic=62.msg453#msg453)

[_**Quote from: NewLibertyStandard on February 23, 2010, 07:04:47 PM**_](https://bitcointalk.org/index.php?topic=62.msg450#msg450)

_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.

**BitcoinTalk**

Re: URI-scheme for bitcoin

_2010-02-24 05:57:43 UTC_ - [-](https://bitcointalk.org/index.php?topic=55.msg481#msg481)

That would be nice at point-of-sale. The cash register displays a QR-code encoding a bitcoin address and amount on a screen and you photo it with your mobile.

**BitcoinTalk**

Re: Command Line and JSON-RPC

_2010-02-24 06:17:23 UTC_ - [-](https://bitcointalk.org/index.php?topic=63.msg482#msg482)

[_**Quote from: theymos on February 24, 2010, 03:07:37 AM**_](https://bitcointalk.org/index.php?topic=63.msg467#msg467)

[_**Quote from: satoshi on February 23, 2010, 10:15:41 PM**_](https://bitcointalk.org/index.php?topic=63.msg452#msg452)

_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.

**Martii Malmi (AKA Sirius) “COPA trial” email #172**

**Date: Wed, 24 Feb 2010 06:34:52 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: Non-GUI option**

**To: mmalmi@cc.hut.fi**

_> I'll give Drupal accounts to the bitcoin.org translators, so they can_

_> keep the translations up to date._

Good, that gives them a little sense of ownership and responsibility.

I hope we get at least one .mo file for the software translation in time

to put into the 0.3 release.

**BitcoinTalk**

New icon/logo

_2010-02-24 21:24:23 UTC_ - [-](https://bitcointalk.org/index.php?topic=64.msg504#msg504)

New icons, what do you think? Better than the old one?

*Note: invalid image links omitted by editor*

Full size 530x529 image for scaling down to custom sizes:

*Note: invalid image link omitted by editor*

The perspective shadow was too thick on the larger sizes. I updated 32, 48 and the full size.

I release these images into the public domain (copyright-free). I request that derivative works be made public domain.

**BitcoinTalk**

Re: Make your "we accept Bitcoin" logo

_2010-02-24 21:53:52 UTC_ - [-](https://bitcointalk.org/index.php?topic=45.msg507#msg507)

If you GPL stuff, I have to avoid using it. Nothing against GPL per-se, but Bitcoin is an MIT license project. Anything GPL please clearly mark it as such.

**BitcoinTalk**

Re: Command Line and JSON-RPC

_2010-02-24 22:08:55 UTC_ - [-](https://bitcointalk.org/index.php?topic=63.msg509#msg509)

When and how fast did memory usage increase? Right away, slowly over a long time, or starting at some later event?

I have -daemon running on ubuntu 9.10 64-bit and memory usage is steady.

It has to be something about the difference on the server besides 64-bit. Maybe some malfunction from the lack of GUI. A memory leak debug tool could give a clue.

**BitcoinTalk**

Re: Proof-of-work difficulty increasing

_2010-02-24 22:42:24 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg510#msg510)

The automatic adjustment happened earlier today.

24/02/2010 0000000043b3e500000000000000000000000000000000000000000000000000

24/02/2010 3.78 +49%

I updated the first post.

**BitcoinTalk**

Re: New icon/logo

_2010-02-25 01:56:24 UTC_ - [-](https://bitcointalk.org/index.php?topic=64.msg521#msg521)

[_**Quote from: Sabunir on February 25, 2010, 01:47:56 AM**_](https://bitcointalk.org/index.php?topic=64.msg519#msg519)

_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.

**BitcoinTalk**

Re: Command Line and JSON-RPC

_2010-02-25 22:54:17 UTC_ - [-](https://bitcointalk.org/index.php?topic=63.msg539#msg539)

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.

[_**Quote from: sirius-m on February 25, 2010, 04:32:17 PM**_](https://bitcointalk.org/index.php?topic=63.msg538#msg538)

_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.

##### BitcoinTalk

Re: Proof-of-work difficulty increasing

_2010-02-25 23:06:29 UTC_ - [-](https://bitcointalk.org/index.php?topic=43.msg540#msg540)

The formula is based on the time it takes to generate 2016 blocks. The difficulty is multiplied by 14/(actual days taken). For instance, this time it took 9.4 days, so the calculation was 14/9.4 = 1.49. Previous difficulty 2.53 * 1.49 = 3.78, a 49% increase.

I don't know what you're talking about accepting easier difficulties.

**BitcoinTalk**

Re: Command Line and JSON-RPC

_2010-02-26 16:29:21 UTC_ - [-](https://bitcointalk.org/index.php?topic=63.msg555#msg555)

wx/clipbrd.h isn't used, move it inside the #if wxUSE_GUI.

Updated headers.h on SVN.

Sorry, I linked to wxbase but I had full wxWidgets on my computer.

The db.h:140 class Db no member named "exisits" is stranger. pdb->get, pdb->put, pdb->del compiled before that. Do you have version 4.7.25 of Berkeley DB?

Db::exists()

[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/frame_main.html)

[http://www.oracle.com/technology/documentation/berkeley-db/db/api_reference/CXX/dbexists.html](http://www.oracle.com/technology/documentation/berkeley-db/db/api_reference/CXX/dbexists.html)

I suppose they might have added exists recently, using get before that.

**BitcoinTalk**

Re: New icon/logo

_2010-02-26 23:17:19 UTC_ - [-](https://bitcointalk.org/index.php?topic=64.msg561#msg561)

Good suggestion. I made the B slightly lighter and the background slightly darker. Very slightly. The foreground is now exactly the same colour as the BC in the old one.

It's kind of OK if you can't easily read the B in the 16x16. At that size, you just need to see that it's a coin. It doesn't matter so much what's embossed on it, just that there be some detail there because it wouldn't look like a coin if it was a blank smooth circle.

It's slightly wider than tall because the dark perspective under it goes more to the right than down.

I finished and posted the 32x31 and 48x47 versions in the first message. I like the 48 a lot.

How does everyone feel about the B symbol with the two lines through the outside? Can we live with that as our logo?

**BitcoinTalk**

Re: Command Line and JSON-RPC

_2010-02-26 23:48:44 UTC_ - [-](https://bitcointalk.org/index.php?topic=63.msg562#msg562)

Are you using wxWidgets 2.9.0? I don't recommend using anything other than 2.9.0.

It looks like they've got a reference in the wx headers (arrstr.h) to something outside of wxBase.

Removing -D__WXDEBUG__ from bitcoin's makefile would probably solve it.

If that doesn't work and you just want to get it working, you could edit wxWidgets include/wx/arrstr.h, line 167 and comment out the wxASSERT_MSG.

**BitcoinTalk**

Re: New icon/logo

_2010-02-27 04:28:29 UTC_ - [-](https://bitcointalk.org/index.php?topic=64.msg566#msg566)

[_**Quote from: Cdecker on February 27, 2010, 03:24:07 AM**_](https://bitcointalk.org/index.php?topic=64.msg565#msg565)

_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.

**BitcoinTalk**

Re: wxWidgets 2.9.0

_2010-02-27 21:22:53 UTC_ - [-](https://bitcointalk.org/index.php?topic=65.msg571#msg571)

[_**Quote from: Cdecker on February 27, 2010, 05:09:59 PM**_](https://bitcointalk.org/index.php?topic=65.msg569#msg569)

_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.

**Martii Malmi (AKA Sirius) “COPA trial” email #174**

**Date: Sun, 28 Feb 2010 14:47:01 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: Bitcoind**

**To: mmalmi@cc.hut.fi**

I put it at bitcoin.org/download/linux64-0.2.7.1.tar.gz. You can delete

it when you've got it.

I thought about what might cause the problem you're having and made a

change that this build includes. This might have been unsafe code,

although it would probably always get lucky.

in util.cpp, old:

const char* wxGetTranslation(const char* pszEnglish)

{

// Wrapper of wxGetTranslation returning the same const char* type

as was passed in

static CCriticalSection cs;

CRITICAL_BLOCK(cs)

{

// Look in cache

static map mapCache;

map::iterator mi = mapCache.find(pszEnglish);

if (mi != mapCache.end())

return (*mi).second;

// wxWidgets translation

const char* pszTranslated =

wxGetTranslation(wxString(pszEnglish, wxConvUTF8)).utf8_str();

// We don't cache unknown strings because caller might be

passing in a

// dynamic string and we would keep allocating memory for each

variation.

if (strcmp(pszEnglish, pszTranslated) == 0)

return pszEnglish;

// Add to cache, memory doesn't need to be freed. We only

cache because

// we must pass back a pointer to permanently allocated memory.

char* pszCached = new char[strlen(pszTranslated)+1];

strcpy(pszCached, pszTranslated);

mapCache[pszEnglish] = pszCached;

return pszCached;

}

return NULL;

}

new:

const char* wxGetTranslation(const char* pszEnglish)

{

// Wrapper of wxGetTranslation returning the same const char* type

as was passed in

static CCriticalSection cs;

CRITICAL_BLOCK(cs)

{

// Look in cache

static map mapCache;

map::iterator mi = mapCache.find(pszEnglish);

if (mi != mapCache.end())

return (*mi).second;

// wxWidgets translation

wxString strTranslated = wxGetTranslation(wxString(pszEnglish,

wxConvUTF8));

// We don't cache unknown strings because caller might be

passing in a

// dynamic string and we would keep allocating memory for each

variation.

if (strcmp(pszEnglish, strTranslated.utf8_str()) == 0)

return pszEnglish;

// Add to cache, memory doesn't need to be freed. We only

cache because

// we must pass back a pointer to permanently allocated memory.

char* pszCached = new char[strlen(strTranslated.utf8_str())+1];

strcpy(pszCached, strTranslated.utf8_str());

mapCache[pszEnglish] = pszCached;

return pszCached;

}

return NULL;

}

If you still suspect this code, for testing you could change it to:

const char* wxGetTranslation(const char* pszEnglish)

{

return pszEnglish;

}

_mmalmi@cc.hut.fi wrote:_

_> I tried debugging my build of bitcoind with ddd debugger, but didn't_

_> have much success yet. It always ends up taking all the system's memory_

_> and finally crashes. Could you please send me again the latest 64 bit_

_> build of bitcoind, so I can see if the problem is about my build?_

_>_

**Martii Malmi (AKA Sirius) “COPA trial” email #175**

**Date: Sun, 28 Feb 2010 20:09:07 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: Bitcoind**

**To: mmalmi@cc.hut.fi**

Could you send me the debug.log?

_mmalmi@cc.hut.fi wrote:_

_> I tried debugging my build of bitcoind with ddd debugger, but didn't_

_> have much success yet. It always ends up taking all the system's memory_

_> and finally crashes. Could you please send me again the latest 64 bit_

_> build of bitcoind, so I can see if the problem is about my build?_

_>_

**BitcoinTalk**

Re: New icon/logo

_2010-03-02 02:33:05 UTC_ - [-](https://bitcointalk.org/index.php?topic=64.msg588#msg588)

We have the standard icon sizes, and the full size scales nicely to anything else.

I added the full size to the first post.

**Martii Malmi (AKA Sirius) “COPA trial” email #178**

**Date: Tue, 02 Mar 2010 22:27:22 +0000**

**From: Satoshi Nakamoto **

**Subject: Re: Bitcoind**

**To: mmalmi@cc.hut.fi**

Does it still do it if you didn't do getinfo?

You could comment out the CreateThreads listed below, then re-enable

them one at a time until it does it again. Then we would know which

thread the problem is in.

net.cpp, under // Start threads

CreateThread(ThreadIRCSeed, NULL)

CreateThread(ThreadSocketHandler, NULL, true)

CreateThread(ThreadOpenConnections, NULL)

CreateThread(ThreadMessageHandler, NULL)

init.cpp:

CreateThread(ThreadRPCServer, NULL);

_mmalmi@cc.hut.fi wrote:_

_> Here goes. I forgot to mention the crash error message:_

_>_

_> terminate called after throwing an instance of 'std::bad_alloc'_

_> what(): std::bad_alloc_

_>_

----

Reply to this note

Please Login to reply.

Discussion

No replies yet.