bitcoind as a library

bitcoind as a library
2014-11-27 17:54 ` Wladimir
  
From: Mem Wallet @ 2014-11-27 17:27 UTC (permalink / raw)
  To: bitcoin-development

[-- Attachment #1: Type: text/plain, Size: 771 bytes --]

Two minor observations:

DecodeBase58Check is listed as inline, but isnt actually inlined in the
header.
This makes it both non-present in libbitcoin_common.a and unavailable
to other code that would use libbitcoin_common.a as a library. (bug?)

In general, the hierarchy of tools is poor/weak. for example base58.h could
be a fairly
independent low level math/string library, but it includes caddress, which
requires chainparams, and makes the whole dependency tree quite involved...


Is there an intention that the various internal libraries could/should
be strengthened and heirachicalized such that they would be suitable for
3rd party development of bitcoin related services and tools, or is that not
a goal, and some other project would have to fill such a role ?

[-- Attachment #2: Type: text/html, Size: 918 bytes --]

 permalink raw reply	[|nested]
2014-11-27 17:27 [Bitcoin-development] bitcoind as a library Mem Wallet

  2014-11-27 20:07   ` odinn
  2014-11-28 17:22   ` Oliver Egginger
  
From: Wladimir @ 2014-11-27 17:54 UTC (permalink / raw)
  To: Mem Wallet;  Bitcoin Dev

On Thu, Nov 27, 2014 at 5:27 PM, Mem Wallet <memwallet.info@gmail•com> wrote:

> Is there an intention that the various internal libraries could/should
> be strengthened and heirachicalized such that they would be suitable for
> 3rd party development of bitcoin related services and tools, or is that not
> a goal, and some other project would have to fill such a role ?

The plan is to provide the consensus functionality as a library, the
essential parts that make bitcoin bitcoin.
0.10 will have a basic transaction/script verifier available.
In the version after that, I expect this will be extended to further
utxo set management, but no API has been worked out for that yet.
There are also plans to add a library for transaction signing.

However there is no goal to expose *everything* as a library.
Certainly not wallet- or user interface related functionality.
Specialized utility libraries would fill this purpose better.
See for example https://github.com/bitcoin/libbase58 for base58 processing.

Wladimir



 permalink raw reply	[|nested]
2014-11-27 17:54 ` Wladimir

  2014-11-28 17:22   ` Oliver Egginger
  
From: odinn @ 2014-11-27 20:07 UTC (permalink / raw)
  To: Wladimir, Mem Wallet;  Bitcoin Dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512



A recent comment on this (I think)...

https://github.com/bitcoin/bitcoin/issues/4564#issuecomment-49558760

Reflecting on an approach from a different but related project, as a
result of an issue discussion in DW, stealth and coinjoin from that
project were broken out as distinct repositories - see:

https://github.com/darkwallet/stealth.js
and
https://github.com/darkwallet/coinjoin.js

installable using npm


I'm probably missing something here, but it seems to me like breaking
things out as distinct repositories might be a good approach.  The
question is what would be in a distinct repository or repositories?
Currently if someone is looking at core, everything is seen here:
https://github.com/bitcoin/bitcoin/

<slips away for holidays>




Wladimir:
> On Thu, Nov 27, 2014 at 5:27 PM, Mem Wallet
> <memwallet.info@gmail•com> wrote:
> 
>> Is there an intention that the various internal libraries
>> could/should be strengthened and heirachicalized such that they
>> would be suitable for 3rd party development of bitcoin related
>> services and tools, or is that not a goal, and some other project
>> would have to fill such a role ?
> 
> The plan is to provide the consensus functionality as a library,
> the essential parts that make bitcoin bitcoin. 0.10 will have a
> basic transaction/script verifier available. In the version after
> that, I expect this will be extended to further utxo set
> management, but no API has been worked out for that yet. There are
> also plans to add a library for transaction signing.
> 
> However there is no goal to expose *everything* as a library. 
> Certainly not wallet- or user interface related functionality. 
> Specialized utility libraries would fill this purpose better. See
> for example https://github.com/bitcoin/libbase58 for base58
> processing.
> 
> Wladimir
> 
> ------------------------------------------------------------------------------
>
> 
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and
> Dashboards with Interactivity, Sharing, Native Excel Exports, App
> Integration & more Get technology previously reserved for
> billion-dollar corporations, FREE 
> http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
>
> 
_______________________________________________
> Bitcoin-development mailing list 
> Bitcoin-development@lists•sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> 

- -- 
http://abis.io ~
"a protocol concept to enable decentralization
and expansion of a giving economy, and a new social good"
https://keybase.io/odinn
-----BEGIN PGP SIGNATURE-----

iQEcBAEBCgAGBQJUd4SAAAoJEGxwq/inSG8Che8H/3PMt0NQSrVSqnC6WC9scXdD
aqGnsdZkhnLRs0szJSTjiQm+xCk6aUcEsKCGu298Xhkv38S4DSfWa+OhFZGPKmOZ
wlfnXAz3SprQ8xzy/NVqavtFRk+pGDRxgBIzzgBfbz3BdPKxMywi9BNnaK0YA6UA
08giKmtqblHTKmKuguK23YIYjAAk3Csg0Vg4BgN2MgeEXl9PJI6vh4+jNckXWtAT
/gKjPXG/Q+f9wl5pxSY/+ZfmRUtjHye3f8hHjpSEmxjpB9QzeeDg63DzAhOH0ip5
vXaIePZED//SmN3eH+S22vAx/a83URkr5B2+8Cffx/oO5laYRthoMHLi/2+XkO4=
=UWhs
-----END PGP SIGNATURE-----



 permalink raw reply	[|nested]
2014-11-27 17:54 ` Wladimir
  2014-11-27 20:07   ` odinn

  2014-11-28 17:49     ` Btc Drak
  
From: Oliver Egginger @ 2014-11-28 17:22 UTC (permalink / raw)
  To: bitcoin-development

On Thu, Nov 27, 2014 at 6:54 PM, Wladimir <laanwj@gmail•com> wrote:
> On Thu, Nov 27, 2014 at 5:27 PM, Mem Wallet <memwallet.info@gmail•com> wrote:
> 
>> Is there an intention that the various internal libraries could/should
>> be strengthened and heirachicalized such that they would be suitable for
>> 3rd party development of bitcoin related services and tools, or is that not
>> a goal, and some other project would have to fill such a role ?
> 
> The plan is to provide the consensus functionality as a library, the
> essential parts that make bitcoin bitcoin.
> 0.10 will have a basic transaction/script verifier available.
> In the version after that, I expect this will be extended to further
> utxo set management, but no API has been worked out for that yet.
> There are also plans to add a library for transaction signing.
> 
> However there is no goal to expose *everything* as a library.
> Certainly not wallet- or user interface related functionality.
> Specialized utility libraries would fill this purpose better.
> See for example https://github.com/bitcoin/libbase58 for base58 processing.


Sorry for the off-topic but while reading this I like to ask you for
picocoin, see:

https://github.com/jgarzik/picocoin

For a research project I'm looking for a C library to operate some block
chain analysis (parsing raw blocks and transactions). Has anyone of you
experience with picocoin for that? Are there any relevant limitations?

- oliver



 permalink raw reply	[|nested]
2014-11-28 17:22   ` Oliver Egginger

  2014-11-30 16:38       ` Jeff Garzik
  
From: Btc Drak @ 2014-11-28 17:49 UTC (permalink / raw)
  To: Oliver Egginger;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 408 bytes --]

On Fri, Nov 28, 2014 at 5:22 PM, Oliver Egginger <bitcoin@olivere•de> wrote:

> Sorry for the off-topic but while reading this I like to ask you for
> picocoin, see:
>
> https://github.com/jgarzik/picocoin
>
> For a research project I'm looking for a C library to operate some block
> chain analysis (parsing raw blocks and transactions).


This might be useful for you https://github.com/MatthewLM/cbitcoin

[-- Attachment #2: Type: text/html, Size: 920 bytes --]

 permalink raw reply	[|nested]
2014-11-28 17:49     ` Btc Drak

  
From: Jeff Garzik @ 2014-11-30 16:38 UTC ( / )
  To: Btc Drak;  Bitcoin Dev



Though I am highly biased :)  Compared to cbitcoin, picocoin's library
(libccoin) is valgrind-clean, can parse and index the blockchain, and
supports all core and P2P data structures.


On Fri, Nov 28, 2014 at 12:49 PM, Btc Drak <btcdrak@gmail•com> wrote:

> On Fri, Nov 28, 2014 at 5:22 PM, Oliver Egginger <bitcoin@olivere•de>
> wrote:
>
>> Sorry for the off-topic but while reading this I like to ask you for
>> picocoin, see:
>>
>> https://github.com/jgarzik/picocoin
>>
>> For a research project I'm looking for a C library to operate some block
>> chain analysis (parsing raw blocks and transactions).
>
>
> This might be useful for you https://github.com/MatthewLM/cbitcoin
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>


-- 
Jeff Garzik
Bitcoin core developer and open source evangelist
BitPay, Inc.      https://bitpay.com/