Skip to content

Conversation

@jaromil
Copy link
Contributor

@jaromil jaromil commented Apr 15, 2011

just a start, needs more detections at configure, however works to build the daemon alone for now.
more flags should be present on ./configure to select gui build and detect required libraries.
libtool is just used to build the internal libcryptopp, but we can ship libbitcoin.so in future.

the aim of this fork is mostly that of GNUification for bitcoin codebase and process separation.
code will be shared between daemon and client implementations via shared libraries.

it might look as a traumatic for now, but well think of the long term...
consider no code was changed in this commit, just moved around.
win32 and osx builds can be fixed to work using autotools or a parallel cmake build.

apologies for not having created a branch, i've pushed on my fork's master.
if that is a problem i can redo that quickly.

just a start, needs more detections at configure, however works to build the daemon alone for now.
more flags should be present on ./configure to select gui build and detect required libraries.
libtool is just used to build the internal libcryptopp, but we can ship libbitcoin.so in future.

the aim of this fork is mostly that of GNUification for bitcoin codebase and process separation.
code will be shared between daemon and client implementations via shared libraries.

it might look as a traumatic for now, but well think of the long term...
win32 and osx builds can be fixed to work using autotools or a parallel cmake build.
@jgarzik
Copy link
Contributor

jgarzik commented Apr 15, 2011

Comments:

  1. This is duplicating work at https://github.com/jgarzik/bitcoin/tree/autotools which was mentioned on the forums at http://www.bitcoin.org/smf/index.php?topic=2772.msg82737#msg82737

  2. You arbitrarily changed the license to GPLv3. NAK.

  3. autotools conversion does not require a total bitcoin source tree reorg.

@jaromil
Copy link
Contributor Author

jaromil commented Apr 15, 2011

BTW please to meet you :) i'm new on github, but not to code.
i'm friend with genjix and running a bitcoin related project on http://dyndy.net
see other repos i'm active on http://code.dyne.org and software on http://freshmeat.net/users/jaromil

willing to cooperate on maintainance of the C++ source package and in particular of the unix daemon,
on the long term i'd like to make a shared library (libbitcoin) and uid/gid separation of daemon for better security,
and maybe clear and document the API and make SWIG bindings to python.

ciao

@jaromil
Copy link
Contributor Author

jaromil commented Apr 15, 2011

  1. ACK. will read that
  2. autoreconf -i does that (adds COPYING when missing) and i didn't noticed.
  3. true. i just went for standard code separation in src/, not sure about other approaches.

autoreconf -i had slipped the GPLv3 file as default, now removed.
@jaromil
Copy link
Contributor Author

jaromil commented Apr 15, 2011

looked at your branch: not so much duplication since we're both just at the beginning.

yet you might like the use of libtool in my branch :)

hack on

@jgarzik
Copy link
Contributor

jgarzik commented Apr 15, 2011

Well, FWIW it is unlikely that this branch will be pulled. All these are the sorts of changes we -do- want, but in general you're wrapping way too many major changes into a single pull request. The right way to do this is with small, incremental changes, in separate pull requests that can be evaluated on their own merits, after being discussed on the forums.

For example, everyone has their own opinion on source file placement, and these changes tend to have low payback, and are low priority. See discussion in thread http://www.bitcoin.org/smf/index.php?topic=5813.0

On libbitcoin: everybody wants it, but any libbitcoin API should be informed by some applications actively using the library, i.e. real needs demonstrated in the field. So, we're all for a libbitcoin, but we tend to be collectively wary of Grand API Designs unless you already have a lot of experience with the existing codebase and concepts :) Nothing personal.

Speaking incrementally, the first rev of autotools should just get the existing stuff working on all platforms. That means no libtool, which just adds complexity for no reason (because libbitcoin does not yet exist).

Baby steps! The first reaction of -every- programmer upon meeting bitcoin is "I want to rewrite it!" But the dev team must be conservative and keep everything running and debuggable and backwards compatible. Big pulls and major reorgs offer little payback for a large potential for breakage.

@jaromil
Copy link
Contributor Author

jaromil commented Apr 15, 2011

i don't understand what you mean with Grand API Designs: since bitcoin has already an API, i have no illusions of grandeur here. code reorganization needs stuff to be moved around and there are guidelines and standards for that. however i see we have different views on more things: code splitting needed as mentioned by Jim Hyslop on the forum, as well reluctance to libtool.

i don't want to rewrite anything and actually i think the code is not that bad esp. if properly reorganized, but then is a matter of being practical.

ciao

it now compiles fine in autotools on unix, didn't tested other targets.
@jgarzik
Copy link
Contributor

jgarzik commented Apr 16, 2011

There is no reluctance to libtool; it is a simple, binary decision: libbitcoin does not exist, therefore libtool should not be used. When libbitcoin exists, libtool should be used.

libtool is the wrong choice for bitcoin's libcryptopp, because that is simply linked directly into the miner. Doing anything else -- particularly moving it to a shared library -- simply reduces performance for no reason.

Your Makefile.am is also broken on several operating systems, because it hardcodes the name of the various dependent libraries.

@jaromil
Copy link
Contributor Author

jaromil commented Apr 16, 2011

On Fri, 15 Apr 2011, jgarzik wrote:

libtool is the wrong choice for bitcoin's libcryptopp, because that
is simply linked directly into the miner. Doing anything else --
particularly moving it to a shared library -- simply reduces
performance for no reason.

my use of libtool for libcryptopp is purely internal: libcryptopp is
still linked statically inside the bitcoind binary (in fact I agree
there is no need to make it shared) this is the recommended approach
to structure autotools packages that include static libs.

Your Makefile.am is also broken on several operating systems,
because it hardcodes the name of the various dependent libraries.

true, but then maybe my pull request came a bit too early, since I
consider this fork just a start and I'll complete it in the coming
days. feel free to keep an eye on it and take what you like, I'll do
my best to make granular and well commented commits.

ciao

jaromil added 10 commits April 16, 2011 14:41
just olding old makefiles and coding guidelines for now
now using pkg-config for ssl, crypto and ghread2
also boost ldflags are used
naming an header config.h besides the one generated in the root dir by autoconf is a very bad idea(tm)
moved all images in share/pixmaps
moved ui and vsi files into share
I'm not 100% sure of its correctness and should be reviewed by older
dev members. esp to distinguish people that have contributed artworks
and code and maybe specify who is busy on which part (UI, Core etc.)
let's write it clearly for those who don't know :P
had to ask a friend to realize...
they included directly in source, so they go in src/xpm
that's a start to detect various supported architectures
still needs filling up needed flags, but should provide an consistent skeleton
…ders.h

this change is made necessary by the fact VERSION is a reserved define
for autotools and it is actually a (char).

we could decide to keep the versioning centrally controlled in configure.ac
and then AC_DEFINE it there, however to keep changes as minimal as possible
I've just renamed it where needed.
right now options are just 'wx' or 'none' (default)

this code should provide a skeleton for more GUIs in future,
making them selectable at configure, setting different flags
depending from the target host.
@jaromil
Copy link
Contributor Author

jaromil commented Apr 17, 2011

so far so good: compiles on linux providing --enable-upnp and --enable-gui=wx

code itself was never modified, just moved around, with two exceptions:

  1. 9141f2c renamed cryptopp/config.h to settings.h
  2. c929bae code namespace change: (int)VERSION renamed to BITCOIN_VERSION in headers.h
    so just one filename and one variable name changed.

in this branch/pull request i'll continue hacking only on build issues and avoid touching anything into the code, in fact as it looks like now i guess nothing else in code needs changes.

ciao

thanks luke-jr for noticing
@jgarzik
Copy link
Contributor

jgarzik commented Apr 17, 2011

pull requests are for finished patches, not actively hacked projects.

@jgarzik jgarzik closed this Apr 17, 2011
@jaromil
Copy link
Contributor Author

jaromil commented Apr 18, 2011

sry i didn't knew. can you specify that in the documentation? thanks.

dexX7 added a commit to dexX7/bitcoin that referenced this pull request Nov 10, 2015
3154ea6 Bump version to 0.0.10.0-rc1 (dexX7)
deadalnix pushed a commit to deadalnix/bitcoin that referenced this pull request Sep 18, 2016
Make C++11 the new required minimum
rebroad pushed a commit to rebroad/bitcoin that referenced this pull request Dec 7, 2016
deadalnix pushed a commit to deadalnix/bitcoin that referenced this pull request Dec 13, 2016
Remove vfReachable and modify IsReachable to only use vfLimited.
destenson pushed a commit to destenson/bitcoin--bitcoin that referenced this pull request Nov 18, 2017
lateminer pushed a commit to lateminer/bitcoin that referenced this pull request Dec 9, 2017
getbestblockhash and time as epoch for ledger
cryptapus added a commit to cryptapus/bitcoin that referenced this pull request Aug 9, 2019
KolbyML pushed a commit to KolbyML/bitcoin that referenced this pull request Aug 1, 2020
PHR-7 adding  ask to unlock dialog in create proposal button
laanwj added a commit that referenced this pull request Dec 28, 2020
e262a19 gui: display network in peer details (Jon Atack)
9136953 gui: rename peer tab column headers, initialize in .h (Hennadii Stepanov)
05c08c6 gui: add network column in peers tab/window (Jon Atack)
e0e5506 gui: fix broken doxygen formatting in src/qt/guiutil.h (Jon Atack)
0d5613f gui: create GUIUtil::NetworkToQString() utility function (Jon Atack)
af9103c net, rpc: change CNodeStats::m_network from string to Network (Jon Atack)

Pull request description:

  and rename peers window column headers from NodeId and Node/Service to Peer Id and Address.

  ![Screenshot from 2020-12-27 14-45-31](https://user-images.githubusercontent.com/2415484/103172228-efec8600-4849-11eb-8cee-04a3d2ab1273.png)

ACKs for top commit:
  laanwj:
    ACK e262a19

Tree-SHA512: 709c2a805c109c2dd033aca7b6b6dc94ebe2ce7a0168c71249e1e661c9c57d1f1c781a5b9ccf3b776bedeb83ae2fb5c505637337c45b1eb9a418cb1693a89761
cryptapus pushed a commit to cryptapus/bitcoin that referenced this pull request May 3, 2021
0d7f3f6 Correcting the instance where the prior opcode is a OP_NAME*, but the referenced name is shorter than 5 bytes. As in issue#140, this converts the asm decode into interpreting the name value as an integer by accident. (Midnight Magic)

Pull request description:

  Very short names should still be decoded as strings and not numbers when they are part of a name script.

  This is a rebased and squashed version of bitcoin#162, fixing bitcoin#140.

Tree-SHA512: 904518a1f4492356f97d5cd6ca983f4ffb7a41db784d5f169d537bd37a57bfcadae470bf15f6938732806f12ef37895dba6fd5c765154206032350431dc17de3
rajarshimaitra pushed a commit to rajarshimaitra/bitcoin that referenced this pull request Aug 5, 2021
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants