Lunexa

所属分类:加密解密
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2024-01-10 07:44:58
上 传 者sh-1993
说明:  Lunexa是一种以隐私为中心的去中心化货币,优先考虑安全性、匿名性和用户自主性。使用尖端的密码学,它…
(Lunexa, a privacy-centric decentralized currency, prioritizes security, anonymity, and user autonomy. Using cutting-edge cryptography, it…)

文件列表:
cmake/
contrib/
docs/
external/
src/
tests/
translations/
utils/
CMakeLists.txt
CMakeLists_IOS.txt
Dockerfile
Doxyfile
LICENSE
Makefile

# Lunexa Copyright (c) 2014-2023, The Monero Project Portions Copyright (c) 2012-2013 The Cryptonote developers. ## Table of Contents - [Development resources](https://github.com/Lunexa-Project/Lunexa/blob/master/#development-resources) - [Vulnerability response](https://github.com/Lunexa-Project/Lunexa/blob/master/#vulnerability-response) - [Research](https://github.com/Lunexa-Project/Lunexa/blob/master/#research) - [Announcements](https://github.com/Lunexa-Project/Lunexa/blob/master/#announcements) - [Introduction](https://github.com/Lunexa-Project/Lunexa/blob/master/#introduction) - [About this project](https://github.com/Lunexa-Project/Lunexa/blob/master/#about-this-project) - [Supporting the project](https://github.com/Lunexa-Project/Lunexa/blob/master/#supporting-the-project) - [License](https://github.com/Lunexa-Project/Lunexa/blob/master/#license) - [Contributing](https://github.com/Lunexa-Project/Lunexa/blob/master/#contributing) - [Scheduled software upgrades](https://github.com/Lunexa-Project/Lunexa/blob/master/#scheduled-software-upgrades) - [Release staging schedule and protocol](https://github.com/Lunexa-Project/Lunexa/blob/master/#release-staging-schedule-and-protocol) - [Compiling lunexa from source](https://github.com/Lunexa-Project/Lunexa/blob/master/#compiling-lunexa-from-source) - [Dependencies](https://github.com/Lunexa-Project/Lunexa/blob/master/#dependencies) - [Gitian builds](https://github.com/Lunexa-Project/Lunexa/blob/master/#gitian-builds) - [Internationalization](https://github.com/Lunexa-Project/Lunexa/blob/master/#Internationalization) - [Using Tor](https://github.com/Lunexa-Project/Lunexa/blob/master/#using-tor) - [Pruning](https://github.com/Lunexa-Project/Lunexa/blob/master/#Pruning) - [Debugging](https://github.com/Lunexa-Project/Lunexa/blob/master/#Debugging) - [Known issues](https://github.com/Lunexa-Project/Lunexa/blob/master/#known-issues) ## Development resources - Web: [Lunexa.co](https://github.com/Lunexa-Project/Lunexa/blob/master/https://Lunexa.co) - GitHub: [https://github.com/lunexa-project/lunexa](https://github.com/Lunexa-Project/Lunexa/blob/master/https://github.com/lunexa-project/lunexacore) - Discord: [Lunexa on Discord](https://github.com/Lunexa-Project/Lunexa/blob/master/https://discord.gg/KUMuN6Gvq2) ## Vulnerability response Please report any vulnerabilitiy to the Discord ## Research Lunexa is an independent project, establishing its own unique ecosystem while drawing inspiration from Monero's cryptography, protocols, fungibility, analysis, and more. Our community is dedicated to coordinating research, fostering collaboration, and inviting contributions from researchers and enthusiasts worldwide. While our roots lie in Monero, Lunexa stands as a separate entity, developing its innovative solutions and advancing the field. As the Lunexa community explores various aspects of cryptography, protocols, and analysis, we encourage engagement and interaction with researchers outside our ecosystem. Collaboration is key to our progress. We invite those interested to connect with us, whether for inquiries, collaborative opportunities, or seeking guidance to avoid redundant efforts. While the Monero research community remains a valuable resource, Lunexa's ecosystem thrives on separate platforms. You can find us on Discord at [Lunexa Discord](https://github.com/Lunexa-Project/Lunexa/blob/master/https://discord.gg/KUMuN6Gvq2) and on other accessible channels. Join us in shaping the future of Lunexa's ecosystem, where innovation and collaboration pave the way for new advancements in the realm of cryptocurrencies. ## Announcements - You can head to our discord [Lunexa's Discord](https://github.com/Lunexa-Project/Lunexa/blob/master/https://discord.gg/KUMuN6Gvq2) to get critical announcements from the core team and also talk to the people in our community. The announcement list can be very helpful for knowing when software updates are needed. ## Introduction Lunexa is a decentralized digital currency based on monero designed for privacy, security, and untraceability. With Lunexa, you are your bank—having full control over your funds, ensuring that your transfers remain untraceable unless you choose otherwise **Privacy**: Lunexa ensures privacy by employing robust cryptographic techniques that shield your transactions from easy identification on the blockchain. By default, all transfers, purchases, and receipts are kept private, safeguarding your financial activities. **Security**: Leveraging a distributed peer-to-peer consensus network, Lunexa guarantees cryptographic security for every transaction. Each wallet is associated with a 25-word mnemonic seed, presented only once and crucial for wallet backup. Encrypting wallet files with a strong passphrase enhances security, rendering them useless if stolen. **Untraceability**: Lunexa employs ring signatures, a unique cryptographic feature, to ensure transactions remain untraceable. Additionally, it incorporates optional measures of ambiguity, preventing easy linkage of transactions to individual users or devices. **Decentralization**: Lunexa's functionality relies on its decentralized peer-to-peer consensus network. The aim is for anyone to run Lunexa software, validate the blockchain's integrity, and engage fully using standard consumer-grade hardware. Sustaining Lunexa's network decentralization involves software development that reduces the costs of running the software and discourages the use of specialized, non-standard hardware. ## About this project Lunexa constitutes the fundamental implementation of our digital currency system. It's an open-source platform, entirely free to utilize without constraints, except as specified in the accompanying license agreement. The ecosystem welcomes alternative implementations that align with the protocol and network in a compatible manner. Similar to various development endeavors, our GitHub repository serves as the staging ground for the latest developments. Changes undergo rigorous testing by individual developers in their respective branches before being submitted as pull requests. These submissions then undergo further testing and code reviews by dedicated contributors. While our repository is constantly evolving, caution is advised when considering its use in a production environment. Opt for a tagged release for enhanced stability, unless a specific patch addresses a critical issue. **We invite contributions from everyone to enhance Lunexa's codebase!** If you've developed a fix or code modification, don't hesitate to submit it as a pull request directly to the "master" branch. Small changes or those isolated to specific sections may be promptly merged by any collaborator. However, larger or intricate alterations are typically subject to extensive discussion, either well in advance of the pull request or directly within it. Collaboration and collective input drive the evolution of Lunexa's codebase. ## Supporting the project Lunexa thrives through the support of our community. If you wish to contribute, one of the simplest ways is by providing financial support. You can donate using Monero or Bitcoin by visiting donate.lunexa.org through a client that supports the OpenAlias standard. Alternatively, use the donate command within the command-line wallet and follow the instructions (type help in the wallet for guidance) Donations Ethereum Donations: ## License See [LICENSE](https://github.com/Lunexa-Project/Lunexa/blob/master/LICENSE). ## Contributing If you want to help out, see [CONTRIBUTING](https://github.com/Lunexa-Project/Lunexa/blob/master/docs/CONTRIBUTING.md) for a set of guidelines. ## Scheduled software/network upgrades Lunexa's development roadmap includes scheduled software and network upgrades (hard forks) to introduce new features and enhancements to the Lunexa software and network. To ensure optimal performance and compatibility, it's recommended that users, including end-users and service providers, update to the latest software versions as they become available. These software upgrades will encompass the development and implementation of new features within the codebase. Simultaneously, network upgrades, modifying the consensus rules of the Lunexa network, will accompany these software updates. Prior to the scheduled network upgrade date, the necessary software will be provided in the repository, allowing users to prepare accordingly. As of now, specific dates and versions for these upgrades are not finalized. Please stay updated by monitoring the repository for the upcoming Lunexa software versions and associated upgrade details. ## Compiling Lunexa from source ### Dependencies The following table summarizes the tools and libraries required to build. A few of the libraries are also included in this repository (marked as "Vendored"). By default, the build uses the library installed on the system and ignores the vendored sources. However, if no library is found installed on the system, then the vendored source will be built and used. The vendored sources are also used for statically-linked builds because distribution packages often include only shared library binaries (`.so`) but not static library archives (`.a`). | Dep | Min. version | Vendored | Debian/Ubuntu pkg | Arch pkg | Void pkg | Fedora pkg | Optional | Purpose | | ------------ | ------------- | -------- | -------------------- | ------------ | ------------------ | ------------------- | -------- | --------------- | | GCC | 7 | NO | `build-essential` | `base-devel` | `base-devel` | `gcc` | NO | | | CMake | 3.5 | NO | `cmake` | `cmake` | `cmake` | `cmake` | NO | | | pkg-config | any | NO | `pkg-config` | `base-devel` | `base-devel` | `pkgconf` | NO | | | Boost | 1.58 | NO | `libboost-all-dev` | `boost` | `boost-devel` | `boost-devel` | NO | C++ libraries | | OpenSSL | basically any | NO | `libssl-dev` | `openssl` | `openssl-devel` | `openssl-devel` | NO | sha256 sum | | libzmq | 4.2.0 | NO | `libzmq3-dev` | `zeromq` | `zeromq-devel` | `zeromq-devel` | NO | ZeroMQ library | | OpenPGM | ? | NO | `libpgm-dev` | `libpgm` | | `openpgm-devel` | NO | For ZeroMQ | | libnorm[2] | ? | NO | `libnorm-dev` | | | | YES | For ZeroMQ | | libunbound | 1.4.16 | NO | `libunbound-dev` | `unbound` | `unbound-devel` | `unbound-devel` | NO | DNS resolver | | libsodium | ? | NO | `libsodium-dev` | `libsodium` | `libsodium-devel` | `libsodium-devel` | NO | cryptography | | libunwind | any | NO | `libunwind8-dev` | `libunwind` | `libunwind-devel` | `libunwind-devel` | YES | Stack traces | | liblzma | any | NO | `liblzma-dev` | `xz` | `liblzma-devel` | `xz-devel` | YES | For libunwind | | libreadline | 6.3.0 | NO | `libreadline6-dev` | `readline` | `readline-devel` | `readline-devel` | YES | Input editing | | expat | 1.1 | NO | `libexpat1-dev` | `expat` | `expat-devel` | `expat-devel` | YES | XML parsing | | GTest | 1.5 | YES | `libgtest-dev`[1] | `gtest` | `gtest-devel` | `gtest-devel` | YES | Test suite | | ccache | any | NO | `ccache` | `ccache` | `ccache` | `ccache` | YES | Compil. cache | | Doxygen | any | NO | `doxygen` | `doxygen` | `doxygen` | `doxygen` | YES | Documentation | | Graphviz | any | NO | `graphviz` | `graphviz` | `graphviz` | `graphviz` | YES | Documentation | | lrelease | ? | NO | `qttools5-dev-tools` | `qt5-tools` | `qt5-tools` | `qt5-linguist` | YES | Translations | | libhidapi | ? | NO | `libhidapi-dev` | `hidapi` | `hidapi-devel` | `hidapi-devel` | YES | Hardware wallet | | libusb | ? | NO | `libusb-1.0-0-dev` | `libusb` | `libusb-devel` | `libusbx-devel` | YES | Hardware wallet | | libprotobuf | ? | NO | `libprotobuf-dev` | `protobuf` | `protobuf-devel` | `protobuf-devel` | YES | Hardware wallet | | protoc | ? | NO | `protobuf-compiler` | `protobuf` | `protobuf` | `protobuf-compiler` | YES | Hardware wallet | | libudev | ? | NO | `libudev-dev` | `systemd` | `eudev-libudev-devel` | `systemd-devel` | YES | Hardware wallet | [1] On Debian/Ubuntu `libgtest-dev` only includes sources and headers. You must build the library binary manually. This can be done with the following command `sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake . && sudo make` then: * on Debian: `sudo mv libg* /usr/lib/` * on Ubuntu: `sudo mv lib/libg* /usr/lib/` [2] libnorm-dev is needed if your zmq library was built with libnorm, and not needed otherwise Install all dependencies at once on Debian/Ubuntu: ``` sudo apt update && sudo apt install build-essential cmake pkg-config libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libexpat1-dev libpgm-dev qttools5-dev-tools libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libudev-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev python3 ccache doxygen graphviz ``` Install all dependencies at once on Arch: ``` sudo pacman -Syu --needed base-devel cmake boost openssl zeromq libpgm unbound libsodium libunwind xz readline expat gtest python3 ccache doxygen graphviz qt5-tools hidapi libusb protobuf systemd ``` Install all dependencies at once on Fedora: ``` sudo dnf install gcc gcc-c++ cmake pkgconf boost-devel openssl-devel zeromq-devel openpgm-devel unbound-devel libsodium-devel libunwind-devel xz-devel readline-devel expat-devel gtest-devel ccache doxygen graphviz qt5-linguist hidapi-devel libusbx-devel protobuf-devel protobuf-compiler systemd-devel ``` Install all dependencies at once on openSUSE: ``` sudo zypper ref && sudo zypper in cppzmq-devel libboost_chrono-devel libboost_date_time-devel libboost_filesystem-devel libboost_locale-devel libboost_program_options-devel libboost_regex-devel libboost_serialization-devel libboost_system-devel libboost_thread-devel libexpat-devel libminiupnpc-devel libsodium-devel libunwind-devel unbound-devel cmake doxygen ccache fdupes gcc-c++ libevent-devel libopenssl-devel pkgconf-pkg-config readline-devel xz-devel libqt5-qttools-devel patterns-devel-C-C++-devel_C_C++ ``` Install all dependencies at once on macOS with the provided Brewfile: ``` brew update && brew bundle --file=contrib/brew/Brewfile ``` FreeBSD 12.1 one-liner required to build dependencies: ``` pkg install git gmake cmake pkgconf boost-libs libzmq4 libsodium unbound ``` ### Cloning the repository Clone recursively to pull-in needed submodule(s): ``` git clone --recursive https://github.com/lunexa-project/lunexa ``` If you already have a repo cloned, initialize and update: ``` cd lunexa && git submodule init && git submodule update ``` *Note*: If there are submodule differences between branches, you may need to use `git submodule sync && git submodule update` after changing branches to build successfully. ### Build instructions Lunexa uses the CMake build system and a top-level [Makefile](https://github.com/Lunexa-Project/Lunexa/blob/master/Makefile) that invokes cmake commands as needed. #### On Linux and macOS * Install the dependencies * Change to the root of the source code directory, change to the most recent release branch, and build: ```bash cd lunexa git checkout master make ``` *Optional*: If your machine has several cores and enough memory, enable parallel build by running `make -j` instead of `make`. For this to be worthwhile, the machine should have one core and about 2GB of RAM available per thread. * The resulting executables can be found in `build/release/bin` * Add `PATH="$PATH:$HOME/monero/build/release/bin"` to `.profile` * Run Lunexa with `lunexad --detach` * **Optional**: build and run the test suite to verify the binaries: ```bash make release-test ``` *NOTE*: `core_tests` test may take a few hours to complete. * **Optional**: to build binaries suitable for debugging: ```bash make debug ``` * **Optional**: to build statically-linked binaries: ```bash make release-static ``` Dependencies need to be built with -fPIC. Static libraries usually aren't, so you may have to build them yourself with -fPIC. Refer to their documentation for how to build them. * **Optional**: build documentation in `doc/html` (omit `HAVE_DOT=YES` if `graphviz` is not installed): ```bash HAVE_DOT=YES doxygen Doxyfile ``` * **Optional**: use ccache not to rebuild translation units, that haven't really changed. Lunexa's CMakeLists.txt file automatically handles it ```bash sudo apt install ccache ``` #### On the Raspberry Pi Tested on a Raspberry Pi Zero with a clean install of minimal Raspbian Stretch (2017-09-07 or later) from https://www.raspberrypi.org/downloads/raspbian/. If you are using Raspian Jessie, [please see note in the following section](https://github.com/Lunexa-Project/Lunexa/blob/master/#note-for-raspbian-jessie-users). * `apt-get update && apt-get upgrade` to install all of the latest software * Install the dependencies for Lunexa from the 'Debian' column in the table above. * Increase the system swap size: ```bash sudo /etc/init.d/dphys-swapfile stop sudo nano /etc/dphys-swapfile CONF_SWAPSIZE=2048 sudo /etc/init.d/dphys-swapfile start ``` * If using an external hard disk without an external power supply, ensure it gets enough power to avoid hardware issues when syncing, by adding the line "max_usb_current=1" to /boot/config.txt * Clone Lunexa and checkout the most recent release version: ```bash git clone https://github.com/lunexa-project/lunexa.git cd lunexa git checkout master ``` * Build: ```bash USE_SINGLE_BUILDDIR=1 make release ``` * Wait 4-6 hours * The resulting executables can be found in `build/release/bin` * Add `export PATH="$PATH:$HOME/lunexa/build/release/bin"` to `$HOME/.profile` * Run `source $HOME/.profile` * Run Lunexa with `lunexad --detach` * You may wish to reduce the size of the swap file after the build has finished, and delete the boost directory from your home directory #### *Note for Raspbian Jessie users:* If you are using the older Raspbian Jessie image, compiling Lunexa is a bit more complicated. The version of Boost available in the Debian Jessie repositories is too old to use with Lunexa, and thus you must compile a newer version yourself. The following explains the extra steps and has been tested on a Raspberry Pi 2 with a clean install of minimal Raspbian Jessie. * As before, `apt-get update && apt-get upgrade` to install all of the latest software, and increase the system swap size ```bash sudo /etc/init.d/dphys-swapfile stop sudo nano /etc/dphys-swapfile CONF_SWAPSIZE=2048 sudo /etc/init.d/dphys-swapfile start ``` * Then, install the dependencies for Lunexa except for `libunwind` and `libboost-all-dev` * Install the latest version of boost (this may first require invoking `apt-get remove --purge libboost*-dev` to remove a previous version if you're not using a clean install): ```bash cd wget https://sourceforge.net/projects/boost/files/boost/1.72.0/boost_1_72_0.tar.bz2 tar xvfo boost_1_72_0.tar.bz2 cd boost_1_72_0 ./bootstrap.sh sudo ./b2 ``` * Wait ~8 hours ```bash sudo ./bjam cxxflags=-fPIC cflags=-fPIC -a install ``` * Wait ~4 hours * From here, follow the [general Raspberry Pi instructions](https://github.com/Lunexa-Project/Lunexa/blob/master/#on-the-raspberry-pi) from the "Clone Lunexa and checkout the latest" step. #### On Windows: Binaries for Windows are built on Windows using the MinGW toolchain within [MSYS2 environment](https://github.com/Lunexa-Project/Lunexa/blob/master/https://www.msys2.org). The MSYS2 environment emulates a POSIX system. The toolchain runs ... ...

近期下载者

相关文件


收藏者