BitcoinTalk

Bitcoind x86 binary for CentOS

Bitcoind x86 binary for CentOS

Does anyone have the binary?

Re: Bitcoind x86 binary for CentOS

Does anyone have the binary?
Which version? I haven't tried to build any yet, but after building on a few different distro so far, kind of got the process down pat.  Wink

I've got a CentOS 5.5 machine I could experiment with.

Re: Bitcoind x86 binary for CentOS

[foo@bar ~]# cat /etc/issue
CentOS release 5.5 (Final)

[foo@bar ~]# uname -a
Linux foo.bar 2.6.18-194.3.1.el5.028stab069.6 #1 SMP Wed May 26 18:31:05 MSD 2010 i686 i686 i386 GNU/Linux

Re: Bitcoind x86 binary for CentOS

Cool, we could both use a build then  Wink

Re: Bitcoind x86 binary for CentOS

My first obstacle is the missing ecdsa.h (Elliptic Curve Digital Signature Algorithm) file. It's listed in the man pages for CentOS, but missing from the package, WTF?

Anyway, I guess I can copy it from somewhere else, hopefully I'll have some binaries for us all soon.

Re: Bitcoind x86 binary for CentOS

Apparently, even after copying over the header file; those libraries are disabled, grrrr.

Guess I'll have to hack one together  Cry

Re: Bitcoind x86 binary for CentOS

Ok, got around the encryption issue (guess it's never going to be part of the Cent OS library since they don't use that part of openssl), legal issues aside, just left with the DB issues during compile, so I'll need to compile a db4.7 version and hopefully we'll have a test build here soon.

Re: Bitcoind x86 binary for CentOS

Yes, it's not that simple - otherwise I could have compiled it myself.

1) In CentOS OpenSSL rpm elliptic curves cryptography is disabled, so you have to build OpenSSL yourself.
2)  CentOS Boost-devel RPM is outdated and missing a lot of things, so you have to build Boost yourself too.
3) CentOS WxWidgets RPM is outdated so you have to build it yourself too. And its build requires more than 256 mb ram. Satoshi improved bitcoind so doesn't require wxWidgets any more, but I'm not sure whether that patch is in 0.3.7 or whatever sources you are building.

Re: Bitcoind x86 binary for CentOS

I've been able to get around all of those, I'm actually stuck at the DB4.7 stuff.

I build it directly from the source and during the compile I get an error:
Code:
db_cxx.h:1083: error: expected class-name before ‘{’ token
I checked the header file, I think there is a syntax error, but not sure.

Any suggestions?

This is the block of code it stalls at, the class is defined at the top of the file, so I'm not sure why it hangs at that error without digging through all the Berkeley DB code. I don't want to go to a newer version of the DB if it's going to mess with everyone's BitCoin database that uses this build.
Code:
// Almost any error in the DB library throws a DbException.
// Every exception should be considered an abnormality
// (e.g. bug, misuse of DB, file system error).
//
class _exported DbException : public __DB_STD(exception)
{
public:
virtual ~DbException() throw();
DbException(int err);
DbException(const char *description);
DbException(const char *description, int err);
DbException(const char *prefix, const char *description, int err);
int get_errno() const;
virtual const char *what() const throw();
DbEnv *get_env() const;
void set_env(DbEnv *dbenv);

DbException(const DbException &);
DbException &operator = (const DbException &);

private:
void describe(const char *prefix, const char *description);

char *what_;
int err_;                   // errno
DbEnv *dbenv_;
};

Re: Bitcoind x86 binary for CentOS

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

Re: Bitcoind x86 binary for CentOS

{snip} And its build requires more than 256 mb ram. Satoshi improved bitcoind so doesn't require wxWidgets any more, but I'm not sure whether that patch is in 0.3.7 or whatever sources you are building.
Yeah, the bitcoind build gets around any errors for those, but I still get stuck at the DB error.  Sad

Re: Bitcoind x86 binary for CentOS

Just for kicks, tried to compile with DB4.8 got the same error, LOL (the line number was slightly different, but at the same class)

Didn't get this on other Distros, might be a CentOS related error, but not sure why.

Re: Bitcoind x86 binary for CentOS

My first obstacle is the missing ecdsa.h (Elliptic Curve Digital Signature Algorithm) file. It's listed in the man pages for CentOS, but missing from the package, WTF?

Anyway, I guess I can copy it from somewhere else, hopefully I'll have some binaries for us all soon.

Yes, ecdsa.h is considered patent-encumbered, so Red Hat and other distros turn off ec-dsa.

Yes, Virginia, this means that bitcoin potentially has patent problems.

Re: Bitcoind x86 binary for CentOS

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. Undecided
I'm probably going to load up a virtual machine of CentOS 5.5 and work with that. I've really barfed up the server I was experimenting on trying make it build the binary, LOL.

Re: Bitcoind x86 binary for CentOS

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. Undecided
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: Bitcoind x86 binary for CentOS

Ok, conquered the DB issue after pestering an Oracle developer all day  Tongue

When you compile DB 4.7.25, you have to use an extra config command or else the compile will be missing those vital header files (why???)

Anyway, here is what it was
Code:
../dist/configure --enable-cxx
make
When you compile the source, this fixes the DB compiling related errors.

Re: Bitcoind x86 binary for CentOS

Ah, crap. I totally forgot about that extra flag. I knew about that before from Lazslo's Linux Build Document. Sorry about that. Get a working build up and running and you'll definitely be getting some BTC from me.  Grin

Re: Bitcoind x86 binary for CentOS

Oh, but there's more!  Shocked

Even after I did that, I couldn't get it to compile due to linking errors. I was able to get a solid compile of bitcoind though, this is the extra steps it took.

After compiling and installing the BerkeleyDB4.7, you need to add it's include path to the makefile.unix

Add -I"/usr/local/BerkeleyDB.4.7/include"

Then you need to copy all the libraries from "/usr/local/BerkeleyDB.4.7/lib" to "/usr/lib"
BUT WAIT, there's MORE!  Huh

Yes, and if that was not annoying enough, now it will fail to compile because of an OpenSSL error, Grrrrr..

Now you must copy libcrypto.a and libssl.a from "/usr/local/ssl/lib" to "/usr/lib"

Yes, those can be linked, but I got tired of chasing down compiler errors, was easier to just copy them.  Roll Eyes

After all of that, then you should be able to compile a bitcoind binary.

I'm testing it now, seems to be working just fine. Downloading blocks and such. When it finishes, I'll experiment with some coin generation and coin transfer.

I'm still caught on the GUI client compile, currently hangs at
Code:
/usr/bin/ld: cannot find -lSM
If anyone is good with Google, let me know.  Wink

Re: Bitcoind x86 binary for CentOS

I've posted the binary up here (32 bit only - bitcoind):
Click Here

There are two versions, one built from stock code, the other modified to accept up to 1,000 nodes (hence the super node name)

Will probably tackle the GUI client build another day, this one wore me out. Donate some BTC to my sig if you are feeling generous  Wink

Re: Bitcoind x86 binary for CentOS

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.