Alessandro Rezzi
Pivian
Code:
Name: Ale dev December
Term: 1 Cycles
Cycle Amnt: 30,000
Total Amnt: 30,000
Author: Alessandro Rezzi
Receiver: Alessandro Rezzi
Address: DP91drj7qc7FrPRwdaKi1wdsqrEt9zJthv
Created: 8-11-2023
Status: Active
Vote Hash: 49b8a6353c4e254010b5e8b0ff1c3463d6196f27f6e29f3bf361b75be9607f87
Proposal info:
This proposal will cover my development cost for the month of December. It covers only one month since on January/February I will be again busy with my last university exam session. With respect to the last month I am asking for 2,000 less PIVs since the price is up again and I will be working both on MPW and on core wallet. (hopefully, see the section on core wallet update...)
Last proposal update:
In the last two cycles I ended up working almost only on MPW where I completely redesigned the wallet/network system and began working on shielding, a list of important PRs are:
Wallet refactor:
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/197) and (https://github.com/PIVX-Labs/MyPIVXWallet/pull/200):
Where I decoupled the concept of wallet from the "lower level" concept of MasterKey.
Mempool v2:
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/201):
Where I designed a super solid new mempool system that solves all the problems users had with balance duplication.
Net network model:
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/219)
I implemented a new network model where all history of the wallet is synced. Main advantages are that with this PR: huge wallets with even 50k+ transactions can be loaded and used without any problems, network requests to blockbook are almost reduced to 0, sync time is overall much faster and also the old cold stake bug is solved, see for more info.
Transaction Database
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/235)
Creates a database for transaction in this way MPW will ask blockbook only once for the full history, then everything is saved on DB and loaded when necessary.
Shielding:
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/244) This is co-authored with Duddino, and adds shielding support to MPW. So far we are doing great and will try to finish within the end of November, as promised in my last proposal. Apart from the pull request on MPW I have also done some work on the shielding rust library:
(https://github.com/PIVX-Labs/pivx-shield/pull/60) Add view only mode, which is a way to see your balance and generating addresses without having the authority to spend anything;
(https://github.com/PIVX-Labs/pivx-shield/pull/61) Changes a bit the way in which the lib save and loads its instances.
Then a list of very good features but not so important PRs are:
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/233) Add a coin lock system;
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/234) Make wallet ignore immature transactions that cannot be spent yet;
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/232) Add a log out button and encourage encryption on wallet creation.
Finally a list of trivial PRs and mostly trivial bug fix:
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/248) Fix the flow to change password;
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/252) Fix a small transcation database bug;
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/253) Fix a small bug in translations;
(https://github.com/PIVX-Labs/MyPIVXWallet/pull/247) Fix a small bug in the flow to encrypt the wallet.
Core wallet update:
I have also worked a bit on the core wallet, where I opened a couple of pull requests... Sadly at the moment is very difficult working and pushing forward with a new release since everything takes way too much time, just to give some examples:
(https://github.com/PIVX-Project/PIVX/pull/2885): This PR was opened on september 9 and closed on september 29, literally had to wait 20 days for reviews to a dash backport...
(https://github.com/PIVX-Project/PIVX/pull/2884): Opened on september 9 and is still unreviewed after 2 months
(https://github.com/PIVX-Project/PIVX/pull/2889): Opened 3 weeks ago and still there unreviewed
And these are minor PRs that can be merged literally in a day or two, you can imagine how long big PRs like shield staking and shield masternodes will take just to be reviewed... Usually PRs are built one on top of the other so working at this pace is almost impossible. This happens because devs are busy with other tasks/ might not have the skills to review a particular PR, I think that a good solution would be adding to the team at least one new c++ developer that would work only on core wallet, so we can speed up with reviews and new features.
What I will do in the next cycle:
The priority is finishing shielding on MPW (as I said hopefully before the end of November) and then I have a big list of TODO for both core wallet (basically the same at the last proposal) and MPW (where I mainly want to continue working on network and the new wallet model). Another task that I have in program is implementing cold staking for ledger. But of course I cannot do everything in 1 cycle and I will pick a particular task after MPW shielding.
Last edited: