Vitala
Member

Offline
Activity: 94
Merit: 10
|
 |
October 16, 2017, 09:42:29 AM |
|
Hello all. I am very new in linux, compiling and so on, but I mined slimcoins some years ago and I would like it to live. I wanted to make pool for mining coins by my asic, I bought some days ago, and decided to make pool for mining slimcoins first (just for me, at my home - maybe, later I will make pool for all). I took notebook, installed ubuntu 17.0.4 and all packages, needed for compiling wallet. I installed newest versions of packages. I didn't find openssl, so I installed libssl (internet said it is just the same). I sent command and received a lot of warnings like main.h:1402:16: warning: invalid suffix or literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] and one error: net.cpp:56:1: error: reference to ‘array’ is ambiguous array<int, THREAD_MAX> vnThreadsRunning; ^~~~~ In file included from net.h:11:0, from main.h:11: from db.h:10: from net.cpp:9: /usr/include/boost/array.hpp:60:11: note: candidates are: template<class T, long unsigned int N> class boost::array class array { ^~~~~ In file included from /usr/include/c++/6/tuple:39:0, from /usr/include/c++/6/bits/stl_map.h:63, from /usr/include/c++/6/map:61, from util.h:50, from bignum.h:13, from main.h:10, from db.h:10, from net.cpp:9: /usr/include/c++/6/array:90:12: note: template<class _Tp, long unsigned int _Nm> struct_ std::array struct array ^~~~~ I found similar problem in another project and its decision. But I am not sure how to use it. Please, explain me as easy as you can, what to do to make slimcoind in Ubuntu 17.0.4 with newest packages.
|
|
|
|
eddycurrent
Jr. Member
Offline
Activity: 61
Merit: 3
|
 |
October 16, 2017, 09:50:09 AM |
|
Hello again, I have had the error you mentioned before about net.cpp:56:1: error: reference to ‘array’ is ambiguous
several times and for me it was usually caused by not checking out the master branch on the github repository. If you need more information I would recommend that you read the initial post on this thread, if you have not done so already. Regards.
|
|
|
|
keliokan
Jr. Member
Offline
Activity: 86
Merit: 1
|
 |
October 16, 2017, 09:56:57 AM |
|
Hello,
I tried to setup a pool weeks ago, But it did not go well, basically the wallet was not able to communicate through the stratum system. (RPC command not available on Slimcoin). I had a one way communication...
I also did not used the last ubuntu server version, I used the 14 or 15 (i don't remember exactly).
I hope you ll have better luck than me.
K.
|
|
|
|
Vitala
Member

Offline
Activity: 94
Merit: 10
|
 |
October 16, 2017, 10:37:16 AM |
|
it was usually caused by not checking out the master branch on the github repository
As I remember, I downloaded by command git clone https://github.com/slimcoin-project/Slimcoin.git Was it wrong?
|
|
|
|
eddycurrent
Jr. Member
Offline
Activity: 61
Merit: 3
|
 |
October 16, 2017, 10:43:21 AM |
|
No, you were not wrong. After you cloned the repository you need to enter the directory and run the following command to use the master branch: Regards
|
|
|
|
gjhiggins
Legendary
Offline
Activity: 2254
Merit: 1290
|
 |
October 16, 2017, 10:46:25 AM |
|
a lot of warnings like main.h:1402:16: warning: invalid suffix or literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] Those are instances of C99 “convenience” macros for correctly handling numerical precision in print statements (e.g. PRI64u), deprecated in later versions of C++. You're lucky - OS X's later C++ rejects them as errors. You can choose to ignore the deprecations (until an OS upgrade of the C++ compiler forces the issue) or simply do as directed and insert a space between the double quote character and the PRI* macro --- which is the approach I adopted: https://github.com/slimcoin-project/Slimcoin/commit/1128835139d52858c82b047e1414f7072e547fdf(Contemporary versions of the C++ compiler have been enriched to allow: %u - at the expense of backward compatibility, I assume) and one error: net.cpp:56:1: error: reference to ‘array’ is ambiguous array<int, THREAD_MAX> vnThreadsRunning;
Another casualty of compiler improvements, array used to be unambiguous with: using namespace std; using namespace boost;
but now that C++ has its own array, what was unambiguous is now ambiguous, so one is obliged to be specific. Use either boost::array (the usual choice, supporting older compilers) or std::array if you want a clean break with the past. Again, I opted for backward compatibility: https://github.com/slimcoin-project/Slimcoin/commit/14c5606871ff6811ac4b0d2cb00d20bd9bfaf071#diff-9a82240fe7dfe86564178691cc57f2f1(The above commit also addresses the majority of the C99 macros). Please, explain me as easy as you can, what to do to make slimcoind in Ubuntu 17.0.4 with newest packages.
git checkout masterLastly, my compliments to you for composing an enquiry that is clear and complete --- it makes it so easy to provide the relevant information that it's actually a pleasure. Thank you for making my morning. Cheers Graham
|
|
|
|
Bitcoin2theEnd
Member

Offline
Activity: 137
Merit: 14
|
 |
October 16, 2017, 10:52:14 AM |
|
Coin looks very interesting. Will be interested to see where it is at by the end of the year. Nice work
|
|
|
|
eddycurrent
Jr. Member
Offline
Activity: 61
Merit: 3
|
 |
October 16, 2017, 11:00:49 AM |
|
Hello all yet again,
I just wanted to say a Thank You to gjhiggins, muf18, and all the others involved with Slimcoin for providing a friendly and helpful community and prompt responses to those who are trying to get into this coin.
If you have any issues with any of my posts such as missing or false information, feel free to let me know as I am new to the forum system.
Regards
|
|
|
|
Vitala
Member

Offline
Activity: 94
Merit: 10
|
 |
October 16, 2017, 11:09:49 AM |
|
Use either boost::array
So if delete string -array<int, THREAD_MAX> vnThreadsRunning; and write instead it +boost::array<int, THREAD_MAX> vnThreadsRunning; it will be enough? Or I can just make command (as suggested eddycurrent) and it will be made by "itself"?
|
|
|
|
gjhiggins
Legendary
Offline
Activity: 2254
Merit: 1290
|
 |
October 16, 2017, 11:24:29 AM Last edit: October 16, 2017, 11:51:31 AM by gjhiggins |
|
Use either boost::array
So if delete string -array<int, THREAD_MAX> vnThreadsRunning; and write instead it +boost::array<int, THREAD_MAX> vnThreadsRunning; it will be enough? Or I can just make command (as suggested eddycurrent) and it will be made by "itself"? Either will do. The array issue has been addressed in master and it builds - as attested by the continuous integration / tests courtesy of Travis CI ¹ but if you prefer to use the longstanding slimcoin branch, you will need to make the change to boost::array by hand. Cheers Graham ¹ 
|
|
|
|
gjhiggins
Legendary
Offline
Activity: 2254
Merit: 1290
|
 |
October 16, 2017, 12:36:28 PM |
|
I am new on this forum A very warm welcome to you. the error preventing Slimcoin compiling against openSSL1.1
Would I be correct in inferring that this issue is specific to the Arch Linux distro and not a general issue? Either way, more info would be most useful to me, at least. I recently noticed that this error had been fixed on the peercoin codebase on the development branch. I compared Slimcoin's codebase to peercoin's and found that they were so similar that I could modify the appropriate files in Slimcoin so that it could be compiled against openSSL1.1. I have compiled it successfully and I am currently in the process of testing it to ensure that it is still stable and all features still work. Currently it is almost halfway through syncing from zero. If this is successful, this would enable it to be compiled for both Arch Linux and Debian.
Related to this is the release of Slimcoin as an easy to install application on various platforms. If it becomes possible to compile against openSSL1.1 I was contemplating placing Slimcoin on Arch Linux's AUR to enable easier installation and accessibility.
By the way, I am also working on producing precompiled applications for arm based devices, as I would personally use these, again I would place these on the Arch linux AUR.
For those following along at home, unless I've misunderstood massively, IMO this work by eddycurrent has opened up a significant line of development for Slimcoin in terms of taking advantage of the work being done on Peerbox. If you(the Slimcoin developers) would let me know how you would like me to proceed with these fixes and proposals, I would appreciate your feedback.
May I offer a slight change in perspective? You're perfectly entitled to write we. What's the most convenient way for you to proceed, as a Slimcoin developer focusing on Arch Linux and devices? At the moment, I am woefully ignorant on how the Slimcoin build behaves on other Linux distros. I did manage to hack up a Vagrant+ansible deployment script for compiling on Debian Jessie, I can't recall why it's only in my personal github repos ( https://github.com/gjhiggins/ansible-slm-jessie) and why I haven't pushed it up to the slimcoin-project github a/c, maybe because (IIRC), the challenge (from ArchiTektor?) is to compile on the previous Debian release (I'm inadequately familiar with Debian, sry). Given the potential impact of a “Slimbox”, I'm quite prepared to roll up my sleeves and support your work - hence my offered change in perspective - how would you (knowing far more about the topic than I do) like to proceed? Cheers Graham
|
|
|
|
Vitala
Member

Offline
Activity: 94
Merit: 10
|
 |
October 16, 2017, 06:41:01 PM Last edit: October 16, 2017, 07:23:57 PM by Vitala |
|
This command helped, I didn't receive that warnings and error. But I received another error: /usr/bin/ld.exe: cannot find -lminiupnpc How to be now? Upd: That's OK. I just installed libminiupnpc-dev.
|
|
|
|
gjhiggins
Legendary
Offline
Activity: 2254
Merit: 1290
|
 |
October 16, 2017, 08:12:28 PM |
|
/usr/bin/ld.exe: cannot find -lminiupnpc Upd: That's OK. I just installed libminiupnpc-dev. Sorry about that, build documentation is disorganised atm. You will need qrencode too if you used USE_QRCODE=1 Cheers Graham
|
|
|
|
Vitala
Member

Offline
Activity: 94
Merit: 10
|
 |
October 17, 2017, 07:22:19 AM |
|
You will need qrencode too if you used USE_QRCODE=1
Now I will not use qrcode, I need just a daemon. But when I tried to install qr lib, I didn't find it. BTW, there are not a lot of 3-years-old coins, having any developer, so you are great.
|
|
|
|
eddycurrent
Jr. Member
Offline
Activity: 61
Merit: 3
|
 |
October 17, 2017, 08:40:43 AM Last edit: October 17, 2017, 08:54:30 AM by eddycurrent |
|
Hello gjhiggins, Firstly, thank you for taking the time to respond. In answer to this question: Would I be correct in inferring that this issue is specific to the Arch Linux distro and not a general issue? Either way, more info would be most useful to me, at least.
No, I belive it affects debian jessie, ie. debian 8, as well. I would imagine that it affects any distribution that uses openSSL1.1, but without further research I could not say for certain. This issue was raised earlier in the thread as well: Debian 8 x64 - still crashing with: from src/bitcoinrpc.cpp:8: src/bignum.h:52:24: error: invalid use of incomplete type ?BIGNUM {aka struct bignum_st}? class CBigNum : public BIGNUM
Known bug with Debian 8 apparently: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855574Cheers Graham To answer your second question: What's the most convenient way for you to proceed, as a Slimcoin developer focusing on Arch Linux and devices?
Firstly, I must point out that I will not have much time to work on this for several weeks, however that is currently not an issue as I am testing my code and as the first stage of that is I am waiting for the node to sync. I cannot do anything else until that finishes. From there I would proceed to test all features of the wallet possible, and once all features have been shown to work I intend to submit a pull request to the repository. If you would like me to make this pull request sooner so that you and others can review my code and commence testing I would be happy to do so. I am trying to learn how to use git and github so I will need some help. I created a new branch on my local git reposity to make the changes to so that may make it easier to pull as it will not change the current master branch but will allow others to test and review my code, is this a suitable way to do it? Once the SSL fix is in place I would then proceed to phase two which would be to provide precompiled binarys and make these binary available on the Arch Linux AUR. One other issue that I may need to address is backwards compatability. By the way, I am still very much in the process of learning how to program, so code changes will take me a comparitively long time to accomplish, however I am trying to pick it up along the way. I am also trying to familiarise myself with the infrastrucutre underlying cryptocurrencies. I will now add peerbox to my list of things to investigate. If you need more information about what I am saying don't hesitate to ask. Regards
|
|
|
|
gjhiggins
Legendary
Offline
Activity: 2254
Merit: 1290
|
 |
October 17, 2017, 04:04:30 PM |
|
Firstly, thank you for taking the time to respond.
It's a pleasure. (We English tend to the masochistic at times). No, I believe it affects debian jessie, ie. debian 8, as well. I would imagine that it affects any distribution that uses openSSL1.1, but without further research I could not say for certain. This issue was raised earlier in the thread as well: Ah, okay. I can't quite get my head round this issue. My Vagrant+ansible deployment script executes without problems on Debian Jessie, compiling both headless and GUI clients and successfully running the test suite - but Jessie reports its apt-updated-upgraded-gotten openssl as 1.0.1t so I don't get where the 1.1 issue arises for Debian 8. But that's just my poor understanding of the Debian ecosystem. Firstly, I must point out that I will not have much time to work on this for several weeks ...
Unless I miss my guess, your primary interest is in working with a capable build rather than working on a capable build, so to save time and effort all round, I've moved straight to a solution. The peercoin commit you found was: https://github.com/peercoin/peercoin/commit/5b09830e5de0f5105534e69dbf4acffb3255869b which I have cherry-picked into a branch, resolved the conflicts, commented out a few problematic OP_CODE sections in script.cpp that were inherited from prehistory (and have not yet been excised from the Slimcoin codebase but probably should have been long ago, for reasons of safety, like all the other altcoins did), checked that the test suite executes without issue and merged the branch to master so Travis CI can act as backstop - which it is doing nicely: https://travis-ci.org/slimcoin-project/SlimcoinI'm re-checking the build under Jessie (yep, it all compiles, tests pass) and have a Vagrant Arch Linux box, so I can have a play with a modified version of Peercoin's PKGBUILD file. Cheers Graham
|
|
|
|
eddycurrent
Jr. Member
Offline
Activity: 61
Merit: 3
|
 |
October 17, 2017, 09:59:06 PM |
|
Hello, Thanks for the quick code updates. Yes, you were correct that I was mainly wanting to work with a working codebase, but I would also like to learn how the whole system works too. I have tested the changes you made, but unfortunately on my system there are still errors when compiling, as follows: src/key.cpp: In member function ‘bool CKey::SetCompactSignature(uint256, const std::vector<unsigned char>&)’: src/key.cpp:380:30: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ BN_bin2bn(&vchSig[1],32,sig->r); ^~ In file included from /usr/include/openssl/ecdsa.h:10:0, from src/key.cpp:9: /usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ typedef struct ECDSA_SIG_st ECDSA_SIG; ^~~~~~~~~~~~ src/key.cpp:380:32: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ BN_bin2bn(&vchSig[1],32,sig->r); ^ In file included from /usr/include/openssl/ecdsa.h:10:0, from src/key.cpp:9: /usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ typedef struct ECDSA_SIG_st ECDSA_SIG; ^~~~~~~~~~~~ src/key.cpp:381:31: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ BN_bin2bn(&vchSig[33],32,sig->s); ^~ In file included from /usr/include/openssl/ecdsa.h:10:0, from src/key.cpp:9: /usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ typedef struct ECDSA_SIG_st ECDSA_SIG; ^~~~~~~~~~~~ src/key.cpp:381:33: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ BN_bin2bn(&vchSig[33],32,sig->s); ^ In file included from /usr/include/openssl/ecdsa.h:10:0, from src/key.cpp:9: /usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’ typedef struct ECDSA_SIG_st ECDSA_SIG; ^~~~~~~~~~~~ make: *** [Makefile:2269: build/key.o] Error 1
This was on an up to date Arch Linux system. I did have to modify this file quite significantly to get it to compile on my system. Regarding this comment, I'm re-checking the build under Jessie (yep, it all compiles, tests pass) and have a Vagrant Arch Linux box, so I can have a play with a modified version of Peercoin's PKGBUILD file.
Does this mean that you will provide AUR packages for Arch Linux or will I still need to do so? Here is the thread where I foud the fix if it is any use: https://github.com/peercoin/peercoin/pull/153?Regards
|
|
|
|
gjhiggins
Legendary
Offline
Activity: 2254
Merit: 1290
|
 |
October 18, 2017, 02:43:25 AM |
|
Ah, good catch - I'd somehow omitted one change: https://github.com/backpacker69/ppcoin/commit/fdc540e775f83eed12b670286adb90e673619825#diff-54e45787cdb38fd8469fe6d1c48e67beR378I effected the change, pushed the commit and successfully compiled the binaries under Arch Linux. There is one failing key test, annotated: // R length on 9 bytes // Rejected by OpenSSL 64 bits, so it should be always rejectedlooks like it isn't rejected under 1.1. Does this mean that you will provide AUR packages for Arch Linux or will I still need to do so?
I'm just getting to grips with the model, made some progress, it seems straightforward enough. I'll report back on further progress. Cheers Graham
|
|
|
|
eddycurrent
Jr. Member
Offline
Activity: 61
Merit: 3
|
 |
October 18, 2017, 09:19:46 AM |
|
Thanks gjhiggins! It compiles on my system now. I will now start work on compiling the daemon for arm devices as mentioned as needed in the bounty section in the first post on this thread. I have another question. When I compile I get this warning from the compiler: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
I tried to compile with optimisation recently, but the compiled binary immediately had a segmentation fault when run. Is there a known cause for this and does something need to be done about it? Regards
|
|
|
|
wDUO
Newbie
Offline
Activity: 24
Merit: 0
|
 |
October 18, 2017, 09:28:20 AM |
|
I need some nodes.... help?
|
|
|
|
|