Giter Site home page Giter Site logo

aidoskuneen / aidos-wallet-v1 Goto Github PK

View Code? Open in Web Editor NEW
17.0 7.0 18.0 7.38 MB

Aidos Kuneen Desktop wallet for ( Windows - Mac - Linux)

Home Page: http://aidoskuneen.com

License: GNU General Public License v3.0

CSS 3.16% HTML 18.59% JavaScript 70.13% C++ 6.97% Python 0.89% Shell 0.14% PowerShell 0.12%
blockchain cryptocurrency wallet

aidos-wallet-v1's People

Contributors

alexeyshockov avatar dependabot[bot] avatar include-x avatar jedidavid avatar m2lower avatar myehia565 avatar nos-manus avatar ogami-daigoro avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aidos-wallet-v1's Issues

Improving the Speed of PoW

Simple Summary

Improve PoW performance with AVX intrinsic.

Abstract

The core logic of PoW, libccurl.cpp, is implemented by SSE intrinsic.
As recent generations of CPUs support AVX intrinsic, which allows more data to be processed at once, we will add an implementation to support this.
Since the function loop_cpu takes up most of the processing time in libccrul.cpp, we port the entire process on this pathway to AVX intrinsic.

The functions targeted are as follows.

  • long long int loop_cpu
  • void transform64
  • int incr
  • int check

Motivation

We compared the performance of PoW after AVX support with the traditional SSE implementation with Proof of Concept code.
This is expected to be sufficient to improve the hash rate by about 25%.

enviroment

  • CPU : Core i5-1030NG7
  • OS : MacOS 10.15.6

SSE result

% gcc -o libccurl ccurl/libccurl.cpp -O3 -lpthread -std=c++11 -mavx2
% ./libccurl
hash not match MQEXNUUUWGANWBAJROSQGZMZZFYGPEVMUPDC9DBJHMNBGCHCNSGZLBCTVUYB9WARIYXLTWVYHJLSZHPPJ
core num:8
avx 0
count=361923854 sec=43.161333 kHash/sec: 8385
PoWed hash is DTRA9QBAUZNILATXXGQUUTNDSVWUVYNHWLFCQPJTALWLNQSIAAHDKSJCAZJHTLUPHKYYDYKMCEB999999
PoW is incorrect. DTRA9QBAUZNILATXXGQUUTNDSVWUVYNHWLFCQPJTALWLNQSIAAHDKSJCAZJHTLUPHKYYDYKMCEB999999

AVX result

% gcc -o libccurl ccurl/libccurl.cpp -O3 -lpthread -std=c++11 -mavx2 -DHAS_AVX
% ./libccurl
hash not match MQEXNUUUWGANWBAJROSQGZMZZFYGPEVMUPDC9DBJHMNBGCHCNSGZLBCTVUYB9WARIYXLTWVYHJLSZHPPJ
core num:8
avx 1
count=360574350 sec=34.088101 kHash/sec: 10577
PoWed hash is DTRA9QBAUZNILATXXGQUUTNDSVWUVYNHWLFCQPJTALWLNQSIAAHDKSJCAZJHTLUPHKYYDYKMCEB999999
PoW is incorrect. DTRA9QBAUZNILATXXGQUUTNDSVWUVYNHWLFCQPJTALWLNQSIAAHDKSJCAZJHTLUPHKYYDYKMCEB999999

Backwards Compatibility

Backward compatibility can be ensured by determining the functions supported by the CPU and switching between SSE and AVX processing.
The code used to validate the current concept does not implement these decision processes.

Test Cases

Only one case of existing test code exists, and the results have been confirmed to be identical.
We have not been able to conduct tests covering conditional branching, so more detailed verification is needed.

Implementation

See the diff in the Proof of Concept code PullRequest.
https://github.com/m2Lower/aidos-wallet/pull/1/files

remaining issues

Validation of the optimization at the machine language level is not yet complete.
There is a possibility to improve the speed by changing the structure of data or replacing the instructions used, but it has not been tested yet.

Copyright

Copyright and related rights waived via CC0.

Clearing strings in PinCode input screen Bug

After typing some characters in the PinCode input screen, when I try to erase all of them with backspace, one character is left un-erased.
This does not seem to happen on Windows, but on Mac.
I am a Mac user.

Desktop Wallet for Mac

The wallet for Mac doesn't work.

After registering with a seed, and then copy/pasting that seed into the seed/password field it gives me a CONNECTION REFUSED error.

Please can someone help.

Execution error

Please solve the problem that ADK-Wallet-Setup-2.1.0 version does not run on windows7 32bit version.

Security layer(s).

In various places in Aidos Kuneen, it is important to generate secure passwords/passphrases. Security is especially important in Aidos Kuneen because if your ADK is stolen, there is often no recourse. Aidos transactions cannot be reversed.

Priority suggestion:

  • Website passwords. The website will rate-limit attempts on your password.
  • Wallet passphrases. An attacker needs both the wallet file and your wallet passphrase.
  • Hardware wallet PIN. An attacker needs both the hardware wallet and your PIN.
    ref: https://en.bitcoin.it/wiki/Passphrase_generation

Suggestion2: Hardware Wallets.

Hardware wallet is a physical electronic device, built for the sole purpose of securing Aidos Kuneen. The core innovation is that the hardware wallet must be connected to your computer, phone, or tablet before bitcoins may be spent. Hardware wallets are a good choice if you’re serious about security and convenient, reliable ADK storage.

The three most popular and best hardware wallets (hardware crypto wallets) are:

Ledger Nano S
TREZOR
KeepKey

Generating and storing private keys offline using a hardware wallet ensures that hackers have no way to reach your Aidos Kuneen coins. Hackers would have to steal the hardware wallet itself, but even then, it can be protected with a PIN code. Don’t worry about your hardware wallet getting stolen, lost or damaged either; so long as you create a secret backup code, you can always retrieve your ADK.
ref: https://en.bitcoinwiki.org/wiki/Hardware_wallet

BugFix : PoW multiplicity

Simple Summary

There is a problem where the multiplicity is not set correctly in the code to do PoW.

Abstract

The function incrN128 in the code that performs PoW processes the data to be processed based on the thread number received in the argument.
However, there is a mistake in the code, and the data being processed by the threads are duplicated.

This time the code errors are laced with the following commit
Similar parts that have been changed at the same time, due to the processing structure of the loop, the same problem does not occur.

72d1019#diff-7092656e6ce30ed53380d013cf7fbe1aa7e2bd78db50acf94b7259fff3db7cbaR357

Motivation

Solving this problem will greatly improve PoW performance in CPU core-rich environments.

Backwards Compatibility

As a result of the correct multithreading operation, you may get different results than the original code.

Test Cases

With the number of CPUs set to 1 and the test function running, we got similar results before and after the change.
If you set the number of CPUs to 2 or more, you will get different results.
This result confirms that the multi-threaded operation worked correctly and resulted in faster PoW results.

Implementation

See
m2Lower@9db5215

remaining issues

gadk should also be fixed, for a similar problem exists.
https://github.com/AidosKuneen/gadk/blob/master/pow_sse.go#L391

Copyright

Copyright and related rights waived via CC0.

Special Thanks

@gzip_compressed on Twitter

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.