Pages:
Author

Topic: subvertx command line utilities (proof of concept using libbitcoin) (Read 17808 times)

sr. member
Activity: 462
Merit: 250
sorry for the necro but are there any news about this tool?
legendary
Activity: 1896
Merit: 1353
Electrum now accepts plugins.
It would be awesome to write a txradar plugin, that connect to a server running txrad.
It would display the propagation rate in the client, in real time
full member
Activity: 154
Merit: 102
...
Same for the subvertx suite

  $ git clone git://gitorious.org/libbitcoin/subvertx.git
  $ cd subvertx
  $ autoreconf -i
  $ ./configure
  $ make
  # make install


I followed all the hints, and finally built libbitcoin library and installed it in ubuntu 12.04
But the last clone from subvertx git doesn't want to compile correctly. Is the latest version of subvertx compatible with latest version of libbitcoin?
The errors during compilation:
Code:
g++ -DPACKAGE_NAME=\"subvertx\" -DPACKAGE_TARNAME=\"subvertx\" -DPACKAGE_VERSION=\"0.1\" -DPACKAGE_STRING=\"subvertx\ 0.1\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"\" -DPACKAGE=\"subvertx\" -DVERSION=\"0.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_BOOST=/\*\*/ -I.  -std=gnu++0x -I/usr/local/include     -ggdb -MT poller.o -MD -MP -MF .deps/poller.Tpo -c -o poller.o poller.cpp
poller.cpp: In function ‘int main()’:
poller.cpp:31:28: error: ‘bdb_blockchain’ has not been declared
poller.cpp:36:9: error: ‘class libbitcoin::handshake’ has no member named ‘connect’
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/asio/detail/shared_ptr.hpp:21,
                 from /usr/include/boost/asio/detail/socket_ops.hpp:21,
                 from /usr/include/boost/asio/detail/socket_holder.hpp:20,
                 from /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:24,
                 from /usr/include/boost/asio/detail/reactive_socket_service.hpp:30,
                 from /usr/include/boost/asio/datagram_socket_service.hpp:26,
                 from /usr/include/boost/asio/basic_datagram_socket.hpp:21,
                 from /usr/include/boost/asio.hpp:20,
                 from /usr/local/include/bitcoin/types.hpp:4,
                 from /usr/local/include/bitcoin/address.hpp:4,
                 from /usr/local/include/bitcoin/bitcoin.hpp:140,
                 from poller.cpp:1:

bump!
newbie
Activity: 7
Merit: 0
...
Same for the subvertx suite

  $ git clone git://gitorious.org/libbitcoin/subvertx.git
  $ cd subvertx
  $ autoreconf -i
  $ ./configure
  $ make
  # make install


I followed all the hints, and finally built libbitcoin library and installed it in ubuntu 12.04
But the last clone from subvertx git doesn't want to compile correctly. Is the latest version of subvertx compatible with latest version of libbitcoin?
The errors during compilation:
Code:
g++ -DPACKAGE_NAME=\"subvertx\" -DPACKAGE_TARNAME=\"subvertx\" -DPACKAGE_VERSION=\"0.1\" -DPACKAGE_STRING=\"subvertx\ 0.1\" -DPACKAGE_BUGREPORT=\"[email protected]\" -DPACKAGE_URL=\"\" -DPACKAGE=\"subvertx\" -DVERSION=\"0.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_BOOST=/\*\*/ -I.  -std=gnu++0x -I/usr/local/include     -ggdb -MT poller.o -MD -MP -MF .deps/poller.Tpo -c -o poller.o poller.cpp
poller.cpp: In function ‘int main()’:
poller.cpp:31:28: error: ‘bdb_blockchain’ has not been declared
poller.cpp:36:9: error: ‘class libbitcoin::handshake’ has no member named ‘connect’
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/asio/detail/shared_ptr.hpp:21,
                 from /usr/include/boost/asio/detail/socket_ops.hpp:21,
                 from /usr/include/boost/asio/detail/socket_holder.hpp:20,
                 from /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:24,
                 from /usr/include/boost/asio/detail/reactive_socket_service.hpp:30,
                 from /usr/include/boost/asio/datagram_socket_service.hpp:26,
                 from /usr/include/boost/asio/basic_datagram_socket.hpp:21,
                 from /usr/include/boost/asio.hpp:20,
                 from /usr/local/include/bitcoin/types.hpp:4,
                 from /usr/local/include/bitcoin/address.hpp:4,
                 from /usr/local/include/bitcoin/bitcoin.hpp:140,
                 from poller.cpp:1:
sr. member
Activity: 362
Merit: 250
Gentlemen,

I think I've run into a serious bug in mktx (and let me apologize in advance if this is the wrong place to post - newbie warning!):

Simply put: Sometimes the coins are sent to the address 1111111111111111111114oLvT2 rather than to the specified receiving address. It happens only with certain addresses, my theory is that it happens when the second character in the address is greater than C - when the second character in the address is C or lower, it appears to work fine.

The example in the first post of this thread works fine. However, to recreate the problem try the same command, only change the second receving address, for example:

mktx create -p priv@c524c555aad1932c24c26ec20439a9caefc49f7c0df6d6bccced890ef980b45c:0 -k priv@keys/privkey -r 12oabCifvHuxzXtYVGhkxVfWZDvKcU743s:2000000 -r 1Def9ia5QENGf8CYVVnhRTNvpop67gs6Jp:58000000

Deserializing the output from that command you can see it has set the second output script to OP_DUP OP_HASH160 0000000000000000000000000000000000000000 OP_EQUALVERIFY OP_CHECKSIG.

BTW, I am using the subvertx ubuntu package on 12.04. I haven't set up my environment to be able to recompile the utilities and such, but I guess I'll have to dive into the source myself unless I hear back...

In either case, thanks for a great bunch of tools!
legendary
Activity: 1232
Merit: 1076
Very interesting tools and something I am very interested to use with my own future open source project.

Just a couple of questions:

1) Any possibility of optionally using MySQL?

2) Will these tools work in Windows also?


Cheers,

Ian.


1) The postgresql_blockchain in libbitcoin (which subvertx uses) plugin's underlying library cppdb can use MySQL/postgres/sqlite/... MySQL doesn't exist simply because I wasn't using it. So it might be possible to remove the postgres only stuff to make it work with mysql but I haven't looked into it.

2) Nobody has compiled for windows yet, but there is no linux specific stuff (and there shouldn't be). The code is even made to work on big endian systems too. Getting a windows port would be good Smiley Feel free to hit me up on IRC.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
Very interesting tools and something I am very interested to use with my own future open source project.

Just a couple of questions:

1) Any possibility of optionally using MySQL?

2) Will these tools work in Windows also?


Cheers,

Ian.
sr. member
Activity: 440
Merit: 251
I'll look into it

I recommend L-AGPL over LGPL.

It's basically the same as LGPL, except it applies even in cases where the software is used "as a service" (instead of as an installable program.)

See above for more info.
legendary
Activity: 1232
Merit: 1076
subvertx has a transaction radar tool Grin like http://www.transactionradar.com

https://gitorious.org/libbitcoin/subvertx/blobs/master/src/txrad.cpp

it's a simple tool. just sits there connected to 100 nodes and monitors for tx inventories.
legendary
Activity: 1232
Merit: 1076
 I'll look into it
sr. member
Activity: 322
Merit: 251
FirstBits: 168Bc
Quote from: netrin
... and the Lesser extension for libraries such as libbitcoin. Though isn't LGPL (in contrast to GPL) essentially BSD?
... your own code may remain private, but any improvements to the OT library or API code itself must be made available open-source.

My understanding is that the BSD license does not do this -- IBM could take all the libbitcoin code tomorrow if it were under BSD license, and use it internally, without having to open any source code...

Ah, right. Thank you.

