LUX Codebase Upgrade Well Underway
Last month we told you about our plans to perform a codebase upgrade to get LUX’s code up-to-date with some improvements and efficiencies as well as optimize some of the wallet code that benefits advanced users and the Luxcore web wallet. Progress for this upgrade is well underway so we thought it would be a good opportunity to give our community an update on where we are and what’s ahead!
As a reminder, LUX is a Bitcoin-based cryptocurrency (meaning LUX started with the Bitcoin codebase as it’s core). While LUX is very unique and offers a variety of features Bitcoin does not, the core Bitcoin codebase is still there. Bitcoin has made optimizations and other positive changes to its codebase to improve speed and efficiency. These upgrades need to be made in the LUX code as well to improve efficiency of our wallets. While LUX wallets work fine for average users, some use cases would definitely benefit from the code improvements. This would largely affect exchanges, pools, and some masternode owners. It would also drastically improve the performance and reliability of the web wallet. The LUX proof-of-staking web wallet is a service offered by Luxcore that many of our users take advantage of for 24/7 staking. The codebase upgrade would help us to maintain this service at the high standards we want to set.
Codebase Upgrade Status Update
√ Completed Codebase initial bake
In this step, we upgraded the codebase from Bitcoin core’s upgrades. The next steps are to make sure LUX’s advanced features and functionality added after the previous codebase upgrade are compatible with the new update, so many features have to be re-integrated into the code.
√ Completed Full mainnet sync
LUX’s mainnet was synced and used for testing of the initial bake above to ensure we were ready to begin implementation of LUX specific features added since the last codebase upgrade.
√ Completed RX2 integration
Implemented LUX’s RX2 Proof-of-Work algorithm introduced in February of this year. RX2 has helped better balance mining to reward our long-term LUX miners and ensure the most fair distribution of mining rewards
√ Completed New PoS algorithm
The Proof-of-Stake algorithm has been updated to work with the new codebase and to increase blockchain security and ensure fairness for staking participants.
√ Completed DPoS/SuperStakers
Cold staking staking has been added. For more information, look below for more information about Cold Staking.
√ Completed EVM upgrades
We have upgraded to the Ethereum Constantinople version of EVM to stabilize our smart contract layer considerably and allow us to use its full potential. See below for more information about the EVM upgrades.
In Progress UX/UI specifics
With most upgrades, tweaks to UX/UI need to be made. These changes will be outlined in the changelog with the next wallet update.
In Progress Fork mechanics
This step will ensure the codebase upgrade occurs at a specific block which will be announced later. Some additional steps to test the fork and monitor the chain post-fork will take place on a copy of the mainnet prior to official release.
In Progress Misc wallet fixes
More information about specific wallet fixes and improvements will be outlined in the changelog with the next wallet update, so stay tuned!
Introduction of Cold Staking
The high-level design goals for cold (offline) staking are:
- Non-custodial staking solution where the user retains exclusive control of their private keys.
- UTXOs for delegated addresses are not locked and can be sent or solo staked at any time.
- Users can set the fee they will pay for the staking services provider, who may accept that fee.
- Coinstake protocol modification to provide instant payout of block rewards with split for fee payment.
- Staking services providers must be online and commit a stake to obviate the “nothing at stake” problem.
- Develop multiple client solutions with easy to use delegation/undelegation assignment.
- Since offline staking will delegate the UTXO set of an address to be staked by another online node, “estimated time” to a block reward will work as currently (with variance). Delegated staking is not pool staking.
What is cold (offline) staking?
In a nutshell, cold staking allows users to delegate their tokens to an online node from their wallet, which will stake for them.
It eliminates the need for stakers to maintain a full online node as they now have the option to delegate their LUX to what is known as a “super staker” node to obtain the staking rewards. The best thing about this is that the super staker has zero methods to spend the delegated coins and only use them for staking the network.
This presents a method for LUX holders to keep their wallets offline in what is known as a “cold wallet” — which is where the term “cold staking” comes from. The LUX holder will be totally “air-gapped” from the network, which provides no vector for any hacker to enter their wallet and spend their coins. LUX holders can take their security one step further by holding their tokens on a hardware wallet such as a Ledger Nano while still delegating their tokens to a super staker and receive the rewards.
The super stakers are essential in this environment. These are LUX users who provide the “Cold Staking” service that configures their full online nodes to allow users to delegate tokens to them. As you would expect, the super stakers will also take a small fee from the staking rewards before distributing them to their relevant counterparties.
The offline staking delegation is all handled by smart contracts — so users can go through the smart contract code themselves if they need to settle any concerns they might have. It is important to note that the delegating user only utilizes the smart contract to provide “staking rights” to the super staker. They are not sending their coins to the smart contract, nor are they locking their coins up. Instead, they can benefit from the offline staking while maintaining full control of their assets.
Upgrade to the Ethereum Constantinople version of EVM
The EVM upgrade is mostly about 4 main additions, but will also stabilize our smart contract layer considerably and allow us to use its full potential.
- EIP 145: Developed by two ethereum developers, Alex Beregszaszi and Pawel Bylica which introduces a native ‘bitwise shifting’ that can run through bytecode at a cost which is similar to other arithmetic operations.
- EIP 1052: Offers a means of optimized large-scale code execution on ethereum. This will allow only the compressed code containing essential contract data is checked, as opposed to the whole code. This was authored by Nick Johnson and Bylica.
- EIP 1283: This EIP is based on EIP 1087 which was again written by Nick Johnson. This EIP helps in reducing the amount of gas developers need to pay to run and execute their smart contracts by cutting off excessive and unnecessary gas usage.
- EIP 1014: This EIP was created by Vitalik Buterin himself. This will basically help Ethereum to leverage state channels to enable them to communicate with off-chain addresses. This will help in the scalability of the entire system.
We are excited for the coming codebase upgrade and all the new features, improvements, and optimizations it will bring as well as future enhancements we will be able to add. Progress continues and we will be sharing more with you in the future! Thank you for following our project. If you aren’t already following us, please check us out and be sure to join our Discord to interact with the community.