Bitcoin Forum
June 23, 2024, 06:02:51 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 »
1  Bitcoin / Development & Technical Discussion / Re: Snap QR image from screen and import as a wallet or send to address on: April 08, 2014, 12:04:08 AM
What do you require of others who want to use your work in their own coins?

I don't require anything.  I implemented it for anyone to use.  Have fun with it Smiley

Claire
2  Bitcoin / Development & Technical Discussion / Re: (Now At Github) Bitcoin 0.8.6 for *VS2013* (32 and 64 bit) and Qt5.2 on: April 06, 2014, 02:53:56 PM
Hi Ron,  I used Adobe Captivate and a Plantronics C420-M headset (wired).  I chose the headset because it looked to be the most comfortable since I have to wear it quite a bit for my work.  Also, I know you can drag and drop folders into VS but it's really cool that cmake will also set up all the special compile and link options you want.  The hard part is with Qt files if you don't have the VS Qt plugin.  I want to see if cmake can automate that part.  I've read that it can but I have not had time to look into yet.

Claire Smiley
3  Bitcoin / Development & Technical Discussion / Re: (Now At Github) Bitcoin 0.8.6 for *VS2013* (32 and 64 bit) and Qt5.2 on: April 04, 2014, 03:17:27 PM
build 0.9.0 really?

I am considering doing a port of 0.9.0 to VS2013, but I won't promise anything.  I am currently having fun and learning new things with other projects:

https://bitcointalk.org/index.php?topic=555155.0

I also want to learn more about cmake and possibly using that to create Visual Studio project files instead of writing them myself.
4  Bitcoin / Development & Technical Discussion / Snap QR image from screen and import as a wallet or send to address on: April 03, 2014, 03:35:08 AM
I implemented a feature in a test coin to snap a region of your screen which contains a QR code.  This new dialog is used in two places:you can send coin to a snapped address or import a snapped private key as a wallet.  The snapped region is converted to an image and sent to a library to be decoded into a string.

To show you how it works, I made a short (3 minute) video where I demo the feature on Windows, Mac OS X (10.9.2), and Ubuntu:

http://youtu.be/5NCiHGIMB2c

The source code featured in the video is available here:

https://github.com/ClaireDuSoleil/Legocoin

This new feature uses the ZebraCrossing library.  This library was originally written in Java and ported to C++.    In order to decrease the size of the download and make some minor changes so it compiles properly on all three platforms, I made my own version:

https://github.com/ClaireDuSoleil/ZebraCrossing

ZebraCrossing is pretty easy to compile on all three platforms using cmake.  I didn't even create a VS project for it.  The batch file I wrote simply runs cmake to create the VS2013 project files and then runs msbuild to create the library.  This batch file is located in the build-helpers directory in the legocoin repository, along with batch files to build all the other dependencies in VS2013.  Please see the README in the MSVC folder for more information.

Other notes: the snap feature uses Qt5.  It will need some rework if you want to use Qt4.

If you happen to try this out and find any problems, please let me know.
5  Bitcoin / Development & Technical Discussion / Re: (Now At Github) Bitcoin 0.8.6 for *VS2013* (32 and 64 bit) and Qt5.2 on: March 14, 2014, 01:36:05 PM
Congratulations, Ron  Grin

I have updated the opening post with new information.  As promised, I have project files and build scripts now for VS2013.  But, now, they are on Github.   The projects at codeplex will remain 0.8.6 and VS2012.
6  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin (and Litecoin) 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: March 03, 2014, 06:47:06 PM
I modified the batch files that build Qt 32 and 64 to specify the visual studio version before building:

set VisualStudioVersion=11.0

This may solve issues with building Qt using VS2012 when you also have VS2013 installed.

I will be upgrading the project files to VS2013 in the next few weeks.
7  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin (and Litecoin) 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: March 02, 2014, 09:50:00 PM
Thanks, I will fix the boost batch file.  I never had any problem so I guess it was defaulting to the correct toolset on my system.  I don't have VS2013 installed yet.
8  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin (and Litecoin) 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: March 02, 2014, 03:42:31 PM
Thank you for finding the upnp issue! Smiley  I have checked in a fix for the batch file.  When I was first working on the miniupnp code to create a suitable project file, I forgot that I had copied the .in to a .h to get it all to build and work.  My batch file doesn't put any meaningful information into those two strings but I don't think that will cause a problem. If it does, however, I can just create my own version of the .h file and copy it over to use for the miniupnp build.

As far as your Qt64 build issue, it sounds like an issue with dynamic vs static libs.  The statement in the batch file that calls perl to change the build options from dynamic to static in the qmake.conf file must run correctly.  If you are using a different version of VS, like 2010, then the batch file needs to modify a qmake.conf file in a different directory (as well as other changes)  Also, if you start building and anything goes wrong, don't start over unless you have a clean copy of the qt distribution.  It's pretty picky.   I hope this helps.

Thanks for trying all this out--I really appreciate it!

By the way, I have never used mingw on this machine--a Win 8 64 bit.  I did install mingw and built the bitcoin daemon only on another Windows system and that experience convinced me that something needed to change  Grin
9  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin (and Litecoin) 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: February 28, 2014, 05:09:13 PM
Thanks, I updated my readme to include download links for the perl and python packages.

I'm pretty sure that nasm.exe and nasmw.exe now come with VS2012, at least the Ultimate version.

I really don't remember downloading them but don't have a fresh install to check.
 I could be wrong Smiley

However, I also use VS2010 and that didn't come with any nasm exe files which is why I used Netwide in the past.

Edit.  I was wrong.  I had an old version of nasm lying around.  I will update my readme again.  Thanks!
10  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin (and Litecoin) 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: February 28, 2014, 04:09:09 PM
What is missing from these instructions is that it requires perl and nasm to be installed, and paths to be set up to it.
Actually, I put a readme file in the build helper directory that says this:
Quote
These batch and project files build all the dependencies you need for the *coin daemon and Qt application, both 32 and 64 bit versions. But you need to fix them up before you can use them. The first thing you should do is move this folder to the root of your BitcoinDeps directory. You also need to make sure that ActivePerl is in your path and MSVC12 is installed in it's normal place. If not, edit the batch file as needed.
This readme is located here:
https://bitcoinqtmsvc2012.codeplex.com/SourceControl/latest#MSVC/BuildHelpers/README-FIRST.md

As far as nasm goes, I am using the nasm that comes with VS.  But in the past I have used the Netwide Assembler.  Is there any advantage to switching?
11  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin (and Litecoin) 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: February 16, 2014, 04:48:34 PM
Got it to work by building qt 4.8.5 using mingw and then copying lrelease in the bin folder of qt 5.1.1

Hi TechAU, I'm glad you got it working Smiley  For future reference and for others reading this, if you have the prerequisites installed, like Active-Perl and MSVC 12, then the batch files I wrote should build all of Qt, including lrelease:

https://bitcoinqtmsvc2012.codeplex.com/SourceControl/latest#MSVC/BuildHelpers/

This directory holds all the batch files.  You can look at buildqt32.bat to see what it's doing.  Note that the batch file does need to be edited for your directory locations and to update the configure line for your build location of OpenSsl.  Don't forget that part because if it starts building and can't find openssl, then you will have to start over with a clean copy of the qt distribution--at least I have to start over.

But if you are using some other build of Qt and don't want to deal with the translations, you can just delete the TS files from the project.  They aren't required unless you want to see the different languages.


Hi Claire and other C++ experts

Hi Ron, I'm glad you got the release mode working.  I think it was much easier for me being on a newer version of MSVC.  My first versions of the project did set the ITERATOR_DEBUG_FLAG off but I decided to see if I could get it turned back on by making some code changes to those vectors.   If I have time, I might remove some of the #ifdef statements dealing with CBlockIndexWorkComparator to see if the code compiles and works on Linux.  But, I've been swamped with work from my day job, which has morphed into getting Asterisk up and running on Red Hat so now it's vi and bash all the time for me...

By the way, I think you are the C++ expert here!  I just learn enough to be productive.  Every now and then I will refer to the Stroustrup book if I have to figure out code written by the real experts but I don't crack it open for pleasure reading...Smiley

12  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin (and Litecoin) 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: February 07, 2014, 03:49:22 AM
Sorry, I cannot help with VS 2013.

I created an Ubuntu 12.04 64-bit virtual machine and built the Qt application from my latest source (as of today) and ran for a while to make sure that it downloaded blocks without errors.  I used the .pro file from the github 0.8.6 branch, which required a slight tweak to compile with Qt 5.1...I know it's not an exhaustive test but I tried Smiley

Also, the first post has been updated with new information and a link to my new codeplex project for a port of Litecoin source.
13  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin 0.8.6 to VS2012 (32 and 64 bit) and Qt5 on: January 14, 2014, 07:15:01 PM
I have received some private messages and emails asking me some questions so I thought I would post an update here.

Quote
1) As I understand it, it would be great if it could be a part of the main development project - do you think that would be realistic? It would require to make a few changes to the source code, for example some invocations of the IMPLEMENT_SERIALIZE doesn't compile with msvc, and also some other minor things. But the code should certainly be able to be modified to compile in both mingw/linux/msvc. Because as I understand it, you are now basically maintaining separate modified sources for this to work.

2) Would you consider to move all 3rd party libraries into your project? I tried it just today, and for example openssl and boost libraries can be comfortably added to the MSVC project through the NuGet Manager - no need to download, install, and compile them separately. Also the berkeley-db, it's just a bunch of headers and libs, it could be added directly to the project. Also the QT is doable, since we use it at my work, and we just integrated the sources to our source code tree and compile it together with our files. This way, people could just download the msvc solution and it would work out of the box without the need to install anything else.

3) Debugging: Please, did you manage to debug with Visual Studio? My problem is, that the blockchain is being downloaded (using the debug version of the bitcoinqt from your project), but at certain point, there are some nonstandard transactions there, which are handled by try/catch block - there are some invalid indexes to std::vector, which causes exceptions, and those are properly handled by the catch(...). But, every time this exception occurs, the exception dialog box is invoked in Visual Studio, and I must click "Continue"...but this happens hundreds of times, making the debugging practically impossible. I just didn't find any way how to permanently suppress those dialogs (so the breakpoint will not be invoked when handled exception occurs).

1. I really don't have specific plans.  I'm basically learning as I go here, although I'm trying to help out where I can.  I'm may start looking into resurrecting my github project and submitting the changes one or two files at a time, to see if they get accepted.  I'm not sure the Bitcoin team cares about MSVC but I may try a pull request to see what happens.  I need to spend some time learning github better, first, though.  My fear is that they won't want the solution and project files added to the official Bitcoin project.

2.  I'd rather not clutter up the solution any more than it already is.  I feel funny enough having put the QR code project in there now.  I use Qt and openssl in my work as well, but I think my team mates would have a fit if I tried to put them into the solution.  Currently, I build Qt/OpenSsl and give everyone the output in a zip file.  That seems to work the best, especially since we often have to switch back and forth between Qt versions.

3.  Yes, I have run the Bitcoin Qt app extensively in debug mode.  I had to make some code changes to avoid aborts due to the extra error checking in the MS version of the STL.  All the code changes I made for debug mode should be compatible with mingw.  Here is one example but there are several more:

https://bitcoinqtmsvc2012.codeplex.com/SourceControl/changeset/31241

14  Bitcoin / Development & Technical Discussion / Re: Building headless Bitcoin and Bitcoin-qt on Windows on: January 14, 2014, 06:56:59 PM
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
15  Bitcoin / Development & Technical Discussion / Re: Building headless Bitcoin and Bitcoin-qt on Windows on: January 13, 2014, 05:45:26 PM
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

 
16  Bitcoin / Development & Technical Discussion / Re: Building headless Bitcoin and Bitcoin-qt on Windows on: January 11, 2014, 08:29:36 PM
That is why I'm trying to offer an alternative build platform for Windows. The bitcoin source is the same. Not changed at all. Except with changes as above. It should (famous last words) be easier to pretty up a windows version in MSVC than in Qt. At least it seems so to me at this time. Qt is fine but it seems to have a lot of compatibility issues with its compiler, its libraries, etc.

Have you seen my thread on building BitcoinD and BitcoinQt using MSVC?

https://bitcointalk.org/index.php?topic=349094

Are you saying you want to get rid of Qt and use native Windows GUI?

I wonder if you could just turn the daemon into a DLL and then put a C# wrapper around it?  I've discovered that doing a GUI in C# is way easier than Qt.

Also, concerning the aborts when closing the application: when I was porting the latest bitcoin source (the unreleased latest from github) to MSVC about a month ago, I found a bug in their shutdown sequence that caused aborts.  It was due the shutdown unwinding the bitdb object which needed to be explicity closed() first.  The abort was happening in the boost string code and was difficult to track down.

https://github.com/ClaireDuSoleil/bitcoin/commit/9987452a5d9c37afa8abf12abe85fc9429a3fb36

I don't know if this is what is causing this user's problem but I thought I would mention it.
17  Bitcoin / Development & Technical Discussion / Re: Ported Bitcoin 0.8.6 to VS2012 (32 and 64 bit) and QT5 on: December 29, 2013, 05:03:07 PM
It sounds like Qt did not get built properly or else moc.exe is not where the BitcoinQt project is expecting it to be.  Any .h file that contains a Q_OBJECT declaration must be processed by the Qt moc tool and moc.exe is something that needs to be built when you build Qt.  The BitcoinQt project expects it here:

"..\..\bitcoindeps\qt-everywhere-opensource-src-5.1.1\qtbase\bin\moc.exe" 

If this path does not exist, you will see that error.   Congratulations on your progress so far!  Smiley

The Qt plugin makes it easier to control or modify the location of the Qt but I didn't want to force people to install the plugin and the BitcoinQt project is not setup to use it which is why all paths are hardcoded in the project file.  It's ugly, I know.


I may not have internet access for a few days so future replies may be delayed--sorry about this.
18  Economy / Service Discussion / Re: BREAKING NEWS- Coinbase Logins Failing on: December 20, 2013, 10:17:03 PM
I think they are having issues with anyone who selected the option to not bother them for 30 days with the 2nd login verification.  Instead of telling you there is a problem, it just endlessly asks you to login and fails.  It should just have you do the 2nd step when it can't verify your identity using old cookies.   Hopefully, they will fix this on their website.

The workaround is to delete your coinbase cookies and refresh the login page.
19  Economy / Service Discussion / Re: wtf is up with coinbase on: December 20, 2013, 09:46:00 PM
Delete your cookies and refresh the coinbase page and try again.  That worked for me.
20  Economy / Service Discussion / Re: BREAKING NEWS- Coinbase Logins Failing on: December 20, 2013, 09:34:29 PM
I got it working and displaying in Firefox by deleting all my coinbase cookies, refreshing the page, and logging in again.  I had to go through the 2 step verification, though, since I deleted my cookies.

Pages: [1] 2 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!