Genjix, are you not considering the Lesser/Library extension?
legendary
Activity: 1232
Merit: 1076
Thanks for the info. Yes, they provided me with the exemption. The bug I'm referring to isn't to do with OpenSSL though. It's that the AGPL requires not only that you give the sourcecode on demand, but that you're proactive in providing the sourcecode visibly. This is problematic because if you make a small modification while developing or building on a compilation based system (like gentoo) then the act of connecting to the p2p network means you have to provide source. There is no means to do this in the bitcoin sourcecode and the idea itself is problematic; every build must store the sourcecode in a bundle which is served using custom bitcoin protocol extensions.

From my understanding, modifying the AGPL for them is complicated and so far the last proposal was:

Quote
> If the covered work has no means of communicating an offer to                                                                                                         
> provide Corresponding Source to the users interacting with it                                                                                                         
> remotely over a computer network, then you may comply with this                                                                                                       
> requirement by making the Corresponding Source for your version                                                                                                       
> available for anyone to copy, free of charge and under the terms of                                                                                                   
> this License, through a publicly available network server or other                                                                                                     
> readily accessible means.

This means that you are able to provide the source code through some other means (such as sending it via email if requested) and it solves the issue.

------

In an ideal world, copyrights, patents, trademarks and censorship wouldn't exist. Proprietary software would not be able to support itself against rampant piracy. And I would put my sourcecode out in the open for anyone to use as they like.

However, we don't live in that ideal world. And I will use what little power I have in the form of the GPL to fight this asymmetric warfare. The balance is totally tilted away from our favour, so why wouldn't you use the only protection afforded to you as a developer.

Licenses like the GPL hack the law, twisting it to our will. It is the best example of subversion.
sr. member
Activity: 440
Merit: 251
Thanks fellowtraveller Smiley Actually there are a bunch of licensing issues that have to be resolved. Me and the SFLC/FSF are trying to fix up the AGPL since there is a bug in it where bitcoin is concerned. Also OpenSSL conflicts with the GPL and LAGPL was discussed since they get a lot of requests for it.

But still got a lot of time since the project is far from maturity.

OpenSSL doesn't necessarily conflict with the GPL!  All you have to do is, provide a waiver with your license, allowing your users to link OpenSSL while using your library.

See the OT headers for examples of this, regarding OpenSSL as well as the Lucre library:  https://github.com/FellowTraveler/Open-Transactions/blob/master/LICENSE-AND-CREDITS.txt

Wget, for example, uses this "waiver" trick, and other software. Google for more info.
YOU can provide additional permissions on top of the AGPL (which is exactly how the LAGPL itself works.)
Since you can add permissions (NEVER restrictions) to any GPL license, then you may also be able to fix your AGPL "bug" using that technique.

Quote from: netrin
Thanks for the links, particularly Charles M. Hannum's comments on NetBSD licensing. It contrasts the opinions of O'Reily which have been quite influential over the decade. I had suggested a playful BSD-like license (Poetic License), but perhaps the Affero extensions and strong copyleft are necessary with respect to bitcoin, and the Lesser extension for libraries such as libbitcoin. Though isn't LGPL (in contrast to GPL) essentially BSD?

GPL licenses make exemptions for other GPL licenses, for interoperability reasons. So LGPL is different than BSD in terms of this interoperability. (For example, the above-described waiver is not necessary with LGPL...)

FYI, here is my own "easy english" description of the L-AGPL's operation:

Whether you are distributing binaries that link to the OT-API, or whether you are using the OT-API in your website — so-called “software as a service” — either way, your own code may remain private, but any improvements to the OT library or API code itself must be made available open-source.

My understanding is that the BSD license does not do this -- IBM could take all the libbitcoin code tomorrow if it were under BSD license, and use it internally, without having to open any source code, and without having to deal with the developers of libbitcoin. They could then sell it as closed-source, at a profit, and cut out the original developers, and cut out the open source community. They would not have to make available any of their improvements to libbitcoin, but could keep these proprietary. IMO that is a big distinction between BSD and LGPL.

I'm not opposed to the BSD license, but the link I provided in the previous post demonstrates why the GPL license can be important when it comes to maintaining a thriving open-source community around a given piece of software. Especially convincing is the amount of money spent by (normally competing) corporations such as Microsoft, et al towards improving linux, where such entities would normally never invest funds to benefit their competitors, but instead would tend to choose a proprietary solution (or co-opt a piece of BSD-licensed code in order to create a proprietary solution, as described in that article.)
sr. member
Activity: 322
Merit: 251
FirstBits: 168Bc
[Re: Lesser/Library GNU Affero Public License]

Thanks for the links, particularly Charles M. Hannum's comments on NetBSD licensing. It contrasts the opinions of O'Reily which have been quite influential over the decade. I had suggested a playful BSD-like license (Poetic License), but perhaps the Affero extensions and strong copyleft are necessary with respect to bitcoin, and the Lesser extension for libraries such as libbitcoin. Though isn't LGPL (in contrast to GPL) essentially BSD?
legendary
Activity: 1232
Merit: 1076
Thanks fellowtraveller Smiley Actually there are a bunch of licensing issues that have to be resolved. Me and the SFLC/FSF are trying to fix up the AGPL since there is a bug in it where bitcoin is concerned. Also OpenSSL conflicts with the GPL and LAGPL was discussed since they get a lot of requests for it.

But still got a lot of time since the project is far from maturity.
sr. member
Activity: 440
Merit: 251
Congratulations on the excellent library work.

I also notice you have chosen the GNU Affero GPL for your license. (The 'AGPL'.)

I still use AGPL, but only for my server software. My OT library now uses the L-AGPL, which preserves the Affero SaaS protections, while allowing LGPL-like permissions in places where OT is used as a library. It's the best of both worlds!

You can read more about the LAGPL here: http://mo.morsi.org/blog/node/270

I think this is the best argument in favor of using the GPL for (certain) open-source projects: http://www.dwheeler.com/blog/2006/09/01/#gpl-bsd

Also, FYI I actually wrote to the FSF about this, and they directed me to the same LAGPL article.

The critical point, legally, is that the LAGPL is created by layering additional permissions on top of the AGPL.

(Versus adding restrictions to the LGPL, which would be removable downstream.)

In the case of the LAGPL, the additional permissions are also removable, but who is ever going to do THAT? Therefore, that is the proper structure for it.
legendary
Activity: 1288
Merit: 1080
https://gitorious.org/libbitcoin/subvertx is the repo webpage, it contains all the info you need.

In short, here are the actual repo urls:
git:git://gitorious.org/libbitcoin/subvertx.git
http:https://git.gitorious.org/libbitcoin/subvertx.git
ssh:[email protected]:libbitcoin/subvertx.git

Ahh I had the http and git address mixed up.  Silly of me.

Works fine now.  Thanks.
newbie
Activity: 10
Merit: 0
https://gitorious.org/libbitcoin/subvertx is the repo webpage, it contains all the info you need.

In short, here are the actual repo urls:
git:git://gitorious.org/libbitcoin/subvertx.git
http:https://git.gitorious.org/libbitcoin/subvertx.git
ssh:[email protected]:libbitcoin/subvertx.git
legendary
Activity: 1288
Merit: 1080
Be advised, subvertx 0.1.0 is now tagged in the repository.

Can you remind us the git repo please?  I tried https://gitorious.org/libbitcoin/subvertx with no success Sad

newbie
Activity: 10
Merit: 0
Be advised, subvertx 0.1.0 is now tagged in the repository.

Gentoo ebuild for this version is available in the "bitcoin" overlay.
Binary packages are not available at this time and will possibly arrive with soon-to-be-tagged 0.1.1

This version explicitly requires libbitcoin 0.1.0 alpha 1.
See this announcement for more info.
Pages:
Jump to: