Bitcoin Forum
May 04, 2024, 03:29:54 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 »
  Print  
Author Topic: Building headless Bitcoin and Bitcoin-qt on Windows  (Read 419326 times)
Claire123
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
January 13, 2014, 05:45:26 PM
 #341

And I have news for you.  I have an addrman.h - serialize.h solution that compiles! Shocked
The reason MSVC++ gets ill at addrman.h as you say:

was not only those extra (()); around the big IMPLEMENT_SERIALIZE(...) macro in the CAddrMan class, that implements GetSerializeSize() Serialize() and Unserialize(), but also the extra complexity of the imbedded std::map<int, int> mapUnkIds;!?

When the map<> is "levitated out" of the macro and placed in the #define IMPLEMENT_SERIALIZE(statements) macro in serialize.h the compiler hums!

Thanks Ron! Smiley I will try this--do you have those two files online somewhere so I can see exactly what you mean?   If I remove the extra parens, the MSVC preprocessor actually truncates the source so I think I have a good case for opening up a MS tech support ticket but I can't stomach that right now.

Quote
I am very curious, needless to say, how you have built your levelDB static .lib file! 

I built the whole 0.8.6 source from the distribution in the setup file, which includes the levelDB source--I never went to google to get it.  In other words, I installed 0.8.6 Bitcoin and used the src directory that ships with the installation.  I never had trouble building levelDB but I did create the project file from scratch.  I have no idea if my port of Bitcoin would pass all regression tests but it seems to work for me on testnet.

Also, to continue from my personal message, one of the reasons I am publishing this is because I would like to see the mainstream financial world take a closer look at Bitcoin.  I know from experience that many mainstream corporate software developers (at least the ones I know) will *NOT* enthusiastically embrace MinGW, gcc, etc, unless, maybe, if it involved Android.  But on Windows?? No way.   But the main reason is because I wanted to learn how it works and MSVC is great for stepping through code in debug.   And then I thought it would be nice if I share my work Smiley

 
1714836594
Hero Member
*
Offline Offline

Posts: 1714836594

View Profile Personal Message (Offline)

Ignore
1714836594
Reply with quote  #2

1714836594
Report to moderator
1714836594
Hero Member
*
Offline Offline

Posts: 1714836594

View Profile Personal Message (Offline)

Ignore
1714836594
Reply with quote  #2

1714836594
Report to moderator
BitcoinCleanup.com: Learn why Bitcoin isn't bad for the environment
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
old c coder
Sr. Member
****
Offline Offline

Activity: 260
Merit: 250



View Profile WWW
January 14, 2014, 04:42:01 AM
 #342

And I have news for you.  I have an addrman.h - serialize.h solution that compiles! Shocked
The reason MSVC++ gets ill at addrman.h as you say:

was not only those extra (()); around the big IMPLEMENT_SERIALIZE(...) macro in the CAddrMan class, that implements GetSerializeSize() Serialize() and Unserialize(), but also the extra complexity of the imbedded std::map<int, int> mapUnkIds;!?

When the map<> is "levitated out" of the macro and placed in the #define IMPLEMENT_SERIALIZE(statements) macro in serialize.h the compiler hums!

Thanks Ron! Smiley I will try this--do you have those two files online somewhere so I can see exactly what you mean? 
No, but I'll put it here! This is 0.8.5 addrman.h though, not 0.8.6  I don't know if there's a difference?
Code:
#ifdef _MSC_VER
    IMPLEMENT_SERIALIZE
            (
            LOCK(cs);
                unsigned char
                    nVersion = 0;

                READWRITE(nVersion);
                READWRITE(nKey);
                READWRITE(nNew);
                READWRITE(nTried);

                CAddrMan
                    *am = const_cast<CAddrMan*>(this);

                if (fWrite)
                {
                    int
                        nUBuckets = ADDRMAN_NEW_BUCKET_COUNT;

                    READWRITE(nUBuckets);
/************
                    std::map<int, int>  
                        mapUnkIds;
************/  
                    int
                        nIds = 0;
                    for (std::map<int, CAddrInfo>::iterator it = am->mapInfo.begin(); it != am->mapInfo.end(); it++)
                    {
                        if (nIds == nNew)
                            break; // this means nNew was wrong, oh ow
                        mapUnkIds[(*it).first] = nIds;

                        CAddrInfo
                            &info = (*it).second;

                        if (info.nRefCount)
                        {
                            READWRITE(info);
                            nIds++;
                        }
                    }
                    nIds = 0;
                    for (std::map<int, CAddrInfo>::iterator it = am->mapInfo.begin(); it != am->mapInfo.end(); it++)
                    {
                        if (nIds == nTried)
                            break; /* this means nTried was wrong, oh ow */

                        CAddrInfo
                            &info = (*it).second;

                        if (info.fInTried)
                        {
                            READWRITE(info);
                            nIds++;
                        }
                    }
                    for (
                         std::vector<std::set<int> >::iterator it = am->vvNew.begin();
                         it != am->vvNew.end();
                         it++
                        )
                    {
                        std::set<int>
                            &vNew = (*it);

                        int
                            nSize = int( vNew.size() );

                        READWRITE(nSize);
                        for (std::set<int>::iterator it2 = vNew.begin(); it2 != vNew.end(); it2++)
                        {
                        int
                            nIndex = mapUnkIds[*it2];
                        READWRITE(nIndex);
                        }
                    }
                }
                else
                {
                    int
                        nUBuckets = 0;

                    READWRITE(nUBuckets);
                    am->nIdCount = 0;
                    am->mapInfo.clear();
                    am->mapAddr.clear();
                    am->vRandom.clear();
                    am->vvTried =
                        std::vector<std::vector<int> >(
                                                        ADDRMAN_TRIED_BUCKET_COUNT,
                                                        std::vector<int>(0)
                                                      );
                    am->vvNew =
                        std::vector<std::set<int> >(
                                                    ADDRMAN_NEW_BUCKET_COUNT,
                                                    std::set<int>()
                                                   );
                    for (int n = 0; n < am->nNew; n++)
                    {
                        CAddrInfo
                            &info = am->mapInfo[n];

                        READWRITE(info);
                        am->mapAddr[info] = n;
                        info.nRandomPos = int( vRandom.size() );
                        am->vRandom.push_back(n);
                        if (nUBuckets != ADDRMAN_NEW_BUCKET_COUNT)
                        {
                            am->vvNew[info.GetNewBucket(am->nKey)].insert(n);
                            info.nRefCount++;
                        }
                    }
                    am->nIdCount = am->nNew;

                    int
                        nLost = 0;

                    for (int n = 0; n < am->nTried; n++)
                    {
                        CAddrInfo
                            info;

                        READWRITE(info);

                        std::vector<int>
                            &vTried = am->vvTried[info.GetTriedBucket(am->nKey)];

                        if (vTried.size() < ADDRMAN_TRIED_BUCKET_SIZE)
                        {
                            info.nRandomPos = int( vRandom.size() );
                            info.fInTried = true;
                            am->vRandom.push_back(am->nIdCount);
                            am->mapInfo[am->nIdCount] = info;
                            am->mapAddr[info] = am->nIdCount;
                            vTried.push_back(am->nIdCount);
                            am->nIdCount++;
                        }
                        else
                        {
                            nLost++;
                        }
                    }
                    am->nTried -= nLost;
                    for (int b = 0; b < nUBuckets; b++)
                    {
                        std::set<int>
                            &vNew = am->vvNew[b];

                        int
                            nSize = 0;

                        READWRITE(nSize);
                        for (int n = 0; n < nSize; n++)
                        {
                            int
                                nIndex = 0;

                            READWRITE(nIndex);

                            CAddrInfo
                                &info = am->mapInfo[nIndex];

                            if (
                                (nUBuckets == ADDRMAN_NEW_BUCKET_COUNT) &&
                                (info.nRefCount < ADDRMAN_NEW_BUCKETS_PER_ADDRESS)
                               )
                            {
                                info.nRefCount++;
                                vNew.insert(nIndex);
                            }
                        }
                    }
                }
            )

#else
And in serialize.h :
Code:
#ifdef _MSC_VER
#define IMPLEMENT_SERIALIZE(statements)    \
    unsigned int GetSerializeSize(int nType, int nVersion) const  \
    {                                           \
        CSerActionGetSerializeSize ser_action;  \
        const bool fGetSize = true;             \
        const bool fWrite = false;              \
        const bool fRead = false;               \
        unsigned int nSerSize = 0;              \
        ser_streamplaceholder s;                \
        assert(fGetSize||fWrite||fRead); /* suppress warning */ \
        s.nType = nType;                        \
        s.nVersion = nVersion;                  \
    std::map<int, int>  mapUnkIds;  \
        {statements}                            \
        return nSerSize;                        \
    }                                           \
    template<typename Stream>                   \
    void Serialize(Stream& s, int nType, int nVersion) const  \
    {                                           \
        CSerActionSerialize ser_action;         \
        const bool fGetSize = false;            \
        const bool fWrite = true;               \
        const bool fRead = false;               \
        unsigned int nSerSize = 0;              \
        assert(fGetSize||fWrite||fRead); /* suppress warning */ \
    std::map<int, int>  mapUnkIds;  \
        {statements}                            \
    }                                           \
    template<typename Stream>                   \
    void Unserialize(Stream& s, int nType, int nVersion)  \
    {                                           \
        CSerActionUnserialize ser_action;       \
        const bool fGetSize = false;            \
        const bool fWrite = false;              \
        const bool fRead = true;                \
        unsigned int nSerSize = 0;              \
    std::map<int, int>  mapUnkIds;  \
        assert(fGetSize||fWrite||fRead); /* suppress warning */ \
        {statements}                            \
    }
#else
Try that on your MSVC++ 2012 preprocessor/first pass! I think it will like it! My MSVC++ 2005 SP1 seems to digest it just fine.  I know it is kind of an engineering hack to just make it work, But I'm an engineer!  Software, hardware.  We just make things work.  It's sort of like what physicists do to mathematics Grin

Quote

 If I remove the extra parens, the MSVC preprocessor actually truncates the source so I think I have a good case for opening up a MS tech support ticket but I can't stomach that right now.

Quote
I am very curious, needless to say, how you have built your levelDB static .lib file! 

I built the whole 0.8.6 source from the distribution in the setup file, which includes the levelDB source--I never went to google to get it.  In other words, I installed 0.8.6 Bitcoin and used the src directory that ships with the installation.  I never had trouble building levelDB but I did create the project file from scratch.  I have no idea if my port of Bitcoin would pass all regression tests but it seems to work for me on testnet.

