Author

Topic: [ANN][YAC] YACoin ongoing development - page 163. (Read 379873 times)

sr. member
Activity: 266
Merit: 250
Has anyone made a yacoind.exe for windows yet?
hero member
Activity: 637
Merit: 500
Before we can build a Windows installer, there's a few decisions to be made about how to deal with the Windows build issues.  Hanzac has published info in this thread for what to tweak to build the Windows version of the QT client w/o SSE enabled, as SSE breaks compilation of the scrypt-jane library.  Someone PM'd me a tip last week that changes were pushed to the scrypt-jane GitHub repository that fix Windows compilation issues, but I have not yet had a chance to pull them and verify whether that makes the issue go away. 

I have tested the latest scrypt-jane library and had no problems with SSE, although I don't recall having issues with SSE before ...
Maybe I can try to fork you and include the latest scrypt-jane library to test. The windows building instructions could also be improved, they come from NVC source and are pretty useless right now (I mean the ones under the /doc folder).
sr. member
Activity: 347
Merit: 250
As a first step, just having an installer that installed shortcuts to launch:
1. the QT interface
2. a bat file that queried yacoind for the primary wallet address on startup, and then launched minerd with the top 3 p2pools, specifying that address to receive payment for both
3. a link to a howto document on mining, selling YaCoin on the exchanges, etc
(4. allowed that bat file to be autolaunched at startup (e.g. added to the Startup group under windows)

A few days ago I started scripting up a Windows installer using NSIS (an open source Windows installer builder created by Nullsoft, sorta like a "lite" variation of the InstallShield tools).  It's just for installing the QT client itself though and not most of the other items in the above list, which would itself be a pretty big step over the current state of things.

Before we can build a Windows installer, there's a few decisions to be made about how to deal with the Windows build issues.  Hanzac has published info in this thread for what to tweak to build the Windows version of the QT client w/o SSE enabled, as SSE breaks compilation of the scrypt-jane library.  Someone PM'd me a tip last week that changes were pushed to the scrypt-jane GitHub repository that fix Windows compilation issues, but I have not yet had a chance to pull them and verify whether that makes the issue go away.  Possible build strategy to keep the number of large'ish EXE's down in the installer could be to include a 32-bit EXE w/o SSE, and a 64-bit EXE w/ SSE enabled (assuming the new version of the scrypt-jane library unbroke that on Windows), with the installer making the choice of which EXE to install based on CPU type and Windows version (or allowing the user to force one version or other through some "Advanced" settings section in the installer).

On #2, anyone have further thoughts on whether a third-party miner (cpuminer) should indeed be included in the main YACoin installer, or if that would be better divided into a 2nd, different installer?  Same for selecting which p2pools to sort of "endorse" as part of the installer, when we know that p2pools are going to be a fast-moving target and any that are selected might randomly disappear or misbehave in the future, causing basically broken shortcuts unless someone is constantly checking for new versions of the client installer.

If anyone wants to do development work that will feed back to my unofficial version of the YACoin client, create a GitHub account (if you don't already have one), go to the URL for my version of the client, and use the Fork button to make a copy of my repository into your own GitHub account.  At that point you can do any development work or testing in your own repository.  Once you've implemented feature(s) or bug fixes you feel are ready for inclusion in the YACoin client, you can submit a pull request back to my repository and I'll look over the changes for sanity and safety before merging them into my version of the client (or I'll get in touch with you if I have questions).
full member
Activity: 195
Merit: 100
good job. i have download it instead of the official one
sr. member
Activity: 406
Merit: 250
The cryptocoin watcher
We should link somewhere any scripts to check transactions and send files (to sell automatically digital stuff) and tips on how to use them with YaCoin.
sr. member
Activity: 462
Merit: 250
I think current client is too complex, it will be better to separate the GUI client from the server part. I'm inclining to make a GUI client or Web client talk to the server via RPC-JSON api. This can bring more people to write more advanced GUI client.

Yes, excellent idea. Having the server either be an executable that's fired off as a Windows service, or just started as a normal program. Or, you could take it out to a library-type interface, where it's initialized as part of another program...and bindings for other languages such as Python, Perl, PHP, etc could be wrapped around that with SWIG, for instance.

Having to write a bunch of GUI code in C/C++ is just a major headache. Taking this thing out to a light JSON RPC-driven interoperability layer where the GUI could be web based, or based on another (more high level language) such as Python, .NET, etc. would be a huge boon.

And yes, the entire -qt interface is a bit clunky period.

As a first step, just having an installer that installed shortcuts to launch:
1. the QT interface
2. a bat file that queried yacoind for the primary wallet address on startup, and then launched minerd with the top 3 p2pools, specifying that address to receive payment for both
3. a link to a howto document on mining, selling YaCoin on the exchanges, etc
(4. allowed that bat file to be autolaunched at startup (e.g. added to the Startup group under windows)

Would be a big step.
newbie
Activity: 41
Merit: 0
Some ideas more to develop the coin could an webapp (like bitminter java) or even a web based app, people get connected luch the app and get coin. Do not ask me to realize those idea please I'was already fighting to understand how to set "Minerd"  Grin
sr. member
Activity: 434
Merit: 250
sr. member
Activity: 425
Merit: 262
I think current client is too complex, it will be better to separate the GUI client from the server part. I'm inclining to make a GUI client or Web client talk to the server via RPC-JSON api. This can bring more people to write more advanced GUI client.
legendary
Activity: 2772
Merit: 1028
Duelbits.com
Yep, all good points for any crypto, not only YAC.

It's very tech thing for average PC user.
sr. member
Activity: 462
Merit: 250
So on the topic of YaCoin development, I wanted to put forth some ideas on how to increase the coin’s adoption.

I think we can all agree that currently, this is a coin developed by technical folks, for technical folks. You could say the same thing is true for most all altcoins, and you’d be right. Their technical complexity (both conceptually and from a day-to-day operational standpoint of the current toolset and utilities) is a big factor keeping them from starting to enter wider adoption. Bitcoin itself is just now starting to get over this with sites like Coinbase and Bitpay.

However, with YaCoin, we have a coin where money can be made with no special hardware required beyond a general purpose CPU. Admittedly, the money is not much at all today, but when I think of the number of folks that may be open to running this on their work computers, for instance to make some coins to play around with, it’s extremely compelling because that both increases knowledge and interest in the coin (and digital currencies in general), along with strengthening the network by leaps and bounds (which lends back into the former in a virtuous and synergistic cycle).

However, I believe that the technical hurdles with the toolset are still insurmountable for most folks, and are ones that YaCoin inherited from Bitcoin, etc. Things like:

•   Downloading the client as a zip file, with a bunch of DLLs and no installer. Huh?
•   The wallet.dat file is stored in a separate location from the program itself (makes sense, since it’s tied to the user, but it can be a pain to find if you don’t know that).
•   Want to mine for coins? You have to resort to either creating and editing some (seemingly) random .conf file you have to create in some (seemingly) random directory, or downloading and figuring out command-line switches for an external mining program like minerd or cgminer
•   So I finally do that, and then get some coins… what now?


For us, none of these are show stoppers, but for 99% of computer users…you’d lose them at the first one. I am definitely not proposing making this thing appealing to 99% of computer users, since most of them at this point wouldn't understand the concept of a digital currency anyhow. I’d rather be interesting in focusing on enhancing the client design to open this up to the top 10% of computer users, who have the skills and possible inclination, but don’t necessarily want to read a book on these coins to figure them out. As a bonus, you’d greatly simplify things for the existing yacoin community (if I can blaze through an installer to set up yacoin on a random box, awesome). Focusing on Windows at least at first, for obvious reasons, it would be something like the following:

•   Start by creating an installer for the yacoin client. And/or, have a “portable” version that you can throw on a USB stick, that throws the wallet, blockchain, etc right there in a subdirectory under the .exe
•   Enhance the yacoin client to come packaged with minerd. Add a tab to the GUI to start and stop mining (and allow the user to auto-start the client and therefore mining at machine startup). Starting mining would find a suitable p2pool, and launch minerd, pointing at that. Coins would then naturally end up in the user’s wallet.
•   Possibly include a ticker in the client showing announcements (such as “Complexity increase in 2 days. Your hashrate will be cut in half.” and the current yacoin price, for instance)
•   Tutorials around this client, along with explaining about selling/trading the coins on an exchange.
•   Future ideas of web-wallets for yacoin, such as a coinbase clone….

At this point, you have a coin with more user-friendliness that any altcoin, which I believe matches its technical profile as a CPU-mineable coin. And the fact that you introduce new folks into the digital currency space by means of yacoin would be an amazing feat.

Comments, suggestions? I am a developer and could assist with some of these tasks, as well as contributing some YAC as the start of a bounty pool (my time is limited however as I run a rapidly growing business).
newbie
Activity: 39
Merit: 0
Did I miss the link to the windows binaries?

Please make a new Release for Windows  Cry
sr. member
Activity: 425
Merit: 262
sr. member
Activity: 363
Merit: 250
...

Thanks hanzac! that defintiely did the trick, i feel like i am a lot closer now, but stuck on one other small ASM related thing.
Code:
/scrypt-jane-portable-x86.h:226: warning: implicit declaration of function 'asm_gcc'
/scrypt-jane-portable-x86.h:227: error: expected ';' before 'a1'

EDIT: so then i realized that X86_64ASM was no longer being defined, so then asm_gcc wasn't getting initialized properly.  So instead i only commented out part of the block you suggested, and left the definition for X86_64ASM
Code:
#if defined(CPU_X86_64) && defined(COMPILER_GCC)
    #define X86_64ASM
// #define X86_64ASM_SSE2
// #if (COMPILER_GCC >= 40102)
// #define X86_64ASM_SSSE3
// #endif
// #if (COMPILER_GCC >= 40400)
// #define X86_64ASM_AVX
// #endif
#endif

And it built with no errors, but a whole bunch of warnings, do these warnings matter??
Code:
src/scrypt-jane/code/scrypt-jane-chacha.h:12: In file included from ../altcoins/yacoin/src/scrypt-jane/code/scrypt-jane-chacha.h:12,
src/scrypt-jane/code/scrypt-jane-romix.h:2: from ../altcoins/yacoin/src/scrypt-jane/code/scrypt-jane-romix.h:2,
src/scrypt-jane/scrypt-jane.c:12: from ../altcoins/yacoin/src/scrypt-jane/scrypt-jane.c:12:
src/scrypt-jane/code/scrypt-jane-romix-basic.h:-1: In function 'scrypt_romix_nop':
src/scrypt-jane/code/scrypt-jane-romix-basic.h:8: warning: unused parameter 'blocks'
src/scrypt-jane/code/scrypt-jane-romix-basic.h:8: warning: unused parameter 'nblocks'
src/scrypt-jane/code/scrypt-jane-romix-basic.h:-1: In function 'scrypt_romix_convert_endian':
src/scrypt-jane/code/scrypt-jane-romix-basic.h:13: warning: unused parameter 'blocks'
src/scrypt-jane/code/scrypt-jane-romix-basic.h:13: warning: unused parameter 'nblocks'
src/scrypt-jane/code/scrypt-jane-romix.h:2: In file included from ../altcoins/yacoin/src/scrypt-jane/code/scrypt-jane-romix.h:2,
src/scrypt-jane/scrypt-jane.c:12: from ../altcoins/yacoin/src/scrypt-jane/scrypt-jane.c:12:
src/scrypt-jane/code/scrypt-jane-chacha.h:-1: In function 'scrypt_getROMix':
src/scrypt-jane/code/scrypt-jane-chacha.h:56: warning: unused variable 'cpuflags'
src/scrypt-jane/code/scrypt-jane-chacha.h:-1: In function 'scrypt_test_mix':
src/scrypt-jane/code/scrypt-jane-chacha.h:109: warning: unused variable 'cpuflags'
src/scrypt-jane/scrypt-jane.c:13: In file included from ../altcoins/yacoin/src/scrypt-jane/scrypt-jane.c:13:
src/scrypt-jane/code/scrypt-jane-test-vectors.h:-1: At top level:
src/scrypt-jane/code/scrypt-jane-test-vectors.h:9: warning: missing initializer
src/scrypt-jane/code/scrypt-jane-test-vectors.h:9: warning: (near initialization for 'post_settings[2].salt')
src/scrypt-jane/code/scrypt-jane-romix-basic.h:8: warning: 'scrypt_romix_nop' defined but not used

Thanks!
legendary
Activity: 2772
Merit: 1028
Duelbits.com
Haven't checked vircurex but criptsy have 0 volume for yac.

But anyway, it's just not fair and I'm having a hard time to trust the exchange that does such stuff without the reasons.
sr. member
Activity: 425
Merit: 262
I know it's not the best thread for it but it's the most watched and easy to follow YAC one so I'll post it here..

I just sent a message to bter about their unfair treatment of YAC as one of the rare problem-less altcoins created in last few weeks. It's staggering to see that coins with such a problems with delayed transactions like FTC or CNC, or coins with numerous blockchain problems and risky fast block creation and 1500% price drop like WDC are treated normally ,without huge trading fees and scaring introducing message yet YAC as most advanced coin with most stable price since it's introduction to exchange as well with 0 blockchain problems is treated on the way it is.

I hope more of you will join me and send them the message as the way they are treating YAC is scandalous and makes one to wonder what the hell are they about, and you don't want to wonder that while you are giving someone the trust of dealing with your property.

Again, sorry for posting here but I hope more people will see it in this thread.

No matter, we still have two other exchanges, vircurex & cryptsy, they're both awesome.
hero member
Activity: 637
Merit: 500
It seems that http://yacexplorer.tk/ is not updating anymore.
Is there any other YAC block explorer out there ?

legendary
Activity: 2772
Merit: 1028
Duelbits.com
I know it's not the best thread for it but it's the most watched and easy to follow YAC one so I'll post it here..

I just sent a message to bter about their unfair treatment of YAC as one of the rare problem-less altcoins created in last few weeks. It's staggering to see that coins with such a problems with delayed transactions like FTC or CNC, or coins with numerous blockchain problems and risky fast block creation and 1500% price drop like WDC are treated normally ,without huge trading fees and scaring introducing message yet YAC as most advanced coin with most stable price since it's introduction to exchange as well with 0 blockchain problems is treated on the way it is.

I hope more of you will join me and send them the message as the way they are treating YAC is scandalous and makes one to wonder what the hell are they about, and you don't want to wonder that while you are giving someone the trust of dealing with your property.

Again, sorry for posting here but I hope more people will see it in this thread.
sr. member
Activity: 425
Merit: 262
Thanks for compiling up an interim Win 64-bit binary.  I was going to start looking into why the scrypt-jane library won't compile cleanly for 32-bit Windows using the mingw32 compiler as reported earlier in the thread but haven't gotten to it yet.

I'm almost ready to push changes to the repository to update the icon and graphics, and have been working on scripting up an NSIS-based installer (similar to InstallShield, but NSIS is open-source) for the Windows client.

Yes, I also met the problem of the assembly code error. I just turned off some macro options for the SSE & AVX, to make it a plain generic scryp-jane impl.

In file scrypt-jane-portable-x86.h, comment out these parts:
Quote
   #if (defined(COMPILER_MSVC6PP_AND_LATER) || (defined(COMPILER_GCC) && (COMPILER_GCC >= 30000)))
      #define X86ASM_SSE
      #define X86ASM_SSE2
   #endif
   #if ((defined(COMPILER_MSVC) && (COMPILER_MSVC >= 1400)) || (defined(COMPILER_GCC) && (COMPILER_GCC >= 40102)))
      #define X86ASM_SSSE3
   #endif
   #if ((defined(COMPILER_GCC) && (COMPILER_GCC >= 40400)))
      #define X86ASM_AVX
   #endif

But if you want to make the client also has optimized mining capability, need to try to configure CPU_X86_FORCE_INTRINSICS. (gcc intrinsics are always well-organized c code.)



Hello,

I'm trying to get YACoin QT Client compiled for OSX.  I feel like i'm getting pretty close, but i'm stuck on a bunch of ASM, and i'm not super awesome with ASM.

I think it's all coming from scrypt-x86_64.S
Code:
{standard input}:5:Alignment too large: 15. assumed.
{standard input}:14:32-bit absolute addressing is not supported for x86-64
{standard input}:14:cannot do signed 4 byte relocation
{standard input}:15:32-bit absolute addressing is not supported for x86-64
{standard input}:15:cannot do signed 4 byte relocation
{standard input}:89:suffix or operands invalid for `ja'
{standard input}:105:suffix or operands invalid for `jne'
{standard input}:108:Unknown pseudo-op: .type
{standard input}:108:Rest of line ignored. 1st junk character valued 115 (s).
{standard input}:109:Unknown pseudo-op: .size
{standard input}:109:Rest of line ignored. 1st junk character valued 115 (s).
{standard input}:113:Alignment too large: 15. assumed.
{standard input}:207:suffix or operands invalid for `ja'
{standard input}:223:suffix or operands invalid for `jne'
{standard input}:226:Unknown pseudo-op: .type
{standard input}:226:Rest of line ignored. 1st junk character valued 115 (s).
{standard input}:227:Unknown pseudo-op: .size
{standard input}:227:Rest of line ignored. 1st junk character valued 115 (s).

I am building with QT Creator, and using GCC (not CLANG).  I unravelled the macros in the ASM with pooler's perl tool. 

I assume someone has already figured this out because there is a NovaCoin QT for OSX and it uses the exact same ASM file.

Any help or advise would be appreciated!


sr. member
Activity: 425
Merit: 262
Finally got my GPU hashing, but 4 times slower than mtrlt's.

7950 @ 207KH, (N = 256), Downgrade to 750MHZ Core Speed.

That approximately jives with what I benchmarked your code at (at least the code you posted earlier in the thread) after fixing the problems with it, if we take into account the different cards we're using (I tested on a 6950).  As a point of curiosity, how many hours did it take you up to the point you posted your code, and how many hours after that to figure out what was still wrong?
I spend two weekends, if sum up about 48 hours.
Jump to: