Bitcoin Forum
December 12, 2024, 06:38:57 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: subvertx command line utilities (proof of concept using libbitcoin)  (Read 17812 times)
grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1080


View Profile
December 22, 2011, 07:59:02 AM
 #21

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:git@gitorious.org:libbitcoin/subvertx.git

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

Works fine now.  Thanks.

fellowtraveler
Sr. Member
****
Offline Offline

Activity: 440
Merit: 251


View Profile
December 22, 2011, 12:37:46 PM
Last edit: December 22, 2011, 12:52:07 PM by fellowtraveler
 #22

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.

co-founder, Monetas
creator, Open-Transactions
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
December 23, 2011, 08:30:24 AM
 #23

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.
netrin
Sr. Member
****
Offline Offline

Activity: 322
Merit: 251


FirstBits: 168Bc


View Profile
December 23, 2011, 09:32:38 AM
 #24

[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?

Greenlandic tupilak. Hand carved, traditional cursed bone figures. Sorry, polar bear, walrus and human remains not available for export.
fellowtraveler
Sr. Member
****
Offline Offline

Activity: 440
Merit: 251


View Profile
December 23, 2011, 12:13:18 PM
Last edit: December 23, 2011, 12:30:50 PM by fellowtraveler
 #25

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

co-founder, Monetas
creator, Open-Transactions
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
December 23, 2011, 12:39:40 PM
 #26

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.
netrin
Sr. Member
****
Offline Offline

Activity: 322
Merit: 251


FirstBits: 168Bc


View Profile
December 23, 2011, 12:45:25 PM
 #27

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?

Greenlandic tupilak. Hand carved, traditional cursed bone figures. Sorry, polar bear, walrus and human remains not available for export.
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
December 31, 2011, 06:17:17 PM
 #28

 I'll look into it
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
December 31, 2011, 06:19:40 PM
 #29

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.
fellowtraveler
Sr. Member
****
Offline Offline

Activity: 440
Merit: 251


View Profile
January 01, 2012, 04:08:12 AM
 #30

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.

co-founder, Monetas
creator, Open-Transactions
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1086


Ian Knowles - CIYAM Lead Developer


View Profile WWW
January 01, 2012, 10:03:26 AM
 #31

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.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
genjix (OP)
Legendary
*
expert
Offline Offline

Activity: 1232
Merit: 1076


View Profile
January 01, 2012, 10:15:52 AM
 #32

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.
bitfair
Sr. Member
****
Offline Offline

Activity: 362
Merit: 250


View Profile
September 08, 2012, 10:28:19 PM
 #33

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!
kruzer
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
September 11, 2012, 09:04:21 PM
 #34

...
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=\"genjix@riseup.net\" -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:
isis
Full Member
***
Offline Offline

Activity: 154
Merit: 102


View Profile
October 03, 2012, 03:27:21 PM
 #35

...
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=\"genjix@riseup.net\" -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!

Interested in OpenPay?
https://github.com/openpay
Donate to show your appreciation and support the effort!

1LMDCSAwjhT2Vp1sSf62dybEYW3MYpsoZj

Pyramining Links - Help OpenPay and get a 10% bonus on your funds.
http://pyramining.com/referral/zre9ysgqt
http://pyramining.com/referral/ans9km72g
http://pyramining.com/referral/f3k4xebzp
http://pyramining.com/referral/nc3ag2sdb
ThomasV
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
March 25, 2013, 09:46:16 AM
 #36

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

Electrum: the convenience of a web wallet, without the risks
mila
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250



View Profile
June 10, 2014, 10:47:50 PM
 #37

sorry for the necro but are there any news about this tool?

your ad here:
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!