Just made a static library project for leveldb source tree, right out of the bitcoin sources. Actually downloaded all the versions too, from
https://code.google.com/p/leveldb/downloads/list
from 1.9 to 1.15, since bitcoin used 1.9 in 0.8.1  They all have the same directory "shape" as the leveldb directory in bitcoin.  Then "exclude from project" all the ones that say *_test.cc and *_bench.cc, "exclude" all port_*.* except port_win.*, ditto for env_*.cc except env_win.cc.  I kept memenv_test.cc because that is what bitcoin does when it builds its .a files?  That's about it. I don't even think you have to add LEVELDB_PLATFORM_WINDOWS to the prepocessor definitions? I think it "knows"?  Don't remember.  Oops, it seems I forgot a lot!  I worked from this:
http://leveldb.googlecode.com/git-history/windows/WINDOWS
Add each _test.cc, _bench.cc back in one at a time, compile (as and exe) any run them.  I did and the code passed all its own tests.  I think 12 of the 15, the other 3 need environment variables to drive the tests and I couldn't find any guidance on that Embarrassed  Another "how to build static libraries" videos seems needed!
Quote
Also, to continue from my personal message, one of the reasons I am publishing this is because I would like to see the mainstream financial world take a closer look at Bitcoin. 
I agree.  But I think you are too kind Grin   I want every desktop Windows machine on the internet using bitcoin! If you saw my link,
http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0 in a previous messages here, there are 9 times more Windows desktops on the internet, that can be running full clients than all the others (Linux, mac, etc.) combined!   So I think that what you and I are doing is great!
Quote
I know from experience that many mainstream corporate software developers (at least the ones I know) will *NOT* enthusiastically embrace MinGW, gcc, etc, unless, maybe, if it involved Android.  But on Windows?? No way.   But the main reason is because I wanted to learn how it works and MSVC is great for stepping through code in debug. 
Absolutely! And the full screen real time debugger can do much more (this is to whet the appetite of those gcc-ers who have never seen a VC++ IDE in incremental link edit-compile-link-debug).  You can even edit while debugging and continue debugging!  All local variables, and automatics, globals, displayed in hex or decimal, with the ability to follow all the classes, members, derived, overloaded, resolved,..., watch points, intellisense,...  It may have been one of the few things that Microsoft got right. Oh and it can compile all of it for the ARM and other processor architectures too.  And it's all free with the Express editions.  The VS (Visual Studios) that one pays for have even more goodies. Even program guided optimization for those with the time and desire!  I'm not really trying to sell it since it is free Shocked  And it can help you edit and understand your code even if you stay in gcc!  Its  "solution explorer in Class View" shows all the classes, etc. etc.
Quote
 And then I thought it would be nice if I share my work Smiley
I thank you for that.  I will too, when I can get it to honestly save a new block (every time)!  It's close. I think I am getting some "deadlock" conditions while "-reindex"-ing and "compacting"?  Not always, leveldb will "corrupt" the last index file (.sst file in the chainstate directory) and drop out, letting bitcoin start to connect to peers.  Then random "deadlocks" occur in the net.cpp thread ThreadSocketHandler().  Back to debugging.

You know what Brian Kernighan said about debugging:
http://en.wikiquote.org/wiki/Brian_Kernighan

Ron


LTC: LUYiMVsrFQewUSPDasSKGzhyTPAkiTeSov BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
RoadTrain
Legendary
*
Offline Offline

Activity: 1386
Merit: 1009


View Profile
January 14, 2014, 03:56:56 PM
 #343

So do I still need older mingw32 4.6.2 to compile old altcoins?
old c coder
Sr. Member
****
Offline Offline

Activity: 260
Merit: 250



View Profile WWW
January 14, 2014, 05:49:09 PM
 #344

So do I still need older mingw32 4.6.2 to compile old altcoins?
Don't quite know what or whom you are addressing?  But I'd say that it depends on the *coin?  Which version of which coin are you referring to?  And if the "makefile" for the old coin has a line such as
BOOST_SUFFIX?=-mgw46-mt-sd-1_52
or
   -lboost_thread-mgw46-mt-sd-1_53 \
then it sure looks like you need gcc 4.6.2 unless you change your makefiles yourself, and test yourself, and build the libraries yourself.

Hope this helps.

Ron


LTC: LUYiMVsrFQewUSPDasSKGzhyTPAkiTeSov BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
RoadTrain
Legendary
*
Offline Offline

Activity: 1386
Merit: 1009


View Profile
January 14, 2014, 06:19:24 PM
 #345

So do I still need older mingw32 4.6.2 to compile old altcoins?
Don't quite know what or whom you are addressing?  But I'd say that it depends on the *coin?  Which version of which coin are you referring to?  And if the "makefile" for the old coin has a line such as
BOOST_SUFFIX?=-mgw46-mt-sd-1_52
or
   -lboost_thread-mgw46-mt-sd-1_53 \
then it sure looks like you need gcc 4.6.2 unless you change your makefiles yourself, and test yourself, and build the libraries yourself.

Hope this helps.

Ron
I had problems compiling coins based on 0.7 code with gcc 4.7
Changing makefiles didn't help, as far as I remember it compiled but crashed at startup.
There were some internal changes introduced in gcc 4.7 that caused this behavior. That's why I had to use 4.6.
I mean, are there problems still or things changed?
I plan to try to compile this, can anyone try?
https://github.com/CryptoParts/GlobalCoin
Claire123
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
January 14, 2014, 06:56:59 PM
 #346

Thanks, Ron, for the serialize.h and addrman.h code changes--they work and I've checked them into my codeplex project.  Now I don't have the weird preprocessor output in the addrman.h code anymore.

Cheers  Smiley
skatola
Newbie
*
Offline Offline

Activity: 31
Merit: 0


View Profile
January 16, 2014, 02:35:13 AM
 #347

Hi and thank you so much for this amazing guide!
like a lot of people i tried to follow your tutorial and like a lot of people i have a problem XD hope u can help me : )
at the step 3.3, after i edited the makefile.mingw i launch mingw32-make -f makefile.mingw and i receive this error:

C:\bitcoin-0.8.6\src>mingw32-make -f makefile.mingw
g++ -c -mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-par
ameter -g -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADS
AFE -DUSE_IPV6=1 -IC:/bitcoin-0.8.6/src/leveldb/include -IC:/bitcoin-0.8.6/src/l
eveldb/helpers á-I"C:/bitcoin-0.8.6/src" á-I"c:/deps/boost_1_55_0" á-I"c:/deps/d
b-4.8.30.NC/build_unix" á-I"c:/deps/openssl-1.0.1e/include" -o obj/alert.o alert
.cpp
g++.exe: error: á-IC;C:\MinGW\msys\1.0\bitcoin-0.8.6\src: Invalid argument
g++.exe: error: á-Ic;C:\MinGW\msys\1.0\deps\boost_1_55_0: Invalid argument
g++.exe: error: á-Ic;C:\MinGW\msys\1.0\deps\db-4.8.30.NC\build_unix: Invalid arg
ument
g++.exe: error: á-Ic;C:\MinGW\msys\1.0\deps\openssl-1.0.1e\include: Invalid argu
ment
makefile.mingw:124: recipe for target 'obj/alert.o' failed
mingw32-make: *** [obj/alert.o] Error 1


i tried to solve alone but i can't : (
any idea what i did wrong?
thank you for your help!
old c coder
Sr. Member
****
Offline Offline

Activity: 260
Merit: 250



View Profile WWW
January 16, 2014, 05:27:29 AM
 #348

Hello skatola,

Hi and thank you so much for this amazing guide!
like a lot of people i tried to follow your tutorial and like a lot of people i have a problem XD hope u can help me : )
at the step 3.3, after i edited the makefile.mingw i launch mingw32-make -f makefile.mingw and i receive this error:
Here it is running from C:\bitcoin-0.8.6\src
Quote
C:\bitcoin-0.8.6\src>mingw32-make -f makefile.mingw
Now gcc launches to compile alert.cpp into obj/alert.o
Notice that alert.cpp is the first in the list of files to be compiled in makefile.mungw, so none have successfully compiled so far.
Quote
g++ -c -mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-par
ameter -g -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -DBOOST_SPIRIT_THREADS
AFE -DUSE_IPV6=1 -IC:/bitcoin-0.8.6/src/leveldb/include -IC:/bitcoin-0.8.6/src/l
eveldb/helpers á-I"C:/bitcoin-0.8.6/src" á-I"c:/deps/boost_1_55_0" á-I"c:/deps/d
b-4.8.30.NC/build_unix" á-I"c:/deps/openssl-1.0.1e/include" -o obj/alert.o alert
.cpp
Now gcc fails saying that the src files that I presume are in C:\bitcoin-0.8.6\src by the above, are now presumed by gcc to be in C:\MinGW\msys\1.0\?  So something did a change directory?  Also note that the include  directories seem also to be changed for gcc by the same change directory.  Also are you doing what this shows:
1. Have a c:\deps directory for all your "dependencies"?
2. Are you compiling bitcoin 0.8.6?
3. Are you using Boost 1.55?
4. Are you using BerkeleyDB 4.8.30?
That is what it is saying, but those seemed pretty "canned".  Maybe you didn't do step 3.2 that says you must edit the make file to match your particular layout.  Unless of course you match the layout exactly, i.e. have things on c:, have a c:\deps, etc. etc.
Quote
g++.exe: error: á-IC;C:\MinGW\msys\1.0\bitcoin-0.8.6\src: Invalid argument
g++.exe: error: á-Ic;C:\MinGW\msys\1.0\deps\boost_1_55_0: Invalid argument
g++.exe: error: á-Ic;C:\MinGW\msys\1.0\deps\db-4.8.30.NC\build_unix: Invalid arg
ument
g++.exe: error: á-Ic;C:\MinGW\msys\1.0\deps\openssl-1.0.1e\include: Invalid argu
ment
Now mingw32-make notices and you stop
Quote
makefile.mingw:124: recipe for target 'obj/alert.o' failed
mingw32-make: *** [obj/alert.o] Error 1


i tried to solve alone but i can't : (
any idea what i did wrong?
thank you for your help!

Ron


LTC: LUYiMVsrFQewUSPDasSKGzhyTPAkiTeSov BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
nitrogenetics (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 108



View Profile
January 19, 2014, 02:14:57 PM
 #349

Boost 1.55 seems to be broken for me.
When I run
Code:
bootstrap.bat mingw
I got some errors like:
"VCVARS32.BAT is not recognized as an internal or external command" like in this thread: http://b1te.de/5N
So I moved to Boost 1.54 and I can run
Code:
bootstrap.bat mingw
now without any problems.

See if this fix helps:
https://groups.google.com/d/msg/boost-developers-archive/hVNKGbZcXs0/fIh-iK-DVOMJ


Actually I got a problem to create the Bitcoin-qt.
I got messages like CC is not found.
Code:
C:\testcoin>mingw32-make -f Makefile.Release
cd C:/testcoin/src/leveldb && CC=gcc CXX=g++ TARGET_OS=OS_WINDOWS_CROSSCOMPIL
E mingw32-make OPT="-pipe -fno-keep-inline-dllexport -D_FORTIFY_SOURCE=2 -O2" li
bleveldb.a libmemenv.a && ranlib C:/testcoin/src/leveldb/libleveldb.a && ranl
ib C:/testcoin/src/leveldb/libmemenv.a
Der Befehl "CC" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Makefile.Release:317: recipe for target 'C:/testcoin/src/leveldb/libleveldb.a
' failed
mingw32-make: *** [C:/testcoin/src/leveldb/libleveldb.a] Error 1

-> But CC = gcc is specified and it worked to create the headless version.
I use Qt 5.2 maybe I should try it with another version.

Did you remove leveldb build instructions from your .pro file?

BTC: 1NWQ4TarCCC7j1XY26KRFFEtLYbPP6S3DH
XRP: rJkbeyRaUYDmcukEyLYVfn56QDM9VhybZG
palunix
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
January 27, 2014, 10:55:37 AM
 #350

I faced this problem can anyone help me to solve it.

https://i.imgur.com/ZENAqIl.png

gcc 4.6.2
thread model: win32
gginer
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
January 29, 2014, 03:44:57 PM
 #351

I have followed your guide and I'm stuck here:


I have been able to compile alt-coins based on Litecoin 0.7 but this one based on latest 0.8.6 is giving me lots of problems.

Someone knows where can be the problem?

I have been reading for the last two days about this error. I have tried changing flag order to see if it was working, compiling my own leveldb, using the ones coming with Litecoin...

Energycoin - Save Energy, Pure POS (Free IPO).  eP14cFcoFzszt3CiiBMyir8kjKLFRqMqJ5
gginer
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
January 30, 2014, 02:51:30 PM
 #352

UP, still stucked!

Energycoin - Save Energy, Pure POS (Free IPO).  eP14cFcoFzszt3CiiBMyir8kjKLFRqMqJ5
gginer
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
January 31, 2014, 09:51:58 PM
 #353

I have followed your guide and I'm stuck here:


I have been able to compile alt-coins based on Litecoin 0.7 but this one based on latest 0.8.6 is giving me lots of problems.

Someone knows where can be the problem?

I have been reading for the last two days about this error. I have tried changing flag order to see if it was working, compiling my own leveldb, using the ones coming with Litecoin...

Nobody can help me? I'm getting crazy with this!

Energycoin - Save Energy, Pure POS (Free IPO).  eP14cFcoFzszt3CiiBMyir8kjKLFRqMqJ5
gaston909
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250



View Profile
February 01, 2014, 07:16:59 PM
 #354

I have given up with this stuff.
deaconboogie
Full Member
***
Offline Offline

Activity: 138
Merit: 100


View Profile WWW
February 04, 2014, 02:16:18 PM
 #355

I am so close here, guys...

I can get the non-static (binary download of Qt) to build my wallet, but obviously it doesn't have the QtCore4 and other libraries statically linked.

I downloaded the 4.8.5 source per the first post and configure it. That works great.

mingw32-make ultimately craps out with moc.exe throwing "the procedure entry point __gxx_personality_v0" errors during compile.

This is maddening...

Mooncoin: 2F4E859vh1ezhpdDnMZdcR4hS1gLn54ytf
BTC: 18S8XiKvFVhw6avx9tB21EHd3gNgomBFCK
gginer
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 05, 2014, 11:29:52 PM
Last edit: February 06, 2014, 09:32:42 AM by gginer
 #356

I have managed to compile Litecoin 0.8.6 wallet without errors on closing but it has an awful windows 95 look. Why is that happening?

Energycoin - Save Energy, Pure POS (Free IPO).  eP14cFcoFzszt3CiiBMyir8kjKLFRqMqJ5
deaconboogie
Full Member
***
Offline Offline

Activity: 138
Merit: 100


View Profile WWW
February 06, 2014, 04:40:21 PM
 #357

Getting a clean compile, but an executable that crashes with the following error:

"EXCEPTION: N5boost10filesystem16filesystem_errorE
boost::filesystem::status: The operation completed successfully: "C:
\Users\Deacon\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\Startup\Mooncoin.lnk"
C:\deps\mooncoin\release\mooncoin-qt.exe in Runaway exception"

Any ideas or suggestions?

Mooncoin: 2F4E859vh1ezhpdDnMZdcR4hS1gLn54ytf
BTC: 18S8XiKvFVhw6avx9tB21EHd3gNgomBFCK
olu
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
February 08, 2014, 10:36:18 PM
Last edit: February 09, 2014, 10:06:10 AM by olu
 #358

Don't know if Ron and Nitro are still reading this, but thanks for the guide.  I have grown from a complete novice to an intermediate crypto-phile/C++ coder thanks to this guide, and am launching a crypto currency of my own soon (*in Morgan Freeman's voice*: and thus the life-cycle of a crypto-currencyphile is complete).  Anyway, I will look into the moon coin issue.  If anyone wants to help with the new crypto-currency, please contact me at o.m.agunloye@gmail.com.  Looking for helpful tips, potential devs, and of course people who want some coin for work (which is part of the coin design, btw; getting paid to crowd-source popularity).  Yes, I won't tell you what the currency is in public (I don't want to get bashed for poor coding skills in public when my skills are decent and you could easily just ask to look at the code in private to help me out).  Anyway, big thanks to everyone here who asked questions because while I never did, I learned more from your questions here (and on other websites I stalked your similar posts to) than I did reading any help guide (nitro's excluded of course).  Thanks again, and email me. I want people I learned from to help out with this new coin: it'll be fun, I promise.

                                                                          -- Olu
roundrobin
Full Member
***
Offline Offline

Activity: 203
Merit: 100


View Profile
February 08, 2014, 11:29:49 PM
 #359

I have managed to compile Litecoin 0.8.6 wallet without errors on closing but it has an awful windows 95 look. Why is that happening?

How? Depending on what versions of gcc, boost, openssl and bdb I use results can be anything from refusing to link, refusing to start up due to "wallet db error", or crashing on exit. Man, I hate Windows...

I use Qt 4.8.5, gcc 4.4.0, boost 1.50, berkeley db 4.80, and openssl 1.0.1c currently, as I know these are used in several other working wallets, including a few Litecoin 0.8.6 forks that run perfectly.

   LTC: Lbha3tRmE75oHfF4SjSKpxVK2fY9PxrPUX         VTC: VguAuTdGRcQzihEgrJDYPYUuugGMMGFCNn
   FTC: 6fVWQ3eHhhgH1haqThQbxTFV8XjrqyuKY2          SOL: 8X6dLCY8MeZ6RNdBxzYQkd5kxWj8VVPJmL
DOGE: DMBQta9ME9cWnRPVXtEbi57CDk1uNpwzSh
olu
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
February 09, 2014, 03:39:49 AM
Last edit: February 09, 2014, 10:08:49 AM by olu
 #360

Trying to establish a genesis based off of litecoin-master-0.8 that I compiled myself, but even after finding and replacing the merkle hash, upon running the daemon from cmd it closes after saying assertion failed (which it should according to: https://bitcointalk.org/index.php?topic=225690.0).


Where one SHOULD see

if (true && block.GetHash() != hashGenesisBlock)

in src/main.cpp, one sees

uint256 hash = block.GetHash();
        printf("%s\n", hash.ToString().c_str());
        printf("%s\n", hashGenesisBlock.ToString().c_str());
        printf("%s\n", block.hashMerkleRoot.ToString().c_str());
        assert(block.hashMerkleRoot == uint256("0xa73e546160e2999f9f17fcfc76c422a04b00acd5846a90a784593951b0987380"));
        block.print();
        assert(hash == hashGenesisBlock);

the debug log in AppData/Roaming/njknjk  shows

2014-02-09 03:05:13 dbenv.open LogDir=C:\Users\Oluwamide\AppData\Roaming\njknjk\testnet3\database ErrorFile=C:\Users\Oluwamide\AppData\Roaming\njknjk\testnet3\db.log
2014-02-09 03:05:14 Opened LevelDB successfully
2014-02-09 03:05:14 LoadBlockIndexDB(): last block file = 0
2014-02-09 03:05:14 LoadBlockIndexDB(): transaction index disabled
2014-02-09 03:05:14 Initializing databases...
2014-02-09 03:05:14 87b15726e7233bc939a8c0f72b2396867fc6bbb77eba30aec67869e7ef6c0942
2014-02-09 03:05:14 f5ae71e26c74beacc88382716aced69cddf3dffff24f384e1808905e0188f68f
2014-02-09 03:05:14 a73e546160e2999f9f17fcfc76c422a04b00acd5846a90a784593951b0987380

as the last couple of lines

whereas the debug log in AppData/Roaming/njknjk/testnet3 is COMPLETELY blank....

help?
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 »
  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!