Pages:
Author

Topic: libbitcoin - page 6. (Read 92413 times)

legendary
Activity: 1232
Merit: 1076
June 03, 2013, 05:12:39 AM
Yes it can.

You create a transaction as you would with an output sending to a script hash address. You broadcast it to the network. To verify it was sent, you might listen to see if nodes respond back with an inventory and if not resend the transaction within a certain time. Then to release the funds, you'd all need to sign a transaction according to its rules.
sr. member
Activity: 440
Merit: 250
June 03, 2013, 12:34:22 AM
genjix, glad to see you are still working on this library.

Can it be used for sending multi-sig transactions?  Then verifying it was sent? Then for performing votes to get the funds back out?
Can you post a code example?
legendary
Activity: 1232
Merit: 1076
June 02, 2013, 05:39:26 AM
We now have experimental Python bindings thanks to Pablo Martin (caedes)!

https://gitorious.org/libbitcoin-bindings/libbitcoin-bindings

Type "make compile" to compile them.

Full node example:

https://gitorious.org/libbitcoin-bindings/libbitcoin-bindings/blobs/master/tests/fullnode.py
legendary
Activity: 1232
Merit: 1076
June 01, 2013, 06:01:02 PM
Correct.

Also you need to run:

$ ./initchain database/

to initialize the blockchain.

Also if you want to full blockchain then it's available at: http://46.4.92.107/database.tar.bz2
newbie
Activity: 31
Merit: 0
June 01, 2013, 05:22:10 PM
When I run the fullnode example, I get the following error:

Quote
~/src/bitcoin/libbitcoin/examples$ ./fullnode
terminate called after throwing an instance of 'boost::interprocess::interprocess_exception'
  what():  No such file or directory
Aborted
Ok, after some stepping, I realized I needed to create a 'database' directory in the same directory as the 'fullnode' application for a leveldb database.

Can't say the error message was very illuminating.

I'll continue exploring.

I'm now getting errors like:

Quote
ERROR: Error storing memory pool transaction 5c4c562af2d4667db80f7832138acaf66e2cfa41bbbb3f2ee07b86f80069a98d: Object does not exist

Is this because the blockchain isn't populated?
newbie
Activity: 31
Merit: 0
June 01, 2013, 04:03:00 PM
Hello,

I downloaded and built libbitcoin from github. I'm on an Ubuntu 12.10 machine.

When I run the fullnode example, I get the following error:

Quote
~/src/bitcoin/libbitcoin/examples$ ./fullnode
terminate called after throwing an instance of 'boost::interprocess::interprocess_exception'
  what():  No such file or directory
Aborted

The backtrace doesn't say much:
Quote
(gdb) bt
#0  0xb7fdd424 in __kernel_vsyscall ()
#1  0xb6e9d1df in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0xb6ea0825 in __GI_abort () at abort.c:91
#3  0xb70838ad in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#4  0xb70814f3 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#5  0xb708152f in std::terminate() () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#6  0xb70dd5ac in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#7  0xb746ed4c in start_thread (arg=0xb48b5b40) at pthread_create.c:308
#8  0xb6f5ddde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Is this a libboost issue? gcc version? Something else?

Thanks for any help!
sr. member
Activity: 440
Merit: 250
May 25, 2013, 11:29:55 PM
What about tools for multi-sig ?
legendary
Activity: 3920
Merit: 2349
Eadem mutata resurgo
May 25, 2013, 10:19:27 PM
he's back  Smiley
legendary
Activity: 1232
Merit: 1076
May 09, 2013, 08:13:57 AM
Lots of new things coming. I'm at a basic milestone where I'm content with the overall internal architecture of the library now.

https://github.com/spesmilo/libbitcoin/commits/master

Next steps is Python bindings, and a blockchain query API. The Python bindings were done before but were experimental. We had some issues with asynchronous calls and the GIL. I'm thinking to simply turn all async calls into sync blocking ones for Python anyway (keep it simple).

The query layer is something really nice:
https://github.com/genjix/query-layer
(see the tutorial.py)
You can move around and examine it using logical Python constructs. I want to expand upon this and also give access to new blocks and verified transactions in the memory pool. Then create an Electrum server protocol implementation chained to this.

Also subvertx (command line tools for Bitcoin using libbitcoin) is a bit out of date and not actively developed. I would like to take that to something serious too but it needs time (if someone wants to volunteer, this is a cool project) to firstly create how the tools should look and then implement them. I can help someone with that if they know C++.
https://github.com/genjix/subvertx
https://bitcointalksearch.org/topic/subvertx-command-line-utilities-proof-of-concept-using-libbitcoin-50721

Finally I'm working on an Android wallet. It's not using libbitcoin currently, but eventually that will be needed in the future.

There's some other various small tools I've made too. One is a fast-monitor tool which sits in the Bitcoin network and looks at transaction outputs in new blocks and unconfirmed transactions for an address so it can tell a website of a new deposit. The tool doesn't validate the new blocks or transactions and is only meant to be a lightweight thing. I don't see it having too many uses except where a website has TONS of Bitcoin addresses and can't afford to poll the balance for all of them or something.
legendary
Activity: 1232
Merit: 1076
April 28, 2013, 07:28:23 AM
At the moment I'm working on blockchain stuff. You can see the commit log to check my progress:

https://github.com/spesmilo/libbitcoin/commits/master

Mainly I'm concerned with blockchain interface servers right now:

https://github.com/genjix/query-layer
newbie
Activity: 10
Merit: 0
March 03, 2013, 02:39:07 PM
libbitcoin is ATM being developed by one man - genjix. If you want it to succeed - contribute with your own code!
legendary
Activity: 1304
Merit: 1014
November 27, 2012, 09:27:44 PM
Is libbitcoin going to die?  Ultraprune?  Receipts?  LevelDB?  Anything in the pipeline to keep up with bitcoind?
legendary
Activity: 1918
Merit: 1570
Bitcoin: An Idea Worth Spending
July 21, 2012, 01:44:55 PM
I was surprised to learn that Patrick owns libbitcoin.org.

Quote
Domain Name:LIBBITCOIN.ORG
Created On:01-Jun-2011 18:56:20 UTC
Last Updated On:02-Jun-2012 01:27:02 UTC
Expiration Date:01-Jun-2013 18:56:20 UTC
Sponsoring Registrar:Name.com, LLC (R1288-LROR)
Status:CLIENT TRANSFER PROHIBITED
Registrant ID:nec06g69j6059q1w
Registrant Name:Phantom Circuit
Registrant Organization:PhantomCircuit
Registrant Street1:153 Bailey Rd
Registrant Street2:
Registrant Street3:
Registrant City:Fly Creek
Registrant State/Province:NY
Registrant Postal Code:13337
Registrant Country:US
Registrant Phone:+1.6075474139
Registrant Phone Ext.:
Registrant FAX:
Registrant FAX Ext.:
Registrant Email:[email protected]
legendary
Activity: 1232
Merit: 1076
June 28, 2012, 11:06:25 AM
Yes, the Python bindings need to be updated since the libbitcoin API changed. I'll get onto that soon as I need to get the Electrum server running again. I plan to rebuild the backend in C++ though.
I was building libbitcoin just for electrum Smiley

Do you know what the most recent commit is that works with the python bindings by chance?  If not, it wil give me an excuse to try out git-bisect.  Do you think that commit be stable enough, or should I just wait for you to write the updated bindings?

Best to wait. The Electrum server I made was a prototype. It had lots of hardcoded paths and such isms:

https://gitorious.org/electrum/server/blobs/master/backends/libbitcoin/memory_buffer.hpp (see 2nd include)
hero member
Activity: 742
Merit: 500
June 27, 2012, 10:16:29 PM
Yes, the Python bindings need to be updated since the libbitcoin API changed. I'll get onto that soon as I need to get the Electrum server running again. I plan to rebuild the backend in C++ though.
I was building libbitcoin just for electrum Smiley

Do you know what the most recent commit is that works with the python bindings by chance?  If not, it wil give me an excuse to try out git-bisect.  Do you think that commit be stable enough, or should I just wait for you to write the updated bindings?
legendary
Activity: 1232
Merit: 1076
June 27, 2012, 09:05:07 PM
Yes, the Python bindings need to be updated since the libbitcoin API changed. I'll get onto that soon as I need to get the Electrum server running again. I plan to rebuild the backend in C++ though.
hero member
Activity: 742
Merit: 500
June 27, 2012, 02:21:14 PM
OK, compatibility with LTS:

https://gitorious.org/libbitcoin/libbitcoin/blobs/master/INSTALL

See the section labelled 'Ubuntu Instructions'. You will need the following line to install the dependencies:

sudo apt-get install build-essential autoconf libtool libboost1.48-all-dev libdb++-dev libprotobuf-dev pkg-config libcurl4-openssl-dev

Then simply run the autoreconf -i && configure && make && sudo make install step(s)
That was fast.  I'm going through the instructions now.

EDIT: I was able to build libbitcoin without problem. However, I am getting errors with the python bindings

Code:
$ git clone git://gitorious.org/libbitcoin/python-bitcoin.git
$ cd python-bitcoin
$ make
mkdir -p bitcoin
g++ -fPIC -Wall -ansi `pkg-config --cflags libbitcoin` -I/usr/include/python2.7  -c main.cpp -o main.o
main.cpp: In member function ‘void handshake_wrapper::connect(network_wrapper, const string&, uint16_t, boost::python::api::object)’:
main.cpp:301:14: error: ‘class libbitcoin::handshake’ has no member named ‘connect’
main.cpp: At global scope:
main.cpp:612:39: error: expected ‘)’ before ‘ex’
main.cpp:713:5: error: ‘exporter_ptr’ in namespace ‘bc’ does not name a type
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_header(const libbitcoin::message::header&) const’:
main.cpp:619:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_version(const libbitcoin::message::version&) const’:
main.cpp:623:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_verack(const libbitcoin::message::verack&) const’:
main.cpp:627:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_address(const libbitcoin::message::address&) const’:
main.cpp:631:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_get_address(const libbitcoin::message::get_address&) const’:
main.cpp:635:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_inventory(const libbitcoin::message::inventory&) const’:
main.cpp:639:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_get_data(const libbitcoin::message::get_data&) const’:
main.cpp:643:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_get_blocks(const libbitcoin::message::get_blocks&) const’:
main.cpp:647:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_transaction(const libbitcoin::message::transaction&) const’:
main.cpp:651:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_block(const libbitcoin::message::block&) const’:
main.cpp:655:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_ping(const libbitcoin::message::ping&) const’:
main.cpp:659:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::header exporter_wrapper::load_header(const data_chunk&) const’:
main.cpp:664:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::version exporter_wrapper::load_version(const data_chunk&) const’:
main.cpp:668:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::verack exporter_wrapper::load_verack(const data_chunk&) const’:
main.cpp:672:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::address exporter_wrapper::load_address(const data_chunk&) const’:
main.cpp:676:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::get_address exporter_wrapper::load_get_address(const data_chunk&) const’:
main.cpp:680:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::inventory exporter_wrapper::load_inventory(const data_chunk&) const’:
main.cpp:684:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::get_data exporter_wrapper::load_get_data(const data_chunk&) const’:
main.cpp:688:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::get_blocks exporter_wrapper::load_get_blocks(const data_chunk&) const’:
main.cpp:692:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::transaction exporter_wrapper::load_transaction(const data_chunk&) const’:
main.cpp:697:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::block exporter_wrapper::load_block(const data_chunk&) const’:
main.cpp:701:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘libbitcoin::message::ping exporter_wrapper::load_ping(const data_chunk&) const’:
main.cpp:705:16: error: ‘ex_’ was not declared in this scope
main.cpp: In member function ‘bool exporter_wrapper::verify_header(const libbitcoin::message::header&) const’:
main.cpp:710:16: error: ‘ex_’ was not declared in this scope
main.cpp: In function ‘exporter_wrapper create_satoshi_exporter()’:
main.cpp:718:46: error: ‘satoshi_exporter’ is not a member of ‘bc’
main.cpp:718:46: error: ‘satoshi_exporter’ is not a member of ‘bc’
main.cpp:718:68: error: no matching function for call to ‘make_shared()’
main.cpp:718:68: note: candidate is:
/usr/include/c++/4.6/bits/shared_ptr.h:547:5: note: template std::shared_ptr<_Tp1> std::make_shared(_Args&& ...)
main.cpp: In member function ‘void blockchain_wrapper::fetch_block_locator(boost::python::api::object)’:
main.cpp:775:17: error: ‘class libbitcoin::blockchain’ has no member named ‘fetch_block_locator’
main.cpp: In function ‘void fetch_block_by_depth(blockchain_wrapper, size_t, boost::python::api::object)’:
main.cpp:845:53: error: no matching function for call to ‘fetch_block(libbitcoin::blockchain_ptr, size_t&, pyfunction)’
main.cpp:845:53: note: candidates are:
/usr/local/include/bitcoin/blockchain/blockchain.hpp:305:6: note: void libbitcoin::fetch_block(libbitcoin::blockchain&, size_t, libbitcoin::blockchain_fetch_handler_block)
/usr/local/include/bitcoin/blockchain/blockchain.hpp:305:6: note:   no known conversion for argument 1 from ‘libbitcoin::blockchain_ptr {aka std::shared_ptr}’ to ‘libbitcoin::blockchain&’
/usr/local/include/bitcoin/blockchain/blockchain.hpp:323:6: note: void libbitcoin::fetch_block(libbitcoin::blockchain&, const hash_digest&, libbitcoin::blockchain_fetch_handler_block)
/usr/local/include/bitcoin/blockchain/blockchain.hpp:323:6: note:   no known conversion for argument 1 from ‘libbitcoin::blockchain_ptr {aka std::shared_ptr}’ to ‘libbitcoin::blockchain&’
main.cpp: In function ‘void fetch_block_by_hash(blockchain_wrapper, const hash_digest&, boost::python::api::object)’:
main.cpp:853:53: error: no matching function for call to ‘fetch_block(libbitcoin::blockchain_ptr, const hash_digest&, pyfunction)’
main.cpp:853:53: note: candidates are:
/usr/local/include/bitcoin/blockchain/blockchain.hpp:305:6: note: void libbitcoin::fetch_block(libbitcoin::blockchain&, size_t, libbitcoin::blockchain_fetch_handler_block)
/usr/local/include/bitcoin/blockchain/blockchain.hpp:305:6: note:   no known conversion for argument 1 from ‘libbitcoin::blockchain_ptr {aka std::shared_ptr}’ to ‘libbitcoin::blockchain&’
/usr/local/include/bitcoin/blockchain/blockchain.hpp:323:6: note: void libbitcoin::fetch_block(libbitcoin::blockchain&, const hash_digest&, libbitcoin::blockchain_fetch_handler_block)
/usr/local/include/bitcoin/blockchain/blockchain.hpp:323:6: note:   no known conversion for argument 1 from ‘libbitcoin::blockchain_ptr {aka std::shared_ptr}’ to ‘libbitcoin::blockchain&’
main.cpp: In function ‘void fetch_block_locator(blockchain_wrapper, boost::python::api::object)’:
main.cpp:861:61: error: invalid initialization of non-const reference of type ‘libbitcoin::blockchain&’ from an rvalue of type ‘libbitcoin::blockchain_ptr {aka std::shared_ptr}’
/usr/local/include/bitcoin/blockchain/blockchain.hpp:341:6: error: in passing argument 1 of ‘void libbitcoin::fetch_block_locator(libbitcoin::blockchain&, libbitcoin::blockchain_fetch_handler_block_locator)’
main.cpp: In function ‘blockchain_wrapper create_bdb_blockchain(async_service_wrapper, const string&, boost::python::api::object)’:
main.cpp:874:9: error: ‘create’ is not a member of ‘libbitcoin::bdb_blockchain’
main.cpp: In constructor ‘transaction_pool_wrapper::transaction_pool_wrapper(async_service_wrapper, blockchain_wrapper)’:
main.cpp:921:17: error: ‘create’ is not a member of ‘libbitcoin::transaction_pool’
main.cpp: In constructor ‘session_wrapper::session_wrapper(async_service_wrapper, hosts_wrapper, handshake_wrapper, network_wrapper, protocol_wrapper, blockchain_wrapper, poller_wrapper, transaction_pool_wrapper)’:
main.cpp:969:28: error: uninitialized reference member in ‘struct libbitcoin::session_params’
/usr/local/include/bitcoin/session.hpp:18:16: note: ‘libbitcoin::session_params::handshake_’ should be initialized
main.cpp:969:28: error: uninitialized reference member in ‘struct libbitcoin::session_params’
/usr/local/include/bitcoin/session.hpp:19:15: note: ‘libbitcoin::session_params::protocol_’ should be initialized
main.cpp:969:28: error: uninitialized reference member in ‘struct libbitcoin::session_params’
/usr/local/include/bitcoin/session.hpp:20:17: note: ‘libbitcoin::session_params::blockchain_’ should be initialized
main.cpp:969:28: error: uninitialized reference member in ‘struct libbitcoin::session_params’
/usr/local/include/bitcoin/session.hpp:21:13: note: ‘libbitcoin::session_params::poller_’ should be initialized
main.cpp:969:28: error: uninitialized reference member in ‘struct libbitcoin::session_params’
/usr/local/include/bitcoin/session.hpp:22:23: note: ‘libbitcoin::session_params::transaction_pool_’ should be initialized
main.cpp:970:11: error: ‘struct libbitcoin::session_params’ has no member named ‘hosts_’
main.cpp:971:29: error: no match for ‘operator=’ in ‘p.libbitcoin::session_params::handshake_ = handshake_wrapper::hs()()’
main.cpp:971:29: note: candidate is:
/usr/local/include/bitcoin/network/handshake.hpp:32:10: note: void libbitcoin::handshake::operator=(const libbitcoin::handshake&)
/usr/local/include/bitcoin/network/handshake.hpp:32:10: note:   no known conversion for argument 1 from ‘libbitcoin::handshake_ptr {aka std::shared_ptr}’ to ‘const libbitcoin::handshake&’
main.cpp:972:11: error: ‘struct libbitcoin::session_params’ has no member named ‘network_’
main.cpp:973:31: error: no match for ‘operator=’ in ‘p.libbitcoin::session_params::protocol_ = protocol_wrapper::prot()()’
main.cpp:973:31: note: candidate is:
/usr/local/include/bitcoin/network/protocol.hpp:28:10: note: void libbitcoin::protocol::operator=(const libbitcoin::protocol&)
/usr/local/include/bitcoin/network/protocol.hpp:28:10: note:   no known conversion for argument 1 from ‘libbitcoin::protocol_ptr {aka std::shared_ptr}’ to ‘const libbitcoin::protocol&’
main.cpp:974:26: error: no match for ‘operator=’ in ‘p.libbitcoin::session_params::poller_ = poller_wrapper::p()()’
main.cpp:974:26: note: candidate is:
/usr/local/include/bitcoin/poller.hpp:9:7: note: libbitcoin::poller& libbitcoin::poller::operator=(const libbitcoin::poller&)
/usr/local/include/bitcoin/poller.hpp:9:7: note:   no known conversion for argument 1 from ‘libbitcoin::poller_ptr {aka std::shared_ptr}’ to ‘const libbitcoin::poller&’
main.cpp:975:37: error: no match for ‘operator=’ in ‘p.libbitcoin::session_params::blockchain_ = blockchain_wrapper::chain()()’
main.cpp:975:37: note: candidates are:
/usr/local/include/bitcoin/blockchain/blockchain.hpp:18:7: note: libbitcoin::blockchain& libbitcoin::blockchain::operator=(const libbitcoin::blockchain&)
/usr/local/include/bitcoin/blockchain/blockchain.hpp:18:7: note:   no known conversion for argument 1 from ‘libbitcoin::blockchain_ptr {aka std::shared_ptr}’ to ‘const libbitcoin::blockchain&’
/usr/local/include/bitcoin/blockchain/blockchain.hpp:18:7: note: libbitcoin::blockchain& libbitcoin::blockchain::operator=(libbitcoin::blockchain&&)
/usr/local/include/bitcoin/blockchain/blockchain.hpp:18:7: note:   no known conversion for argument 1 from ‘libbitcoin::blockchain_ptr {aka std::shared_ptr}’ to ‘libbitcoin::blockchain&&’
main.cpp:976:36: error: no match for ‘operator=’ in ‘p.libbitcoin::session_params::transaction_pool_ = transaction_pool_wrapper::p()()’
main.cpp:976:36: note: candidate is:
/usr/local/include/bitcoin/transaction_pool.hpp:65:10: note: void libbitcoin::transaction_pool::operator=(const libbitcoin::transaction_pool&)
/usr/local/include/bitcoin/transaction_pool.hpp:65:10: note:   no known conversion for argument 1 from ‘libbitcoin::transaction_pool_ptr {aka std::shared_ptr}’ to ‘const libbitcoin::transaction_pool&’
main.cpp: In function ‘void init_module__bitcoin()’:
main.cpp:1188:36: error: no matching function for call to ‘boost::python::class_::def(const char [9], )’
main.cpp:1188:36: note: candidates are:
/usr/include/boost/python/class.hpp:224:11: note: template boost::python::class_::self& boost::python::class_::def(const boost::python::def_visitor&) [with Derived = Derived, W = libbitcoin::message::transaction, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified, boost::python::class_::self = boost::python::class_]
/usr/include/boost/python/class.hpp:234:11: note: template boost::python::class_::self& boost::python::class_::def(const char*, F) [with F = F, W = libbitcoin::message::transaction, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified, boost::python::class_::self = boost::python::class_]
/usr/include/boost/python/class.hpp:243:11: note: template boost::python::class_::self& boost::python::class_::def(const char*, A1, const A2&) [with A1 = A1, A2 = A2, W = libbitcoin::message::transaction, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified, boost::python::class_::self = boost::python::class_]
/usr/include/boost/python/class.hpp:250:11: note: template boost::python::class_::self& boost::python::class_::def(const char*, Fn, const A1&, const A2&) [with Fn = Fn, A1 = A1, A2 = A2, W = libbitcoin::message::transaction, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified, boost::python::class_::self = boost::python::class_]
/usr/include/boost/python/class.hpp:266:11: note: template boost::python::class_::self& boost::python::class_::def(const char*, Fn, const A1&, const A2&, const A3&) [with Fn = Fn, A1 = A1, A2 = A2, A3 = A3, W = libbitcoin::message::transaction, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified, boost::python::class_::self = boost::python::class_]
main.cpp:1298:27: error: ‘pretty’ is not a member of ‘libbitcoin::script’
main.cpp:1321:35: error: ‘channel_stopped’ is not a member of ‘libbitcoin::error’
In file included from /usr/include/c++/4.6/bits/shared_ptr.h:52:0,
                 from /usr/include/c++/4.6/memory:86,
                 from /usr/include/boost/function/function_base.hpp:16,
                 from /usr/include/boost/function/detail/prologue.hpp:17,
                 from /usr/include/boost/function/function_template.hpp:13,
                 from /usr/include/boost/function/detail/maybe_include.hpp:13,
                 from /usr/include/boost/function/function0.hpp:11,
                 from /usr/include/boost/python/errors.hpp:13,
                 from /usr/include/boost/python/handle.hpp:11,
                 from /usr/include/boost/python/args_fwd.hpp:10,
                 from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from main.cpp:1:
/usr/include/c++/4.6/bits/shared_ptr_base.h: In constructor ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {libbitcoin::async_service&, std::shared_ptr, std::shared_ptr, std::shared_ptr}, _Tp = libbitcoin::protocol, _Alloc = std::allocator, __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’:
/usr/include/c++/4.6/bits/shared_ptr_base.h:518:8:   instantiated from ‘std::__shared_count<_Lp>::__shared_count(std::_Sp_make_shared_tag, _Tp*, const _Alloc&, _Args&& ...) [with _Tp = libbitcoin::protocol, _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr, std::shared_ptr, std::shared_ptr}, __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/4.6/bits/shared_ptr_base.h:987:35:   instantiated from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr, std::shared_ptr, std::shared_ptr}, _Tp = libbitcoin::protocol, __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/4.6/bits/shared_ptr.h:317:64:   instantiated from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr, std::shared_ptr, std::shared_ptr}, _Tp = libbitcoin::protocol]’
/usr/include/c++/4.6/bits/shared_ptr.h:535:39:   instantiated from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = libbitcoin::protocol, _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr, std::shared_ptr, std::shared_ptr}]’
/usr/include/c++/4.6/bits/shared_ptr.h:551:42:   instantiated from ‘std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = libbitcoin::protocol, _Args = {libbitcoin::async_service&, std::shared_ptr, std::shared_ptr, std::shared_ptr}]’
main.cpp:407:39:   instantiated from here
/usr/include/c++/4.6/bits/shared_ptr_base.h:410:4: error: no matching function for call to ‘libbitcoin::protocol::protocol(libbitcoin::async_service&, std::shared_ptr, std::shared_ptr, std::shared_ptr)’
/usr/include/c++/4.6/bits/shared_ptr_base.h:410:4: note: candidate is:
/usr/local/include/bitcoin/network/protocol.hpp:24:5: note: libbitcoin::protocol::protocol(libbitcoin::async_service&, libbitcoin::hosts&, libbitcoin::handshake&, libbitcoin::network&)
/usr/local/include/bitcoin/network/protocol.hpp:24:5: note:   no known conversion for argument 2 from ‘std::shared_ptr’ to ‘libbitcoin::hosts&’
/usr/include/c++/4.6/bits/shared_ptr_base.h: In constructor ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {libbitcoin::async_service&, std::shared_ptr}, _Tp = libbitcoin::poller, _Alloc = std::allocator, __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’:
/usr/include/c++/4.6/bits/shared_ptr_base.h:518:8:   instantiated from ‘std::__shared_count<_Lp>::__shared_count(std::_Sp_make_shared_tag, _Tp*, const _Alloc&, _Args&& ...) [with _Tp = libbitcoin::poller, _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr}, __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/4.6/bits/shared_ptr_base.h:987:35:   instantiated from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr}, _Tp = libbitcoin::poller, __gnu_cxx::_Lock_policy _Lp = (__gnu_cxx::_Lock_policy)2u]’
/usr/include/c++/4.6/bits/shared_ptr.h:317:64:   instantiated from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_make_shared_tag, const _Alloc&, _Args&& ...) [with _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr}, _Tp = libbitcoin::poller]’
/usr/include/c++/4.6/bits/shared_ptr.h:535:39:   instantiated from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = libbitcoin::poller, _Alloc = std::allocator, _Args = {libbitcoin::async_service&, std::shared_ptr}]’
/usr/include/c++/4.6/bits/shared_ptr.h:551:42:   instantiated from ‘std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = libbitcoin::poller, _Args = {libbitcoin::async_service&, std::shared_ptr}]’
main.cpp:894:67:   instantiated from here
/usr/include/c++/4.6/bits/shared_ptr_base.h:410:4: error: no matching function for call to ‘libbitcoin::poller::poller(libbitcoin::async_service&, std::shared_ptr)’
/usr/include/c++/4.6/bits/shared_ptr_base.h:410:4: note: candidates are:
/usr/local/include/bitcoin/poller.hpp:12:5: note: libbitcoin::poller::poller(libbitcoin::async_service&, libbitcoin::blockchain&)
/usr/local/include/bitcoin/poller.hpp:12:5: note:   no known conversion for argument 2 from ‘std::shared_ptr’ to ‘libbitcoin::blockchain&’
/usr/local/include/bitcoin/poller.hpp:9:7: note: constexpr libbitcoin::poller::poller(const libbitcoin::poller&)
/usr/local/include/bitcoin/poller.hpp:9:7: note:   candidate expects 1 argument, 2 provided
/usr/local/include/bitcoin/poller.hpp:9:7: note: constexpr libbitcoin::poller::poller(libbitcoin::poller&&)
/usr/local/include/bitcoin/poller.hpp:9:7: note:   candidate expects 1 argument, 2 provided
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_header(const libbitcoin::message::header&) const’:
main.cpp:620:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_version(const libbitcoin::message::version&) const’:
main.cpp:624:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_verack(const libbitcoin::message::verack&) const’:
main.cpp:628:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_address(const libbitcoin::message::address&) const’:
main.cpp:632:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_get_address(const libbitcoin::message::get_address&) const’:
main.cpp:636:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_inventory(const libbitcoin::message::inventory&) const’:
main.cpp:640:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_get_data(const libbitcoin::message::get_data&) const’:
main.cpp:644:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_get_blocks(const libbitcoin::message::get_blocks&) const’:
main.cpp:648:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_transaction(const libbitcoin::message::transaction&) const’:
main.cpp:652:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_block(const libbitcoin::message::block&) const’:
main.cpp:656:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::data_chunk exporter_wrapper::save_ping(const libbitcoin::message::ping&) const’:
main.cpp:660:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::header exporter_wrapper::load_header(const data_chunk&) const’:
main.cpp:665:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::version exporter_wrapper::load_version(const data_chunk&) const’:
main.cpp:669:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::verack exporter_wrapper::load_verack(const data_chunk&) const’:
main.cpp:673:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::address exporter_wrapper::load_address(const data_chunk&) const’:
main.cpp:677:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::get_address exporter_wrapper::load_get_address(const data_chunk&) const’:
main.cpp:681:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::inventory exporter_wrapper::load_inventory(const data_chunk&) const’:
main.cpp:685:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::get_data exporter_wrapper::load_get_data(const data_chunk&) const’:
main.cpp:689:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::get_blocks exporter_wrapper::load_get_blocks(const data_chunk&) const’:
main.cpp:693:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::transaction exporter_wrapper::load_transaction(const data_chunk&) const’:
main.cpp:698:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::block exporter_wrapper::load_block(const data_chunk&) const’:
main.cpp:702:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘libbitcoin::message::ping exporter_wrapper::load_ping(const data_chunk&) const’:
main.cpp:706:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In member function ‘bool exporter_wrapper::verify_header(const libbitcoin::message::header&) const’:
main.cpp:711:5: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In function ‘blockchain_wrapper create_bdb_blockchain(async_service_wrapper, const string&, boost::python::api::object)’:
main.cpp:877:1: warning: control reaches end of non-void function [-Wreturn-type]
main.cpp: In function ‘exporter_wrapper create_satoshi_exporter()’:
main.cpp:719:1: warning: control reaches end of non-void function [-Wreturn-type]
make: *** [default] Error 1

