Closed dexX7 closed 9 years ago
Quick instruction and information:
1) https://github.com/dexX7/bitcoin/commit/b021fd2920be07fc6a5a0f09f1cb98c787357249 merged current Bitcoin 0.10 with MC 0.0.9 and resolved all conflicts.
2) This introduced some duplications of code and required to adjust the RPC integration: https://github.com/dexX7/bitcoin/commit/910ba6a4b02520c032572285ef471974c7de45e2 https://github.com/dexX7/bitcoin/commit/b899658ea688c1acbb1937c409a54c87a631a258 https://github.com/dexX7/bitcoin/commit/9468e75e1db43dfeb9835d1715bfdb5255fd8884
3) RegTest() and TestNet() are no longer available and were replaced by Params().Network__. https://github.com/dexX7/bitcoin/commit/db93ececfcdba57e5fdfabe69367a607404f614b is a quick fix to resolve this, but we might as well recreate RegTest() and TestNet() as new functions.
4) The script interface changed and https://github.com/dexX7/bitcoin/commit/25882cc6a2b9432b7a39e6cd1d0af5eb697d4fa4 converted the current code to use ::minRelayTxFee, GetScriptForDestination(), GetScriptForMultisig().
5) https://github.com/dexX7/bitcoin/commit/44da5fa9dc3d7564ebfb5ffa9a4af7e92af448cb https://github.com/dexX7/bitcoin/commit/1e3401e23dc3c4452c0a3ca08606287ff1bdddc0 https://github.com/dexX7/bitcoin/commit/3c35e6e7de632cb3601ce646bd346117d5eee1cc https://github.com/dexX7/bitcoin/commit/9a734fc3d91999869a46732b4bdf60900b1d3bd8 are minor adjustments to address specific build errors.
I don't consider any of this as "functional" change until this point, but rather as integration and part of the merge. However, this is still not enough for a sucessful build.
One very important point: due to the "watch-only" feature of 0.10 the UI and components require adjustments. This is most relevant for the overview page, but it also touches the transaction page. I do not intend to recreate the UI at this point, but to get a successful build.
6) Therefore I began to exclude UI parts (with #ifdef) and ended up with https://github.com/dexX7/bitcoin/commit/265e73d16ef4faa232c36e1d48c15db7fdb2a491. This further comes with some cleanup, adjusted header includes etc. which were added to address specific build errors, but I further messed around with the Master Core version file.
7) https://github.com/dexX7/bitcoin/commit/53188b78227e0b214d3b8dcf840aeda51ce77651 moves the includes in the makefile, but something is wrong and I haven't figured out yet what this is.
This is the build log: https://gist.githubusercontent.com/dexX7/c1169c989c427e4d7ded/raw/
Fail log:
/bin/bash ../libtool --tag=CXX --mode=link /home/travis/build/dexX7/mastercore-secret/depends/x86_64-unknown-linux-gnu/native/bin/ccache g++ -m64 -pipe -O1 -Wstack-protector -fstack-protector-all -fPIE -pthread -L/home/travis/build/dexX7/mastercore-secret/depends/x86_64-unknown-linux-gnu/lib -Wl,-z,relro -Wl,-z,now -pie -o bitcoind bitcoind-bitcoind.o libbitcoin_server.a libbitcoin_common.a univalue/libbitcoin_univalue.a libbitcoin_util.a crypto/libbitcoin_crypto.a ./leveldb/libleveldb.a ./leveldb/libmemenv.a secp256k1/libsecp256k1.la libbitcoin_wallet.a -L/home/travis/build/dexX7/mastercore-secret/depends/x86_64-unknown-linux-gnu/lib -lboost_system-mt-d -lboost_filesystem-mt-d -lboost_program_options-mt-d -lboost_thread-mt-d -lboost_chrono-mt-d -ldb_cxx-4.8 -L/home/travis/build/dexX7/mastercore-secret/depends/x86_64-unknown-linux-gnu/lib -lssl -lcrypto -ldl -L/home/travis/build/dexX7/mastercore-secret/depends/x86_64-unknown-linux-gnu/lib -lcrypto -ldl -lrt -lanl
libtool: link: /home/travis/build/dexX7/mastercore-secret/depends/x86_64-unknown-linux-gnu/native/bin/ccache g++ -m64 -pipe -O1 -Wstack-protector -fstack-protector-all -fPIE -pthread -Wl,-z -Wl,relro -Wl,-z -Wl,now -pie -o bitcoind bitcoind-bitcoind.o -L/home/travis/build/dexX7/mastercore-secret/depends/x86_64-unknown-linux-gnu/lib libbitcoin_server.a libbitcoin_common.a univalue/libbitcoin_univalue.a libbitcoin_util.a crypto/libbitcoin_crypto.a ./leveldb/libleveldb.a ./leveldb/libmemenv.a secp256k1/.libs/libsecp256k1.a libbitcoin_wallet.a -lboost_system-mt-d -lboost_filesystem-mt-d -lboost_program_options-mt-d -lboost_thread-mt-d -lboost_chrono-mt-d -ldb_cxx-4.8 -lssl -lcrypto -ldl -lrt -lanl -pthread
libbitcoin_server.a(libbitcoin_server_a-mastercore.o): In function `mastercore::getTotalTokens(unsigned int, long*)':
mastercore.cpp:(.text+0x2fe4): undefined reference to `CMPSPInfo::getSP(unsigned int, CMPSPInfo::Entry&)'
libbitcoin_server.a(libbitcoin_server_a-mastercore.o): In function `FormatMP(unsigned int, long, bool)':
mastercore.cpp:(.text+0x5f6c): undefined reference to `mastercore::isPropertyDivisible(unsigned int)'
libbitcoin_server.a(libbitcoin_server_a-mastercore.o): In function `load_most_relevant_state()':
mastercore.cpp:(.text+0x9a21): undefined reference to `CMPSPInfo::popBlock(uint256 const&)'...
Todo:
Now this looks more promising:
Green lights, Bitcoin Core tests successful, https://travis-ci.org/dexX7/mastercore/builds/45187824
Hey DexX,
Quick Q - what obstacles do you see for a move to 0.10 given introduction of headers-first?
Most concerning to me is the notion of blocks being downloaded out of order
Was planning to get into it after the 0.0.9 tag but very interested in any thoughts you've had on the topic :)
Thanks Z On 27/12/2014 12:14 PM, "dexX7" notifications@github.com wrote:
Now this looks more promising:
Green lights, Bitcoin Core tests successful, https://travis-ci.org/dexX7/mastercore/builds/45187824
— Reply to this email directly or view it on GitHub https://github.com/mastercoin-MSC/mastercore/pull/263#issuecomment-68165008 .
Quick Q - what obstacles do you see for a move to 0.10 given introduction of headers-first?
I'm on the run at the moment, but will address this question and the topic in general in greater detail tomorrow.
In short: it may require adjustments, but the redesign of "reindex" can be used as blueprint and I don't see it as obstackle.
The biggest obstacle I see at the moment are the required UI adjustments.
This thread is mainly a WIP test and I want to isolate the conflicting points and move to something more general, so MC becomes less dependant on BC and much more like a "plugin".
Guys I have little idea on how to review these changes in the PR the way it is. :( Previously I moved from 9 to 9.1 to 9.2 etc. simply by manually merging the MC into the official Bitcoin Core tag. Hundreds of touched files & over a thousand of commits from upstream is just too much.
On mobile right now: I fully agree, this is not easy to review, but neither is simply copying the files. What we need are more tests to cover everything.
As mentioned, I suggest to reduce friction points to be more independant from Bitcoin Core. The intetion oft this PR is paving the way and testing the waters, so to speak.
Sorry for the delay @zathras-crypto: the answer is actually pretty short:
It was appearingly an issue for reindexing as well, but it was solved by simply stopping, when there is no next block, and continuing, once the chain grows further. At least on the first glimpse I think this shouldn't be a huge issue and could be migated with some additional steps.
Regarding this topic in general (re: @m21): in the end, it doesn't really matter, if files are plainly copied or merged. I like the commit histories for nostalgic reasons, but this should not have a significant influence.
What I'm trying to figure out right now: where are the conflicting parts? The whole thread is pretty messy, and I think it will remain this way and I do not have much intention in merging this, but rather all the smallish byproducts that are the result of this process, to make the final transition (whether by hard copy or merge or whatever else ... :) as frictionless as possible.
Regarding the transition itself: it's very feasible.
What really thrills me: 0.10 allows to build for any target plattform, even without Gitian setup.
It fails currently and this is incomplete.