Author Topic: DVS Light Wallet for Mac Open Beta  (Read 33021 times)

0 Members and 1 Guest are viewing this topic.

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
I will try installing Qt 5.4 and building LightWallet against that next.

Woohoo! That worked. I will post detailed build instructions for Ubuntu 14.04 later.

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
For those on Qt 5.3, which I believe ships QtQuick 2.3, I've updated the imports in the QML files to reference QtQuick 2.3 instead of 2.4. I've also updated the light wallet to connect to my server on the devshares branch. Hopefully that will simplify building for you all.

Tried compiling the latest updates to the devshares branch that includes your 4eeaada384f018eb8a5dff5383002f36d2cfb283 commit, I made sure cmake is recognizing my Qt 5.3 installation, and verified with ldd that LightWallet is linked against the shared object files in my custom Qt 5.3 installation, and yet:
Code: [Select]
$ ./LightWallet
1502092ms th_a       thread.cpp:95                 thread               ] name:ntp tid:139931628037888
1502118ms ntp        ntp.cpp:77                    request_now          ] resolving... ["pool.ntp.org",123]
QML debugging is enabled. Only use this in a safe environment.
1502613ms ntp        ntp.cpp:81                    request_now          ] sending request to 132.163.4.102:123
QQmlApplicationEngine failed to load component
qrc:/qml/main.qml:116 Type WelcomeLayout unavailable
qrc:/qml/WelcomeLayout.qml:2 module "QtQuick.Controls" version 1.3 is not installed

"QML_IMPORT_TRACE=1 ./LightWallet" shows that it is looking in the right place "/opt/Qt5.3.0/5.3/gcc_64/qml" for the the various modules.

I will try installing Qt 5.4 and building LightWallet against that next. Is that the version of Qt you have installed on your machine Nathan?

Offline modprobe

For those on Qt 5.3, which I believe ships QtQuick 2.3, I've updated the imports in the QML files to reference QtQuick 2.3 instead of 2.4. I've also updated the light wallet to connect to my server on the devshares branch. Hopefully that will simplify building for you all.

Offline modprobe

Yeah, for some reason it's still pointing at localhost. I thought I fixed that. Anyways, just change "localhost" to "nathanhourt.com" and you'll be set.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Xeroc: You're using papyros's copy of qml-material, not my fork. Make sure to get qml-material from github.com/nathanhourt/qml-material and to use the develop branch. Edit: scratch that, you've got an old version of the light wallet. Are you sure you're building on the devshares branch?
Oh .. I was compiling the tag dvs/0.6.2 .. the devshares branch compile fine and the client start up all fine .. however, no connection can be made. What  steps are required to make the client connect to your host? I found this in the code (main.qml):
Code: [Select]
54    function connectToServer() {
 55       if( !wallet.connected )
 56          wallet.connectToServer("localhost", 5657, "DVS8GV6nP15gBZQbuEGamH95gYR5EioxkUbEYjpDHMjPEeRWsvR63")                                                                                                     
 57    }

Offline modprobe

Hi, fluxer. Thanks for the thoughts. I would like to move to a multiple server model, but this does have some difficulties. One is performance (I've got to wait for N servers to respond instead of 1), and another is fragility (if I use 2 servers and they give different results... now what?) as well as ambiguity (If I query three servers and two never respond... now what?), as well as economics (each light server charges a fee for propagating transactions; if I have N lightservers, I have to pay N fees?). I haven't taken the time to come up with good answers to these questions, so the current version only supports one server. If we can come up with a good design, though, I'll be happy to implement a multiple server architecture.

As to the issue of delegates hosting servers, it's a great idea, but the light wallet has no way of knowing who the delegates are nor what they've published in their accounts. The light wallet would then need to trust a lightserver to give it accurate information about the delegates, which defeats the purpose.

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
Some ideas, maybe you've thought of them:

- The ability to add 'trusted sources' to a list
- Delegates should be able to host public data servers / list their addresses under their accounts, and light wallets should be able to automatically add these servers to its list of 'trusted sources'
« Last Edit: January 31, 2015, 07:07:00 pm by fluxer555 »

Offline modprobe

Xeroc: You're using papyros's copy of qml-material, not my fork. Make sure to get qml-material from github.com/nathanhourt/qml-material and to use the develop branch. Edit: scratch that, you've got an old version of the light wallet. Are you sure you're building on the devshares branch?

Arhag: Your version of Qt is older than the lightwallet expects. You can update Qt, or you can try modifying the wallet to use an older version of Qt by turning down the version number in the qml files (change `import QtQuick 2.4` to 2.3 or lower)
« Last Edit: January 31, 2015, 06:43:09 pm by modprobe »

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Code: [Select]
./LightWallet --help                                                                                                                                                                                   ─┘
1553542ms th_a       thread.cpp:95                 thread               ] name:ntp tid:2956073792
1553542ms ntp        ntp.cpp:77                    request_now          ] resolving... ["pool.ntp.org",123]
QML debugging is enabled. Only use this in a safe environment.
1553554ms ntp        ntp.cpp:81                    request_now          ] sending request to 141.82.25.201:123
1553594ms ntp        ntp.cpp:147                   read_loop            ] received ntp reply from 141.82.25.201:123
1553594ms ntp        ntp.cpp:161                   read_loop            ] ntp offset: 5618, round_trip_delay 39713
1553594ms ntp        ntp.cpp:177                   read_loop            ] ntp_delta_time updated to 5618
QQmlApplicationEngine failed to load component
file:///files/git/bitshares/programs/light_wallet/qml/main.qml:284 Type TransferLayout unavailable
file:///files/git/bitshares/programs/light_wallet/qml/TransferLayout.qml:67 Cannot assign to non-existent property "showHelperText"

on ArchLinux .. any idea how to fix this?

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc

Offline cn-members

  • Sr. Member
  • ****
  • Posts: 365
    • View Profile
where are the sources for the light-client? I'd like to compile locally
it's in the original repository:
https://github.com/BitShares/bitshares

just cmake with
-DINCLUDE_LIGHT_WALLET=ON

also you need to build& install:
https://github.com/papyros/qml-extras
https://github.com/nathanhourt/qml-material

however, I still encountered the problem that arhag mentioned:
3453531ms th_a       thread.cpp:95                 thread               ] name:ntp tid:140008780953344
QML debugging is enabled. Only use this in a safe environment.
3453531ms ntp        ntp.cpp:77                    request_now          ] resolving... ["pool.ntp.org",123]
3453538ms ntp        ntp.cpp:81                    request_now          ] sending request to 120.119.28.1:123
3453549ms ntp        ntp.cpp:147                   read_loop            ] received ntp reply from 120.119.28.1:123
3453549ms ntp        ntp.cpp:161                   read_loop            ] ntp offset: -210141, round_trip_delay 11227
3453549ms ntp        ntp.cpp:177                   read_loop            ] ntp_delta_time updated to -210141
QQmlApplicationEngine failed to load component
qrc:/qml/main.qml:1 module "QtQuick" version 2.4 is not installed
BTS中文区发言人公共账号,帮助社区有效沟通与交流。
Chinese Community Spokesman Account,to help the effective communication between Chinese and other members of the community.We're not translators to do regular translations , but will help with vital ones as we see fit and available at that time.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
where are the sources for the light-client? I'd like to compile locally

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
Update for the Ubuntu users: I can't get qml-extras and qml-material to build their tests. My best guess is that the old version of Qt that ships with Ubuntu just can't handle it. As a workaround, disable the tests by editing qml-extras.pro and qml-material.pro and removing the references to the tests subdir. Then you can just `sudo make install` and it should work.

I was actually able to get the tests to run except for
Code: [Select]
FAIL!  : extras::HttpTests::test_getgoogle() Uncaught exception: HttpLib is not defined
when running "make check" for qml_extras.

It required me to adjust environment variables so that qmake knew to use the Qt 5.3 installation I custom installed in /opt/Qt5.3.0 rather than the one that came with my Ubuntu system which is an older version.

I was also able to install qml_extras and qml_material, which were installed within the /opt/Qt5.3.0/5.3/gcc_64/ directory. 

But I think I may be doing something wrong with the compilation of the LightWallet. I worry that cmake is pointing to the system-wide old version of Qt and not the custom version I installed. It does build LightWallet, but when I run it I get:
Code: [Select]
2703390ms th_a       thread.cpp:95                 thread               ] name:ntp tid:140644392490752
2703391ms ntp        ntp.cpp:77                    request_now          ] resolving... ["pool.ntp.org",123]
2703397ms ntp        ntp.cpp:81                    request_now          ] sending request to 50.116.38.157:123
QML debugging is enabled. Only use this in a safe environment.
2703485ms ntp        ntp.cpp:147                   read_loop            ] received ntp reply from 50.116.38.157:123
2703485ms ntp        ntp.cpp:161                   read_loop            ] ntp offset: 87993113, round_trip_delay 88388
2703485ms ntp        ntp.cpp:177                   read_loop            ] ntp_delta_time updated to 87993113
QQmlApplicationEngine failed to load component
file:///home/arhag/devshares/programs/light_wallet/qml/main.qml:1 module "QtQuick" version 2.4 is not installed
and then it just hangs there and does nothing (no windows show up).

Oh, and remember to use my fork of qml-material at github.com/nathanhourt/qml-material -- I've made some changes that haven't been merged upstream.

Hmm... this might have something to do with it. I will try that out and report back.

Edit: Nope. I now get errors in make check for qml-material.
Code: [Select]
********* Start testing of materials *********
Config: Using QtTest library 5.3.0, Qt 5.3.0
PASS   : materials::Card Test::initTestCase()
PASS   : materials::Card Test::test_showCard()
PASS   : materials::Card Test::cleanupTestCase()
QWARN  : materials::UnknownTestFunc() file:///home/arhag/qml-material/tests/tst_pagestack.qml:27:5: Type ApplicationWindow unavailable
         ApplicationWindow {
         ^
QWARN  : materials::UnknownTestFunc() file:///home/arhag/qml-material/modules/Material/ApplicationWindow.qml:82:5: Type Toolbar unavailable
         Toolbar {
         ^
QWARN  : materials::UnknownTestFunc() file:///home/arhag/qml-material/modules/Material/Toolbar.qml:150:5: Type Tabs unavailable
         Tabs {
         ^
QWARN  : materials::UnknownTestFunc() file:///home/arhag/qml-material/modules/Material/Tabs.qml:44:13: Type Ink unavailable
                 Ink {
                 ^
QWARN  : materials::UnknownTestFunc() file:///home/arhag/qml-material/modules/Material/Ink.qml:166:13: CircleMask is not a type
                 CircleMask {
                 ^
QWARN  : materials::tst_pagestack::compile()
  /home/arhag/qml-material/tests/tst_pagestack.qml produced 5 error(s):
    /home/arhag/qml-material/tests/tst_pagestack.qml:27,5: Type ApplicationWindow unavailable
    /home/arhag/qml-material/modules/Material/ApplicationWindow.qml:82,5: Type Toolbar unavailable
    /home/arhag/qml-material/modules/Material/Toolbar.qml:150,5: Type Tabs unavailable
    /home/arhag/qml-material/modules/Material/Tabs.qml:44,13: Type Ink unavailable
    /home/arhag/qml-material/modules/Material/Ink.qml:166,13: CircleMask is not a type
  Working directory: /home/arhag/qml-material/tests
  View: QQuickView, import paths:
    '/home/arhag/qml-material/modules'
    '/home/arhag/qml-material/tests'
    '/opt/Qt5.3.0/5.3/gcc_64/qml'
  Plugin paths:
    '.'

FAIL!  : materials::tst_pagestack::compile() Type ApplicationWindow unavailable
   Loc: [/home/arhag/qml-material/tests/tst_pagestack.qml(27)]
Totals: 3 passed, 1 failed, 0 skipped
********* Finished testing of materials *********
« Last Edit: January 31, 2015, 07:07:19 am by arhag »

Offline modprobe

Oops, I spoke too soon. Looks like the qml tests build after installing qtdeclarative5-dev

Offline modprobe

Update for the Ubuntu users: I can't get qml-extras and qml-material to build their tests. My best guess is that the old version of Qt that ships with Ubuntu just can't handle it. As a workaround, disable the tests by editing qml-extras.pro and qml-material.pro and removing the references to the tests subdir. Then you can just `sudo make install` and it should work.

Oh, and remember to use my fork of qml-material at github.com/nathanhourt/qml-material -- I've made some changes that haven't been merged upstream.