Any ideas?
legendary
Activity: 1232
Merit: 1076
June 27, 2012, 12:25:31 PM
OK, compatibility with LTS:

https://gitorious.org/libbitcoin/libbitcoin/blobs/master/INSTALL

See the section labelled 'Ubuntu Instructions'. You will need the following line to install the dependencies:

sudo apt-get install build-essential autoconf libtool libboost1.48-all-dev libdb++-dev libprotobuf-dev pkg-config libcurl4-openssl-dev

Then simply run the autoreconf -i && configure && make && sudo make install step(s)
legendary
Activity: 1232
Merit: 1076
June 25, 2012, 10:45:59 PM
Ubuntu 12.10 is still 4 months away. Also, many people (like me) will stay on 12.04 because this is a release with long term support.
+1

I plan on running LTS for a while.  If that means libbitcoin is going to be a PITA, that is too bad.

Hmmm OK. I'll setup a new VPS to get compatibility with the LTS again. I'm making some simplifications, optimisations and cleanup of the interface for the next release.
hero member
Activity: 742
Merit: 500
June 25, 2012, 07:47:35 PM
Ubuntu 12.10 is still 4 months away. Also, many people (like me) will stay on 12.04 because this is a release with long term support.
+1

I plan on running LTS for a while.  If that means libbitcoin is going to be a PITA, that is too bad.
Pages:
Jump to: