Coder Social home page Coder Social logo

mbg033 / monero-gui Goto Github PK

View Code? Open in Web Editor NEW

This project forked from monero-project/monero-gui

12.0 11.0 6.0 1.21 MB

Monero: the secure, private, untraceable cryptocurrency

License: Other

QML 80.82% C++ 15.71% QMake 1.35% JavaScript 0.88% Shell 1.25%

monero-gui's Introduction

Copyright (c) 2014-2016, The Monero Project

Development Resources

Introduction

Monero is a private, secure, untraceable, decentralised digital currency. You are your bank, you control your funds, and nobody can trace your transfers unless you allow them to do so.

Privacy: Monero uses a cryptographically sound system to allow you to send and receive funds without your transactions being easily revealed on the blockchain (the ledger of transactions that everyone has). This ensures that your purchases, receipts, and all transfers remain absolutely private by default.

Security: Using the power of a distributed peer-to-peer consensus network, every transaction on the network is cryptographically secured. Individual wallets have a 25 word mnemonic seed that is only displayed once, and can be written down to backup the wallet. Wallet files are encrypted with a passphrase to ensure they are useless if stolen.

Untraceability: By taking advantage of ring signatures, a special property of a certain type of cryptography, Monero is able to ensure that transactions are not only untraceable, but have an optional measure of ambiguity that ensures that transactions cannot easily be tied back to an individual user or computer.

About this Project

This is the GUI for the core Monero implementation. It is open source and completely free to use without restrictions, except for those specified in the license agreement below. There are no restrictions on anyone creating an alternative implementation of Monero that uses the protocol and network in a compatible manner.

As with many development projects, the repository on Github is considered to be the "staging" area for the latest changes. Before changes are merged into that branch on the main repository, they are tested by individual developers in their own branches, submitted as a pull request, and then subsequently tested by contributors who focus on testing and code reviews. That having been said, the repository should be carefully considered before using it in a production environment, unless there is a patch in the repository for a particular show-stopping issue you are experiencing. It is generally a better idea to use a tagged release for stability.

Supporting the Project

Monero development can be supported directly through donations.

Both Monero and Bitcoin donations can be made to donate.getmonero.org if using a client that supports the OpenAlias standard

The Monero donation address is: 44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A (viewkey: f359631075708155cc3d92a32b75a7d02a5dcf27756707b47a2b31b21c389501)

The Bitcoin donation address is: 1KTexdemPdxSBcG55heUuTjDRYqbC5ZL8H

Core development funding and/or some supporting services are also graciously provided by sponsors:

There are also several mining pools that kindly donate a portion of their fees, a list of them can be found on our Bitcointalk post.

License

See LICENSE.

Installing Monero Core from a Package

Packages are available for

Packaging for your favorite distribution would be a welcome contribution!

Compiling Monero Core from Source

Dependencies

TODO

On Linux:

(Tested on Ubuntu 16.04 i386 and Linux Mint 18 "Sarah" - Cinnamon (64-bit))

  1. Install Monero dependencies.

    sudo apt install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev

  2. Grab an up-to-date copy of the monero-core repository.

    git clone https://github.com/monero-project/monero-core.git

  3. Go into the repository.

    cd monero-core

  4. Use the script to compile the Monero libs necessary to run the GUI.

    ./get_libwallet_api.sh

  5. Install the GUI dependencies.

  • For Ubuntu 16.04 i386

    sudo apt-get install qtbase5-dev qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtquick-xmllistmodel qttools5-dev-tools qml-module-qtquick-dialogs

  • For Ubuntu 16.04 x64

    sudo apt-get install qtbase5-dev qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtquick-xmllistmodel qttools5-dev-tools qml-module-qtquick-dialogs qml-module-qt-labs-settings libqt5qml-graphicaleffects

  • For Linux Mint 18 "Sarah" - Cinnamon (64-bit)

    sudo apt install qml-module-qt-labs-settings qml-module-qtgraphicaleffects

  1. Build the GUI.

    qmake

    make

  2. Before running the GUI, it's recommended that you have the Monero daemon running in the background.

    ./monerod

  3. Run the GUI client.

    ./release/bin/monero-core

On OS X:

  1. Install Xcode from AppStore

  2. Install homebrew

  3. Install monero dependencies:

    brew install boost --c++11

    brew install openssl - to install openssl headers

    brew install pkgconfig

    brew install cmake

  4. Install latest Qt using official installer from qt.io (homebrew version might be outdated).

  5. Add Qt bin dir to your path:

    export PATH=$PATH:$HOME/Qt/5.7/clang_64/bin

    where Qt is the folder you selected to install Qt.

  6. Grab an up-to-date copy of the monero-core repository.

    git clone https://github.com/monero-project/monero-core.git

  7. Go into the repository.

    cd monero-core

  8. Start the build:

build.sh

The executable can be found in the build/release/bin folder.

On Windows:

  1. Install msys2, follow the instructions on that page on how to update packages to the latest versions

  2. Install monero dependencies as described in monero documentation into msys2 environment. As we only build application for x86, install only dependencies for x86 architecture (i686 in package name)

  3. Install git into msys2 environment:

    pacman -S git
    
  4. Install Qt5 from official site.

    • download unified installer, run and select following options:
      • Qt > Qt 5.7 > MinGW 5.3.0 32 bit
      • Tools > MinGW 5.3.0
    • continue with installation
  5. Open mingw shell:

    %MSYS_ROOT%\msys2_shell.cmd -mingw32

    Where %MSYS_ROOT% will be c:\msys32 if your host OS is x86-based or c:\msys64 if your host OS is x64-based

  6. Clone repository:

    git clone https://github.com/monero-project/monero-core.git
    
  7. Build libwallet:

    cd monero-core
    ./get_libwallet_api.sh
    

    close mingw shell after it done

  8. Build application:

    • open Qt environment shell (Qt 5.7 for Desktop (MinGW 5.3.0 32 bit) is shortcut name)
    • navigate to the project dir and build the app:
      cd %MSYS_ROOT%\%USERNAME%\monero-core
      mkdir build
      cd build
      qmake ..\ -r "CONFIG+=release"
      mingw32-make release
      mingw32-make deploy
      
    • grab result binary and dependencies in .\release\bin

monero-gui's People

Contributors

ddyzhang avatar debruyne-1 avatar dternyak avatar fluffypony avatar githubrsys avatar jamescullum avatar jaqueeee avatar krzysztoff7 avatar mbg033 avatar moroccanmalinois avatar radfish avatar signo88 avatar taushet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

monero-gui's Issues

Ubuntu 16.04: fail to build bitmonero: undefined references lzma_*

Ubuntu 16.04 64-bit:
Building bitmonero with the script in this repository.

/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libunwind.a(elf64.o): In function `xz_uncompressed_size':
/build/libunwind-VOtC4T/libunwind-1.1/src/elfxx.c:194: undefined reference to `lzma_stream_footer_decode'
/build/libunwind-VOtC4T/libunwind-1.1/src/elfxx.c:201: undefined reference to `lzma_index_buffer_decode'
/build/libunwind-VOtC4T/libunwind-1.1/src/elfxx.c:205: undefined reference to `lzma_index_size'
/build/libunwind-VOtC4T/libunwind-1.1/src/elfxx.c:210: undefined reference to `lzma_index_end'
/build/libunwind-VOtC4T/libunwind-1.1/src/elfxx.c:207: undefined reference to `lzma_index_uncompressed_size'
/build/libunwind-VOtC4T/libunwind-1.1/src/elfxx.c:210: undefined reference to `lzma_index_end'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libunwind.a(elf64.o): In function `_Uelf64_extract_minidebuginfo':
/build/libunwind-VOtC4T/libunwind-1.1/src/elfxx.c:278: undefined reference to `lzma_stream_buffer_decode'
collect2: error: ld returned 1 exit status

Amount Field in Transfer Tab needs validation

I think the Amount Field in Transfer Tab needs some validation.

Situation right now:

  • Amount gets not always validated against balance.

With low mixing Count it seems to work:

notenoughmoney

But with High mixing count it reacts differently and tries to look for outputs to mix before validation against acount balance:

notenoughmoney_highmix

  • If Field Amount is empty, Send Button works but nothing happens (same like Address Field) ---> OK
  • If Field Amount has invalid value, value gets replaced by dummy value.
    amount1
    amount2

How it should be:

  • Amount should always be validated correctly against balance
  • Field Amount should be validated correctly, if validation fails, Error message should be displayed.
    Message from Simplewallet is quite cool:

expected number from 0 to 18446744.073709551615

OSX qmake can't find translations

Just cloned repo and trying to build with qt5

qmake

RCC: Error in 'qml.qrc': Cannot find file 'translations/monero-core_de.qm'
RCC: Error in 'qml.qrc': Cannot find file 'translations/monero-core_en.qm'
RCC: Error in 'qml.qrc': Cannot find file 'translations/monero-core_it.qm'
RCC: Error in 'qml.qrc': Cannot find file 'translations/monero-core_pl.qm'
RCC: Error in 'qml.qrc': Cannot find file 'translations/monero-core_ru.qm'
RCC: Error in 'qml.qrc': Cannot find file 'translations/monero-core_zh.qm'

Adding Icons for the binary

We need to add icons to the compiled binaries, here are the win and osx icons i did using the monero logo.

I guess for Linux still will be a bit more tricks than adding the icons to the bin/resources, still researching on that.
Archiv.zip

Creation of new account too slow

When creating a new account, monero-core is loading around 5 minutes on my VM.
When creating a new account with CLI wallet, creation process takes around 20 sec on same machine.

Restoring from seed is more or less the same speed with both, so i assume monero-core uses the same way to create new wallets and recreate from seed.

Error connecting to RPC daemon

The GUI shows status as Connected, but on stdout it reports the following:

refreshed
qml: >>> wallet refreshed
qml: >>> wallet updated
ERROR /home/vdo/src/monero-core/bitmonero/src/wallet/wallet2.cpp:590 !r. THROW EXCEPTION: error::no_connection_to_daemon

bitmonerod output:

6-Sep-01 22:56:37.232846 [RPC0]ERROR /DISTRIBUTION-BUILD/src/rpc/core_rpc_server.h:77 Failed to on_get_blocks()
2016-Sep-01 22:56:47.273965 [RPC0]ERROR /DISTRIBUTION-BUILD/src/rpc/core_rpc_server.h:77 Failed to on_get_blocks()
2016-Sep-01 22:56:57.314936 [RPC1]ERROR /DISTRIBUTION-BUILD/src/rpc/core_rpc_server.h:77 Failed to on_get_blocks()
2016-Sep-01 22:56:58.223506 [P2P2][71.202.19.145:56031 INC]Sync data returned unknown top block: 1126602 -> 1009962 [116640 blocks (-81 days) ahead] 
SYNCHRONIZATION started
status
Height: 1126602/1126602 (100.0%) on mainnet, not mining, net hash 25.77 MH/s, v2, up to date, 9+2 connections
2016-Sep-01 22:57:07.355797 [RPC1]ERROR /DISTRIBUTION-BUILD/src/rpc/core_rpc_server.h:77 Failed to on_get_blocks()
2016-Sep-01 22:57:17.396883 [RPC1]ERROR /DISTRIBUTION-BUILD/src/rpc/core_rpc_server.h:77 Failed to on_get_blocks()
2016-Sep-01 22:57:27.437852 [RPC1]ERROR /DISTRIBUTION-BUILD/src/rpc/core_rpc_server.h:77 Failed to on_get_blocks()
2016-Sep-01 22:57:37.478895 [RPC1]ERROR /DISTRIBUTION-BUILD/src/rpc/core_rpc_server.h:77 Failed to on_get_blocks()

Port simplewallet to Qt

Implement Qt interface/adaptor for simplewallet so it will be possible to call it from QML

Some usability concerns

Here is what I think can be considered or ignored :)

  1. Confirmation field in password generation dialog is barely visible and confusing, I wasted several minutes to figure out if wallet don't allow me next step because my password is weak or for some another reason.
  2. Wallet title bar is annoying, better make it always visible or introduce an auto-hide option.

French wallet seed

I see that there is no flag for the French language for a wallet seed. Having one would be useful.

Fix msys2 deploy

windeployqt from msys2 doesn't put all the runtime dependencies so app can't start outside of msys2 environment

Mac OSX 10.11.5 fails to build - 'QQmlApplicationEngine' file not found

Attempting to build out the GUI wallet and create some better instructions for the crew.

First I found that I had an additional pre-requisite and had to install qt from homebrew. This appears to maybe be part of the problem as QQmlApplicaionEngine appears to be related to qt? Is it perhaps a path issue or something?

Here's what I see in attempting build:
http://pastebin.com/8uu9p9zL

Here are the instructions I'm working on and where I'm stuck:
https://docs.google.com/document/d/1o84WesPBg1jO2eMz_-1lZruQPpnH8b-5SRzIywVuE9Q/edit?usp=sharing

Fatal Error when trying to build monero-core

I'm trying to follow the directions from here...

https://github.com/mbg033/monero-core

I'm running a fresh install of Ubuntu 16.04.1 x86 in VirtualBox.

When I get to "make" it gives me the following fatal error.

In file included from main.cpp:38:0:
src/libwalletqt/WalletManager.h:5:32: fatal error: wallet/wallet2_api.h: No such file or directory
compilation terminated.
Makefile:596: recipe for target 'main.o' failed
make: *** [main.o] Error 1

Can anyone point me in the right direction?

Mac OSX: app crashed after app bundle prepared with macdeployqt

App crashed with the following output:

bash-3.2$ ./monero-core
app startd
QQmlApplicationEngine failed to load component
qrc:///main.qml:34 module "Qt.labs.settings" is not installed
qrc:///main.qml:29 module "QtQuick" is not installed
qrc:///main.qml:31 module "QtQuick.Controls" is not installed
qrc:///main.qml:30 module "QtQuick.Window" is not installed
qrc:///main.qml:33 module "QtQuick.Dialogs" is not installed
qrc:///main.qml:32 module "QtQuick.Controls.Styles" is not installed
qrc:///main.qml:34 module "Qt.labs.settings" is not installed
qrc:///main.qml:29 module "QtQuick" is not installed
qrc:///main.qml:31 module "QtQuick.Controls" is not installed
qrc:///main.qml:30 module "QtQuick.Window" is not installed
qrc:///main.qml:33 module "QtQuick.Dialogs" is not installed
qrc:///main.qml:32 module "QtQuick.Controls.Styles" is not installed
qrc:///main.qml:34 module "Qt.labs.settings" is not installed
qrc:///main.qml:29 module "QtQuick" is not installed
qrc:///main.qml:31 module "QtQuick.Controls" is not installed
qrc:///main.qml:30 module "QtQuick.Window" is not installed
qrc:///main.qml:33 module "QtQuick.Dialogs" is not installed
qrc:///main.qml:32 module "QtQuick.Controls.Styles" is not installed
qrc:///main.qml:34 module "Qt.labs.settings" is not installed
qrc:///main.qml:29 module "QtQuick" is not installed
qrc:///main.qml:31 module "QtQuick.Controls" is not installed
qrc:///main.qml:30 module "QtQuick.Window" is not installed
qrc:///main.qml:33 module "QtQuick.Dialogs" is not installed
qrc:///main.qml:32 module "QtQuick.Controls.Styles" is not installed
qrc:///main.qml:34 module "Qt.labs.settings" is not installed
qrc:///main.qml:29 module "QtQuick" is not installed
qrc:///main.qml:31 module "QtQuick.Controls" is not installed
qrc:///main.qml:30 module "QtQuick.Window" is not installed
qrc:///main.qml:33 module "QtQuick.Dialogs" is not installed
qrc:///main.qml:32 module "QtQuick.Controls.Styles" is not installed
qrc:///main.qml:34 module "Qt.labs.settings" is not installed
qrc:///main.qml:29 module "QtQuick" is not installed
qrc:///main.qml:31 module "QtQuick.Controls" is not installed
qrc:///main.qml:30 module "QtQuick.Window" is not installed
qrc:///main.qml:33 module "QtQuick.Dialogs" is not installed
qrc:///main.qml:32 module "QtQuick.Controls.Styles" is not installed

Segmentation fault: 11

(use make deploy or run build.sh to prepare a bundle)

Failed build 'cannot find -lwallet_merged2'

When building on Void Linux, with all dependencies installed, the build fails at the final step with

g++ -Wl,-O1 -Wl,-rpath,/usr/lib -o release/bin/monero-core main.o filter.o clipboardAdapter.o oscursor.o WalletManager.o Wallet.o PendingTransaction.o TransactionHistory.o TransactionInfo.o oshelper.o TranslationManager.o qrc_qml.o moc_filter.o moc_clipboardAdapter.o moc_oscursor.o moc_WalletManager.o moc_Wallet.o moc_PendingTransaction.o moc_TransactionHistory.o moc_TransactionInfo.o moc_oshelper.o moc_TranslationManager.o   -L/home/vdo/src/monero-core/bitmonero/lib -lwallet_merged -lwallet_merged2 -Wl,-Bstatic -lboost_serialization -lboost_thread -lboost_system -lboost_date_time -lboost_filesystem -lboost_regex -lboost_chrono -lboost_program_options -lssl -lcrypto -Wl,-Bdynamic -ldl -lQt5Quick -lQt5Widgets -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lGL -lpthread 
/usr/bin/ld: cannot find -lwallet_merged2
collect2: error: ld returned 1 exit status

complete log:
https://paste.fedoraproject.org/413036/

Trailing spaces in transfer address and Payment id

Whenever you enter an address or a payment id that contains a space either at the beginning or the end, GUI rejects it as "Invalid destination address" or "payment id has invalid format" respectively.

User friendliness-wise, i think it would be a nice addition to have the GUI remove these spaces automatically

File Path Chooser only opens once

File Path Chooser only opens once

  • launch monero-core
  • select langauge
  • crate new wallet or recreate from seed, doesnt matter
  • click into default wallet storage path /home/xxx/Monero Accounts/ to open File Chooser
  • close File Chooser via Cancel button
  • try to open File Chooser again --> doesnt open

monero-core refresh window needs more information

As a user i want to see how the task of scanning the blockchain is processing. Therefore the same Information should be provided to the user as in monero CLI wallet, wich is the current Block Height.

i Imagine something like this:
monero-core_height

probably low priority, but since recreation from seed takes a while, this would sure increase the overall user experience

Wallet storage path creation broken

When creating a new wallet or restoring a wallet from seed, selecting a non default storage location for wallet files doesnt quite work.

  • launch monero core
  • select language
  • create new wallet
  • Change wallet storage path from /home/xxx/Monero Accouts/ to home/xxx/Desktop/test/
  • path displayed is now file:///home/xxx/Destktop/test
  • finish wallet creation process by clicking through the defaults

The following folders will get created:

  • home/xxx/Desktop/test/
  • home/xxx/monero-core/release/bin/file:/home/xxx/Desktop/test/My Account name/ --> this is also where the files are

Application persistent settings

Following should be saved in persistent settings.

  • bool "auto_donations_enabled" // support monero development, shown in wizard
  • int "auto_donations_amount" // in percents, auto donation amount
  • bool "allow_background_mining" // allows background mining

Error Message When Running Monero Core GUI

I created a private testnet, mined 60 blocks, and successfully transferred between two simplewallets.

I'd like to transfer from a simplewallet to the monero core gui wallet for testing purposes.

When I launch monero-core it says "Connected" under "Network status". However, when I try to transfer from simplewallet to monero-core wallet the balance remains 0 in monero-core wallet even after 6 blocks confirmed the transaction in simplewallet.

In the terminal, it says this...

ERROR /home/administrator/monero-core/bitmonero/src/wallet/wallet2.cpp:780 res.blocks.size() != res.output_indices.size(). THROW EXCEPTION: error::wallet_internal_error

Can anyone point me in the right direction?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.