aidoskuneen / aidos-wallet-v1 Goto Github PK
View Code? Open in Web Editor NEWAidos Kuneen Desktop wallet for ( Windows - Mac - Linux)
Home Page: http://aidoskuneen.com
License: GNU General Public License v3.0
Aidos Kuneen Desktop wallet for ( Windows - Mac - Linux)
Home Page: http://aidoskuneen.com
License: GNU General Public License v3.0
Improve PoW performance with AVX intrinsic.
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.
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%.
% 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
% 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
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.
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.
See the diff in the Proof of Concept code PullRequest.
https://github.com/m2Lower/aidos-wallet/pull/1/files
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 and related rights waived via CC0.
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.
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.
Please solve the problem that ADK-Wallet-Setup-2.1.0 version does not run on windows7 32bit version.
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:
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
My window version is win7
In the process of generating the deposit address, the wallet screen turns into an empty screen.
Check please !!!
There is a problem where the multiplicity is not set correctly in the code to do PoW.
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
Solving this problem will greatly improve PoW performance in CPU core-rich environments.
As a result of the correct multithreading operation, you may get different results than the original code.
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.
See
m2Lower@9db5215
gadk should also be fixed, for a similar problem exists.
https://github.com/AidosKuneen/gadk/blob/master/pow_sse.go#L391
Copyright and related rights waived via CC0.
@gzip_compressed on Twitter
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.