Hi Michael, NOTE: Re-add bitcoin-dev to this thread on Cc... I'll test this ASAP! I REALLY need this feature (blockchain server <-> wallet client). I just want ask you some things... 1- How close is Libcoin with original Bitcoin? I mean, the output is a little different, the bitcoind help output was disabled and, I'm afraid that Libcoin can possibly being distant from Bitcoin in the future... That can happen?! 2- Do you have plans to update Libcoin on every new upstream Bitcoin release? How fast will be this updates? Do you need more resources/people working on it? Another questions not involved directly with Libcoin/Bitcoin but, I'll need it for my future Bitcoin projects, and Libcoin is on my radar: 1- Do you know about Diaspora* Project? 2- Do you have skills in Ruby on Rails development? Thank you! Thiago 2012/3/3 Michael Grønager > Hi Martin, > > There are a couple of options of doing similarly... > > In the libcoin repository you will find some code for btc and btcd, it is > some code I wrote a while ago and it needs to be updated. It functions as a > bitcoind master and slave. The btcd keeps the blockchain, but no wallet. > btc keeps the wallet and contact the btcd to get transaction info (like > send an address and get its transactions or send a transaction id and get > its details). It works (or worked when I wrote them) with the wallet.dat, > but needs a little update. > > You could e.g. run one btcd on the machine and several btc instances to > get the functionality you asked for. > > Further, btcd also enables a web wallet, where the private keys are stored > in your browsers local-store. > > I will get the application updated, but most likely in a bit other setup > as it is something I intend to marketize in the near future. > > Hope this answers your question. > > Cheers, > > Michael > > On 03/03/2012, at 02:04, Martinx - ジェームズ wrote: > > > Michael, > > > > libcoin is AWESOME! Thanks!!! > > > > Can I do the following scenario with libcoin ? : > > > > 1- Create a regular Linux user called "blockchain", with home dir > pointed to /var/lib/libcoin/ (more or like Ubuntu/Debian mysql does); > > > > 2- Start "bitcoind" under user "blockchain" (the Bitcoin blockchain) > will be downloaded to /var/lib/libcoin/bitcoin/ directory); > > > > 3- As another regular user, called "michael", I would like to run > "bitcoind" too but, I do not want to re-download the blockchain to its own > subdir, I want instead, to consult it (blockchain) through libcoin itself > (not by socket of JSON)... > > > > So, the /home/michael/.bitcoin/ directory will have only wallet.dat and > related files, not the blockchain. > > > > This is more or less what we can do with Bitcoin Electrum alternate > client but, with Electrum, it copy the whole blockchain to mysql... This is > terrible from my point of view, I think that there is no need to duplicate > the blockchain within MySQL in anyway. > > > > I just imagine a bitcoin splited in two, blockchain in one side and > wallet in the other side. > > > > This is possible with libcoin?! > > > > Thank you again! > > > > Best, > > Thiago > > > > 2012/2/28 Michael Grønager > > Hi again - and thanks for testing and finding this! > > > > I have fixed the bug you reported: > > > > The culprit was an implicit string constructor for the ChainAddress that > caused creation of a not fully initialized ChainAddress. The right way to > do it is using chain::getAddress(string) as the ChainAddress is chain > specific. > > > > A git pull will fix it ;) > > > > Cheers, > > > > Michael > > > > > > On 27/02/2012, at 20:03, Martinx - ジェームズ wrote: > > > >> AWESOME!! Thank you!! > >> > >> Anyway, I found a new problem... lol > >> > >> /usr/local/bin/bitcoind getinfo #okay > >> { > >> "version" : 40001, > >> "blocks" : 168753, > >> "connections" : 8, > >> "difficulty" : 1376302.26788638, > >> "testnet" : false > >> } > >> > >> /usr/local/bin/bitcoind getaccountaddress "" # okay... > >> 1J4vNcvEdeCuLH4yvyoC2gxFEF4zquoJ87 > >> > >> /usr/local/bin/bitcoind listaccounts # NOT okay... > >> { > >> } > >> > >> /usr/local/bin/bitcoind getaccountaddress "teste" # okay > >> 1E6pGh6AAtuJdFXheZMp1zdYmvdqAQn9QT > >> > >> /usr/local/bin/bitcoind listaccounts # NOT okay... > >> { > >> "teste" : 0.00000000 > >> } > >> > >> Where is my default account listed at "listaccounts" output?! > >> > >> Best, > >> Thiago > >> > >> 2012/2/26 Michael Grønager > >> And if you do an update now "help" is there too ;) > >> > >> /M > >> > >> On 25/02/2012, at 03:11, Martinx - ジェームズ wrote: > >> > >>> Thank you!!! > >>> > >>> It is all working now! Except "help"... > >>> > >>> Nice work Michael!! > >>> > >>> Best, > >>> Thiago > >>> > >>> 2012/2/24 Michael Grønager > >>> OK - didn't took the weekend: > >>> > >>> support for "port" is on github now :) > >>> > >>> Only took two lines: > >>> > >>> ("port", value(&port)->default_value(8333), > "Listen on specified port for the p2p protocol") > >>> > >>> and using the port option in the Node constructor (was there already): > >>> > >>> Node node(chain, data_dir, args.count("nolisten") ? "" : > "0.0.0.0", lexical_cast(port)); // it is also here we specify the > use of a proxy! > >>> > >>> /M > >>> > >>> > >>> > >>> On 24/02/2012, at 19:49, Martinx - ジェームズ wrote: > >>> > >>>> Hi Michael, > >>>> > >>>> Thank you for your attention! > >>>> > >>>> Now, I'm trying to start libcoin's bitcoind using high ports but, it > always try to listen at 8332, no matter what I "say"... > >>>> > >>>> Look: > >>>> > >>>> $ cat .bitcoin/bitcoin.conf > >>>> server=1 > >>>> daemon=1 > >>>> rpcuser=libcoin > >>>> rpcpassword=LibCoin13 > >>>> rpcport=10332 > >>>> port=10333 > >>>> > >>>> But: > >>>> > >>>> /usr/local/bin/bitcoind > >>>> Error: Address already in use > >>>> > >>>> terminate called after throwing an instance of 'DbException' > >>>> what(): DbEnv::close: Invalid argument > >>>> Aborted > >>>> > >>>> When I "strace it", I can see: > >>>> > >>>> ... > >>>> bind(12, {sa_family=AF_INET, sin_port=htons(8333), > sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use) > >>>> ... > >>>> > >>>> I already tried: > >>>> > >>>> /usr/local/bin/bitcoind --rpcport 10332 > >>>> /usr/local/bin/bitcoind --rpcport=10332 > >>>> > >>>> Without success... > >>>> > >>>> Thanks again! > >>>> Thiago > >>>> > >>>> 2012/2/24 Michael Grønager > >>>> Hi Thiago, > >>>> > >>>> Forgot to comment on the two latter: > >>>> > >>>>> $ bitcoind getaccountaddress "" > >>>>> HTTP error code: 401 > >>>>> Error: couldn't parse reply from server > >>>>> > >>>>> $ bitcoind listaccounts > >>>>> HTTP error code: 401 > >>>>> Error: couldn't parse reply from server > >>>>> > >>>> > >>>> 401 = permission denied - you need to setup username / password > either on the commandline or in the bicoin.conf file to access those > commands... > >>>> > >>>> See in the bitcoind.cpp file for commands that you can use with and > without auth... > >>>> > >>>> Those that contains an "auth" requires auth: > >>>> > >>>> server.registerMethod(method_ptr(new GetBalance(wallet)), auth); > >>>> > >>>> As opposed to: > >>>> > >>>> server.registerMethod(method_ptr(new GetInfo(node))); > >>>> > >>>> auth is defined by: > >>>> > >>>> Auth auth(rpc_user, rpc_pass); // if rpc_user and rpc_pass are not > set, all authenticated methods becomes disallowed. > >>>> > >>>> so you just experience the case explained in the comment ;) I admit > that the output could be more readable, though! > >>>> > >>>> /M > >>>> > >>>> > >>>>> > >>>>> Any tips?! lol > >>>>> > >>>>> Thanks! > >>>>> Thiago > >>>>> > >>>>> 2012/2/23 Martinx - ジェームズ > >>>>> AWESOME!!! > >>>>> > >>>>> I can compile libcoin at my Ubuntu 11.10... I just need to install: > >>>>> > >>>>> sudo aptitude install libboost1.46-all-dev > >>>>> > >>>>> ...alongside with another already installed dependencies, and now it > works!! > >>>>> > >>>>> Thank you! > >>>>> Thiago > >>>>> > >>>>> 2012/2/23 Michael Grønager > >>>>> Hi Martinx, > >>>>> > >>>>> Another note: > >>>>> > >>>>> boost 1.42 and openssl 1.0 has a conflict (you will see it when you > try to compile coinHTTP with that specific combination: sslv2 has been > removed from openssl, but boost still references it.) > >>>>> > >>>>> You should do a : > >>>>> > >>>>> sudo apt-get upgrade libboost-dev-all > >>>>> > >>>>> to get the 1.46.1 library > >>>>> > >>>>> /M > >>>>> > >>>>> > >>>>> On 23/02/2012, at 18:31, Martinx - ジェームズ wrote: > >>>>> > >>>>>> Hi Michael! > >>>>>> > >>>>>> Thank you for libcoin! It is a awesome evolution for Bitcoin and > for the CryptoCurrencies as a hole... Thanks!!! > >>>>>> > >>>>>> Anyway, I am unable to compile libcoin under my Ubuntu 11.04. At > this machine, I have compiled and running Bitcoin (from sources), Namecoin, > Devcoin, Litecoin, IXcoin and I0coin, all from sources but, when I try to > compile libcoin, I got: > >>>>>> > >>>>>> ---- > >>>>>> user@desk:~/libcoin$ ./configure > >>>>>> -- The C compiler identification is GNU > >>>>>> -- The CXX compiler identification is GNU > >>>>>> -- Check for working C compiler: /usr/bin/gcc > >>>>>> -- Check for working C compiler: /usr/bin/gcc -- works > >>>>>> -- Detecting C compiler ABI info > >>>>>> -- Detecting C compiler ABI info - done > >>>>>> -- Check for working CXX compiler: /usr/bin/c++ > >>>>>> -- Check for working CXX compiler: /usr/bin/c++ -- works > >>>>>> -- Detecting CXX compiler ABI info > >>>>>> -- Detecting CXX compiler ABI info - done > >>>>>> -- Looking for include files CMAKE_HAVE_PTHREAD_H > >>>>>> -- Looking for include files CMAKE_HAVE_PTHREAD_H - found > >>>>>> -- Looking for pthread_create in pthreads > >>>>>> -- Looking for pthread_create in pthreads - not found > >>>>>> -- Looking for pthread_create in pthread > >>>>>> -- Looking for pthread_create in pthread - found > >>>>>> -- Found Threads: TRUE > >>>>>> -- Looking for XOpenDisplay in > /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so > >>>>>> -- Looking for XOpenDisplay in > /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found > >>>>>> -- Looking for gethostbyname > >>>>>> -- Looking for gethostbyname - found > >>>>>> -- Looking for connect > >>>>>> -- Looking for connect - found > >>>>>> -- Looking for remove > >>>>>> -- Looking for remove - found > >>>>>> -- Looking for shmat > >>>>>> -- Looking for shmat - found > >>>>>> -- Looking for IceConnectionNumber in ICE > >>>>>> -- Looking for IceConnectionNumber in ICE - found > >>>>>> -- Found X11: /usr/lib/i386-linux-gnu/libX11.so > >>>>>> -- Boost version: 1.42.0 > >>>>>> -- Found the following Boost libraries: > >>>>>> -- date_time > >>>>>> -- regex > >>>>>> -- filesystem > >>>>>> -- system > >>>>>> -- program_options > >>>>>> -- thread > >>>>>> -- Found OpenSSL: /usr/lib/libssl.so;/usr/lib/libcrypto.so > >>>>>> -- Looking for Q_WS_X11 > >>>>>> -- Looking for Q_WS_X11 - found > >>>>>> -- Looking for Q_WS_WIN > >>>>>> -- Looking for Q_WS_WIN - not found. > >>>>>> -- Looking for Q_WS_QWS > >>>>>> -- Looking for Q_WS_QWS - not found. > >>>>>> -- Looking for Q_WS_MAC > >>>>>> -- Looking for Q_WS_MAC - not found. > >>>>>> -- Found Qt-Version 4.7.2 (using /usr/bin/qmake) > >>>>>> -- Found wxWidgets: TRUE > >>>>>> > >>>>>> The build system is configured to install libraries to > /usr/local/lib > >>>>>> Your applications may not be able to find your installed libraries > unless you: > >>>>>> set your LD_LIBRARY_PATH (user specific) or > >>>>>> update your ld.so configuration (system wide) > >>>>>> You have an ld.so.conf.d directory on your system, so if you wish > to ensure that > >>>>>> applications find the installed libcoin libraries, system wide, you > could install an > >>>>>> libcoin specific ld.so configuration with: > >>>>>> sudo make install_ld_conf > >>>>>> > >>>>>> -- Configuring done > >>>>>> -- Generating done > >>>>>> -- Build files have been written to: /home/user/libcoin > >>>>>> ---- > >>>>>> > >>>>>> Now I tried make, without success: > >>>>>> > >>>>>> ---- > >>>>>> ..... > >>>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0xf): > undefined reference to `BN_init' > >>>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0x1e): > undefined reference to `BN_copy' > >>>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0x38): > undefined reference to `BN_set_negative' > >>>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0x4f): > undefined reference to `BN_clear_free' > >>>>>> Script.cpp:(.text._ZngRK7CBigNum[operator-(CBigNum const&)]+0xd3): > undefined reference to `BN_clear_free' > >>>>>> ../../lib/libcoin.a(Script.o): In function `operator<<(CBigNum > const&, unsigned int)': > >>>>>> Script.cpp:(.text._ZlsRK7CBigNumj[operator<<(CBigNum const&, > unsigned int)]+0x16): undefined reference to `BN_init' > >>>>>> Script.cpp:(.text._ZlsRK7CBigNumj[operator<<(CBigNum const&, > unsigned int)]+0x2c): undefined reference to `BN_lshift' > >>>>>> Script.cpp:(.text._ZlsRK7CBigNumj[operator<<(CBigNum const&, > unsigned int)]+0xad): undefined reference to `BN_clear_free' > >>>>>> ../../lib/libcoin.a(Script.o): In function `operator>>(CBigNum > const&, unsigned int)': > >>>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&, > unsigned int)]+0xf): undefined reference to `BN_init' > >>>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&, > unsigned int)]+0x1e): undefined reference to `BN_copy' > >>>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&, > unsigned int)]+0x47): undefined reference to `BN_clear_free' > >>>>>> Script.cpp:(.text._ZrsRK7CBigNumj[operator>>(CBigNum const&, > unsigned int)]+0xcb): undefined reference to `BN_clear_free' > >>>>>> ../../lib/libcoin.a(Script.o): In function `operator!=(CBigNum > const&, CBigNum const&)': > >>>>>> Script.cpp:(.text._ZneRK7CBigNumS1_[operator!=(CBigNum const&, > CBigNum const&)]+0x14): undefined reference to `BN_cmp' > >>>>>> ../../lib/libcoin.a(Script.o): In function `operator>(CBigNum > const&, CBigNum const&)': > >>>>>> Script.cpp:(.text._ZgtRK7CBigNumS1_[operator>(CBigNum const&, > CBigNum const&)]+0x14): undefined reference to `BN_cmp' > >>>>>> ../../lib/libcoin.a(Script.o): In function `uint256 > Hash<__gnu_cxx::__normal_iterator char, std::allocator > > > >(__gnu_cxx::__normal_iterator std::allocator > >, __gnu_cxx::__normal_iterator char*, std::vector > >)': > >>>>>> > Script.cpp:(.text._Z4HashIN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEE7uint256T_S8_[uint256 > Hash<__gnu_cxx::__normal_iterator char, std::allocator > > > >(__gnu_cxx::__normal_iterator std::allocator > >, __gnu_cxx::__normal_iterator char*, std::vector > > >)]+0x6d): undefined reference to `SHA256' > >>>>>> > Script.cpp:(.text._Z4HashIN9__gnu_cxx17__normal_iteratorIPhSt6vectorIhSaIhEEEEE7uint256T_S8_[uint256 > Hash<__gnu_cxx::__normal_iterator char, std::allocator > > > >(__gnu_cxx::__normal_iterator std::allocator > >, __gnu_cxx::__normal_iterator char*, std::vector > > >)]+0xb8): undefined reference to `SHA256' > >>>>>> collect2: ld returned 1 exit status > >>>>>> make[2]: *** [bin/bitcoind] Error 1 > >>>>>> make[1]: *** > [applications/bitcoind/CMakeFiles/app_bitcoind.dir/all] Error 2 > >>>>>> make: *** [all] Error 2 > >>>>>> ----- > >>>>>> > >>>>>> What can I do?! > >>>>>> > >>>>>> Best, > >>>>>> Thiago > >>>>>> > >>>>>> > >>>>>> On 1 February 2012 12:18, Michael Grønager > wrote: > >>>>>> Dear Bitcoiners, > >>>>>> > >>>>>> libcoin is now in a state ready for its first release, which I > would like to share with you! > >>>>>> > >>>>>> === libcoin is a crypto currency library based on the > bitcoin/bitcoin "Satoshi" client. === > >>>>>> > >>>>>> Copenhagen, Denmark - 1st February 2012 Ceptacle announces the > release of the first version of the crypto currency library "libcoin" based > on the bitcoin/bitcoin "Satoshi" client. > >>>>>> > >>>>>> libcoin also maintains a version of bitcoind that is a 100% > compatible drop-in replacement of the bitcoin/bitcoind client: You can use > it on the same computer on the same files and you can call it with the same > scripts. And you can easily extend it without touching the basic bitcoin > source files. > >>>>>> > >>>>>> The libcoin/bitcoind client downloads the entire block chain 3.5 > times faster than the bitcoin/bitcoind client. This is less than 90 minutes > on a modern laptop! > >>>>>> > >>>>>> In libcoin, the Satoshi client code has been completely refactored, > properly encapsulating classes, removing all globals, moving from threads > and mutexes to a pure asynchronous approach. Functionalities have been > divided into logical units and libraries, minimizing dependencies for e.g. > thin clients. > >>>>>> > >>>>>> libcoin is chain agnostic, all chain (bitcoin, testnet, namecoin, > litecoin, ...) specific settings are maintained from a single class (Chain) > and hence experiments with chain settings, mining, security and digital > currencies for research and educational purposes are easily accessible. See > the ponzicoin example for how you define your own chain. > >>>>>> > >>>>>> The build system of libcoin is based on CMake and supports builds > of static and dynamic libraries on Linux, Mac OS X, and Windows. > >>>>>> > >>>>>> The libcoin license is LGPL v. 3. This mean that you can use it in > open source as well as in commercial projects, but improvements should go > back into the libcoin library. > >>>>>> > >>>>>> ====== > >>>>>> > >>>>>> Read more on libcoin on: http://github.com/ceptacle/libcoin/wiki > >>>>>> > >>>>>> Join libcoin on twitter: http://twitter.com/libcoin > >>>>>> > >>>>>> Download "libcoin Satoshi release": > http://github.com/ceptacle/libcoin/zipball/v0.4.0.1 > >>>>>> > >>>>>> Best regards, > >>>>>> > >>>>>> Michael Gronager, PhD > >>>>>> Director, Ceptacle > >>>>>> Jens Juels Gade 33 > >>>>>> 2100 Copenhagen E > >>>>>> Mobile: +45 31 45 14 01 > >>>>>> E-mail: gronager@ceptacle.com > >>>>>> Web: http://www.ceptacle.com/ > >>>>>> > >>>>>> > >>>>>> > ------------------------------------------------------------------------------ > >>>>>> Keep Your Developer Skills Current with LearnDevNow! > >>>>>> The most comprehensive online learning library for Microsoft > developers > >>>>>> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, > MVC3, > >>>>>> Metro Style Apps, more. Free future releases when you subscribe now! > >>>>>> http://p.sf.net/sfu/learndevnow-d2d > >>>>>> _______________________________________________ > >>>>>> Bitcoin-development mailing list > >>>>>> Bitcoin-development@lists.sourceforge.net > >>>>>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development > >>>>>> > >>>>> > >>>>> Michael Gronager, PhD > >>>>> Director, Ceptacle > >>>>> Jens Juels Gade 33 > >>>>> 2100 Copenhagen E > >>>>> Mobile: +45 31 45 14 01 > >>>>> E-mail: gronager@ceptacle.com > >>>>> Web: http://www.ceptacle.com/ > >>>>> > >>>>> > >>>>> > >>>> > >>>> > >>> > >>> Michael Gronager, PhD > >>> Director, Ceptacle > >>> Jens Juels Gade 33 > >>> 2100 Copenhagen E > >>> Mobile: +45 31 45 14 01 > >>> E-mail: gronager@ceptacle.com > >>> Web: http://www.ceptacle.com/ > >>> > >>> > >> > >> Michael Gronager, PhD > >> Director, Ceptacle > >> Jens Juels Gade 33 > >> 2100 Copenhagen E > >> Mobile: +45 31 45 14 01 > >> E-mail: gronager@ceptacle.com > >> Web: http://www.ceptacle.com/ > >> > >> > > > > Michael Gronager, PhD > > Director, Ceptacle > > Jens Juels Gade 33 > > 2100 Copenhagen E > > Mobile: +45 31 45 14 01 > > E-mail: gronager@ceptacle.com > > Web: http://www.ceptacle.com/ > > > > > > Michael Gronager, PhD > Director, Ceptacle > Jens Juels Gade 33 > 2100 Copenhagen E > Mobile: +45 31 45 14 01 > E-mail: gronager@ceptacle.com > Web: http://www.ceptacle.com/ > >